加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

TCP/IP网络模型入门

发布时间:2019-04-09 01:15:39 所属栏目:教程 来源:itworld123
导读:副标题#e# TCP/IP网络模型 TCP/IP模型是互联网的基础,,它是一系列网络协议的总称。这些协议可以划分为四层,分别为链路层、网络层、传输层和应用层。 链路层:负责封装和解封装IP报文,发送和接受ARP/RARP报文等。 网络层:负责路由以及把分组报文发送给

一般说来,如果没有分段发生, MSS还是越大越好。报文段越大允许每个报文段传送的数据就越多,相对IP和TCP首部有更高的网络利用率。当TCP发送一个SYN时,或者是因为一个本地应用进程想发起一个连接,或者是因为另一端的主机收到了一个连接请求,它能将MSS值设置为外出接口上的MTU长度减去固定的IP首部(20 bytes)和TCP首部长度(20 bytes)。对于一个以太网,MSS值可达1460字节(详细参考tcp_sendmsg)。

TCP/SCTP会将数据按MTU进行切片,然后3层的工作只需要给传递下来的切片加上 ip头就可以了(也就是说调用这个函数的时候,其实4层已经切好片了)。

Segmentation offload

现在很多网卡本身支持数据分片,这样,上层L4/L3就可以不用进行分片(最大64KB),而由NIC来完成,从而提高网络性能。

  • Large Segment Offload (LSO):使得网络协议栈能够将超过PMTU的数据包推送至网卡,然后网卡执行分片工作,这样减轻了CPU的负荷
  • TCP Segmentation Offload (TSO):类似于LSO,针对TCP协议包
  • UDP Fragmentation Offload (UFO): 类似于TSO,针对UDP包
  • Large Receive Offload (LRO): 将接收到的包聚合成一个大的数据包,然后再发给协议栈处理
  • Generic Segmentation Offload (GSO): TSO/LSO的增强,同时支持TCP和UDP协议,负责把超过MTU的包分片
  • Generic Receive Offload (GRO):LRO的增强,负责将接收到的多个包聚合成一个大的数据包,然后再发给协议栈处理

PMTU (Path Maximum Transmission Unit Discovery)

PMTU 的用途是动态的确定从发送端到接收端整个路径上的最小 MTU,从而避免分包。注意,PMTU 只支持 TCP,对其他协议比如 UDP 无效。而且,如果发送方已经开启了 PMTU,那么它发送的所有 TCP/IP 包的 DF 标志都被设置为 1 即不再允许分包。当网络路径上某个路由器发现发送者的包因为超过前面转发路径的 MTU 而无法发送时,它向发送者返回一个 ICMP "Destination Unreachable" 消息,其中包含了那个 MTU,然后发送者就会在它的路由表中将该mtu值保存下来,再使用较小的 MTU 重新发出新的较小的包。

例子1:超过 MTU,DF = 0 => 路由器分包、发送,接收主机组装

例子2:超过,DF = 1 => PMTU,发送者重新以小包发送

【编辑推荐】

  1. 木有IPv6就木有未来,聊聊部署IPv6的必要性
  2. IP /TCP协议及握手过程和数据包格式中级详解
  3. 关于IPv6的秘密史
  4. IPv6协议及安全浅谈
  5. OSI与TCP/IP你了解多少?带你走进通信世界的大门
【责任编辑:赵宁宁 TEL:(010)68476606】
点赞 0

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读