当前位置: 首页 > news >正文

电商平台网站建设网站模板建站公司

电商平台网站建设,网站模板建站公司,商洛做网站多少钱,网站中css嵌入非设备字体前言: 本节内容正式迈入传输层网络协议的知识殿堂, 之前的文章, 我们都是在应用层进行翻来覆去。 比如http就是应用层协议, 只不过使用了tcp的系统调用。 从本节开始, 友友们将会学习传输层两大协议: UDP和…

        前言: 本节内容正式迈入传输层网络协议的知识殿堂, 之前的文章, 我们都是在应用层进行翻来覆去。 比如http就是应用层协议, 只不过使用了tcp的系统调用。 从本节开始, 友友们将会学习传输层两大协议: UDP和TCP。 其中UDP不算特别重要, 但是也要了解。 UDP的知识点也比较少, 本节就是讲解UDP。 

        这里博主先说一下讲解思路,这个讲解思路适用于以后学习任何一种协议: 

  •         首先,先回答报头和有效载荷如何分离,有效载荷应该交付给那一个上层协议(对应的协议字段, 协议方案)。
  •         第二,就是认识报头。
  •         第三,就是学习该协议周边的问题。

        ps:本节内容UDP内容比较简单, 友友们放心观看哦!

目录

UDP报头分离

UDP报头解析 

源端口和目的端口

UDP长度和UDP检验和 

 面向数据报

UDP缓冲区

UDP报头


UDP报头分离

        UDP的报文是UDP自动为我们形成的, 就比如我们发送了一个“你好”, 那么UDP就会以“你好”作为数据, 然后添加上报头也就是报文中的八字节报头。

        对于UDP来说, 报头的大小是固定的, 就是8字节, 所以将UDP的报头和报文分开非常简单, 就是将报文的前八个字节和后面的字节分开。 

UDP报头解析 

源端口和目的端口

         我们还是使用“你好”这个例子。 在发送一句话中, ”你好“作为数据, 然后操作系统就给我们添加了报头, 其中前四个字节就是UDP的源端口和UDP的目的端口。源端口就是发送方的端口号, 目的端口就是目标主机的端口号。

        这两个端口号如何得到的, 客户端是怎么知道目的端口号的和源端口号的呢? 

        首先, 客户端的端口号我们说过, 客户端的端口号是一个随机的端口号, 是在启动客户端的时候, 操作系统默认从主机中选取得一个空余的端口号。 然后, 目的端口号是服务端得端口号, 而服务端的端口号是固定的, 是内置在客户端内部的。 我们客户端connect的时候, 就是连接的这个内置的端口号。 

        服务端是怎么知道目的端口号和源端口号的呢?

        我们之前写http协议或者tcp协议的时候, 是不是服务端都有一个accept系统调用, 然后输出型参数里面有一个port参数, 这个port参数,其实就是目的端口号。 服务端也一定知道自己的端口号, 这个端口号就是源端口号。 

UDP长度和UDP检验和 

        我们虽然能够利用udp报头的定长特点, 将报头和有效载荷进行分离。 但是我们如何知道我们的数据是一个完整的报文呢? 这个时候就用到了udp的长度。 udp长度,指的是整个报文的长度(udp长度就是指整个报文的长度, 不是有效载荷的长度)。 有了整个报文的长度, 有效载荷的长度直接使用报文长度减去八就行了。另外, 如果想要检验是不是一个完整的报文, 只需要将udp长度和整个报文的长度(sizeof计算) 进行比较, 看看是否一样即可。

        udp检验和就是检查udp内容在传输过程中有没有出现偏差。

 面向数据报

        应用层交给udp多长的报文,udp原样发送, 既不会拆分,也不会合并。

        如果发送端调用一次sendto, 发送100字节, 那么接收端也必须调用对应的一次recvfrom, 接收100字节;而不能循环十次调用recvfrom, 每次接受10字节。

UDP缓冲区

         UDP没有真正意义上的缓冲区,调用sendto会直接交给内核, 由内核将数据传给网络协议层然后直接进行发送。

        UDP具有接收缓冲区,但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一致;如果缓冲区满了,再到达的UDP数据就会被丢弃。

        UDP的socket既能读也能写, 这个概念叫做全双工。

UDP报头

        UDP报头怎么理解, 我们知道, Linux是用C语言写的, 协议本质上就是一种约定, 有着各种约定, 所以协议我们就可以把它看作一种自定义类型, 只不过不是结构体,而是位段:

struct udp_header
{uint32_t src_port:16;uint32_t dst_port:16;uint32_t length:16;uint32_t check_code:16;
};

        就是上面的这种自定义类型 , 既然是类型,那么就可以定义变量, 那么以后我们定义udp报头, 其实就是创建一个这个类型的变量。 

 

 ——————以上就是本节全部内容哦, 如果对友友们有帮助的话可以关注博主, 方便学习更多知识哦!!!   

http://www.shuangfujiaoyu.com/news/24639.html

相关文章:

  • 简约型网站google国外入口
  • 泸州住房和城乡建设厅网站网站seo外包靠谱吗
  • 如何把自己的网站推广百度关键词查询排名
  • 淘宝客怎么做网站推广国内做seo最好的公司
  • 网站应该怎么做运维谷歌网页版
  • 杭州微跑网站建设公司南京seo全网营销
  • 设计师的工作内容优优群排名优化软件
  • 好的响应式网站有哪些网站排名优化师
  • django 做网站 原理百度搜索关键词统计
  • 怎么才能访问自己做的网站卢松松外链工具
  • 邢台做网站优化哪儿好seo站长工具
  • 网站建设服务公怎样做网站推广啊
  • 群晖wordpress如何连接mysqlseo优化代理
  • 网上营销的好处seo厂商
  • 做推广适合哪些网站吗直播:英格兰vs法国
  • 林管局网站建设方案企点qq
  • 中英文网站怎么实现太原百度搜索排名优化
  • 一级做a爱免费网站怎么投放网络广告
  • 河北农业建设信息网站软文300字介绍商品
  • 优秀网站例子什么建站程序最利于seo
  • 百度做玻璃钢的网站良品铺子网络营销策划书
  • 网站备案用户名忘了怎么办域名访问网站入口
  • 推广你公司网站windows优化大师
  • 网站必须做API接口吗国外免费建站网站搭建
  • 南宁市做网站的公司百度推广竞价技巧
  • 苹果cms网站广告怎么做wp博客seo插件
  • 政府网站建设指导意见西安seo关键词推广
  • 做kegg网站直播引流推广方法
  • 网站建设空间申请长春网站关键词推广
  • 那里做网站比较好排名优化价格