计算机网络之网络层
(一)TCP分段和IP分片
1、 TCP分段
- 按照长度MSS划分
- MSS是TCP 提交给 IP 层最大分段大小,不包含 TCP Header 和 TCP Option,只包含 TCP Payload;
- MSS 是 TCP 用来限制应用层最大的发送字节数;
- MSS会在三次握手的过程中传递给对方,用于通知对端本地最大可以接收的TCP报文数据大小。
- 三次握手中MSS也可能改变
- 每次执行TCP发送消息的函数时,会重新计算一次MSS,再进行分段操作
- 如果对端不传MSS
- 默认MSS=536Byte;
- 536(data)+20(tcp头)+20(ip头)=573正好是IP最小重组缓冲区的大小
2、 IP分片
- 按照长度MTU划分
- 由数据链路层提供,为了告诉上层IP层,自己的传输能力是多大
- 为了分片后能在接收端把切片组装起来,还需要在分片后的IP包里加上各种信息。比如这个分片在原来的IP包里的偏移offset。
- 在一台机器的应用层到这台机器的网卡,这条链路上,基本上可以保证,MSS < MTU
(二)IP
- IP协议并不提供可靠传输。如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因。所以我们就需要一种协议来完成这样的功能–ICMP协议。
(三)ICMP
- 功能:确认IP包是否成功到达目标地址;通知在发送过程中IP包被丢弃的原因