MTU: Maxitum Transmission Unit 最大传输单元
MSS: Maxitum Segment Size 最大分段大小
1. EthernetII帧的结构DMAC+SMAC+Type+Data+CRC
由于以太网传输电气方面的限制,每个以太网帧都有最小的大小64bytes最大不能超过1518bytes,对于小于或者大于这个限制的以太网帧我们都可以视之为错误的数据帧,一般的以太网转发设备会丢弃这些数据帧。
小于64Bytes的数据帧一般是由于以太网冲突产生的“碎片”或者线路干扰或者坏的以太网接口产生的,对于大于1518Bytes的数据帧我们一般把它叫做Giant帧,这种一般是由于线路干扰或者坏的以太网口产生
2. 以太网EthernetII最大的数据帧是1518Bytes这样,刨去以太网帧的帧头(DMAC目的MAC地址48bit=6Bytes+SMAC源MAC地址48bit=6Bytes+Type域2bytes)14Bytes和帧尾CRC校验部分4Bytes,那么剩下承载上层协议的地方也就是Data域最大就只能有1500Bytes这个值我们就把它称之为MTU。这个就是网络层协议非常关心的地方
1518-14-4=1500 MTU
3. 以以太网为例,MTU为1500个字节。一个IP数据报在以太网中 传输,如果它的长度大于该MTU值,就要进行分片传输,使得每片数据报的长度小于MTU。分片传输的IP数据报不一定按序到达,但IP首部中的信息能让这些数据报片按序组装。IP数据报的分片与重组是在网络层进完成的
4. MSS是TCP数据包每次能够传输的最大数据分段,TCP报文段的长度大于MSS时,要进行分段传输。TCP协议在建立连接的时候通常要协商双方的MSS值,每一方都有用于通告它期望接收的MSS选项。MSS的值一般为MTU值减去两个首部大小(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以如果用链路层以太网,MSS的值往往为1460。而Internet上标准的MTU(最小的MTU,链路层网络为x2.5时)为576,那么如果不设置,则MSS的默认值就为536个字节。很多时候,MSS的值最好取512的倍数。TCP报文段的分段与重组是在运输层完成的
1500-20(IP)-20(TCP)=1460, MSS
5. TCP分段的原因是MSS,IP分片的原因是MTU,由于一直有MSS<=MTU,很明显,分段后的每一段TCP报文段再加上IP首部后的长度不可能超过MTU,因此也就不需要在网络层进行IP分片了。因此TCP报文段很少会发生IP分片的情况
6. 再来看UDP数据报,由于UDP数据报不会自己进行分段,因此当长度超过了MTU时,会在网络层进行IP分片。同样,ICMP(在网络层中)同样会出现IP分片情况。
7. IP数据报分片后,只有第一片带有UDP首部或ICMP首部,其余的分片只有IP头部,到了端点后根据IP头部中的信息再网络层进行重组。
8. TCP报文段的每个分段中都有TCP首部,到了端点后根据TCP首部的信息在传输层进行重组。
9. IP数据报分片后,只有到达目的地后才进行重组,而不是向其他网络协议,在下一站就要进行重组
10. 对IP分片的数据报来说,即使只丢失一片数据也要重新传整个数据报(既然有重传,说明运输层使用的是具有重传功能的协议,如TCP协议)。这是因为IP层本身没有超时重传机制------由更高层(比如TCP)来负责超时和重传。当来自TCP报文段的某一段(在IP数据报的某一片中)丢失后,TCP在超时后会重发整个TCP报文段,该报文段对应于一份IP数据报(可能有多个IP分片),没有办法只重传数据报中的一个数据分片
分享到:
相关推荐
在深入探讨“ip分片重组及tcp分段重组具体实现”这一主题之前,首先要明确IP分片和TCP分段的概念。IP分片是IP层的一种机制,用以将一个较大的IP数据包分割成多个小的数据包以便在网络中传输。因为不同的网络链路可能...
IP 分片和 TCP 分段原理 IP 分片是指在数据传输过程中,为了避免数据超过网络的 MTU(Maximum Transmission Unit),将数据分割成多个小的数据包,以便在网络中传输。这是因为,某些协议如 UDP 和 ICMP,它们不支持...
虽然IP分片在技术上可行,但它也有一些缺点,比如当一个分片丢失时,整个数据报都需要重新传输。为了避免这种情况,可以通过以下几种方式减少或避免分片的发生: 1. **调整MTU大小**:通过调整网络设备的MTU大小,...
10. **IP分片与重组**:当IP数据包过大无法通过某些网络时,会在源地进行分片并在目的地进行重组。 11. **TCP拥塞控制**:TCP有多种拥塞控制算法,如慢启动、拥塞避免、快速重传和快速恢复等,以防止网络拥塞。 12...
timers.c包含了各种定时器管理,如TCP重传定时器、IP分片重组定时器等,这些定时器是保证网络协议正常运行的重要组成部分。系统调用在system.c中被实现,它们是应用程序与协议栈交互的桥梁,提供了发送、接收数据...
在这个例子中,IP头部包含了版本、服务类型、总长度、标识符、标志、分片偏移量、TTL、协议等信息,TCP头部则有源和目的端口号、序列号、确认号、标志位等。通过这种方式,我们可以实际观察到TCP/IP协议如何在实际...
12. **IP分片与重组**:当数据包过大无法通过某个网络的MTU(最大传输单元)时,IP层会将其分成多个小片段,接收端再进行重组。 通过阅读TCP/IP详解第一卷中文版,读者将全面了解网络通信的基础知识,为进一步学习...
4. 分片与重组:由于网络中不同链路的MTU(最大传输单元)不同,IP可能会对大包进行分片,接收端再进行重组。 TCP/IP模型通常被分为四层(或五层),分别是应用层、传输层、网络层、数据链路层和物理层。每一层都有...
9. **IP分片与重组**:由于网络中路径的最大传输单元(MTU)可能不同,大尺寸的数据包会被IP层分片,到达目的地后进行重组。 10. **TCP流量控制与拥塞控制**:TCP通过滑动窗口机制进行流量控制,防止发送方过快导致...
此外,IP分片与重组、ARP(Address Resolution Protocol,地址解析协议)和RARP(Reverse Address Resolution Protocol,反向地址解析协议)也是网络层的重点。 2. **IP寻址与子网划分**:在第13章中,可能详细讲解...
书中会详细介绍IP协议的工作原理,包括IP地址、子网掩码、默认网关以及IP分片和重组。 3. **互联网络**:讲解了路由器的工作方式,以及ICMP(Internet Control Message Protocol)协议,它是IP层的一个重要辅助协议...
接下来,书中详细讨论了网络层的IP协议,包括IP头部结构、子网掩码、CIDR(无类别域间路由)以及IP分片和重组。此外,还介绍了ICMP(Internet Control Message Protocol)互联网控制消息协议,它是网络层用于错误...
与分段有关的 IP 报头字段分别是分段标识符,分段偏移和分段标志位,这是一个正确的说法。IP 报头中包含了许多字段,用于记录数据报的信息。 Ping 允许用户向目的系统发送一个或多个 ICMP Echo Request 消息,这是...
- 标志:指示是否允许分片以及当前片段是否为最后一个片段。 - 片偏移:指示当前片段相对于原数据报的起始位置。 - 生存时间:定义数据报在网络中可以存活的时间,每经过一个路由器减少1,用于防止数据包无限循环...
- 分片和重组。 ##### 2. TCP协议 - **定义**:传输控制协议(Transmission Control Protocol)是一种面向连接的协议,提供可靠的数据传输服务。 - **特点**: - 流量控制和拥塞控制。 - 序列号和确认机制确保...
微信元分段及重组的处理不仅涉及到网络底层的IP分片和重组机制,还涉及到上层协议如TCP的流量控制和拥塞避免策略。此外,对于微信自身,可能还有特定的算法来优化用户体验,比如快速重传和快速恢复机制,以确保消息...