当前位置:网站首页>详解TCP分段与IP分片
详解TCP分段与IP分片
2022-07-23 05:45:00 【可能我浪荡】
- MTU(Maximum Transmission Unit 最大传输单元)
MTU是链路层中的网络对数据帧的一个限制,以太网的MTU是1500个字节。一个IP数据报在以太网中传输,如果它的长度大于该MTU值,就要进行分片传输,使得每片数据报的长度小于MTU。分片传输的IP数据报不一定按序到达,但IP首部中的信息能让这些数据报片按序组装。IP数据报的分片与重组是在网络层完成的。 - MSS(Maximum Segment Size 最大分段大小)
MSS是TCP里的一个概念(首部的选项字段中)。MSS是TCP数据包每次能够传输的最大数据分段,TCP报文段的长度大于MSS时,要进行分段传输。TCP协议在建立连接的时候通常要协商双方的MSS值,每一方都有用于通告它期望接收的MSS选项(MSS选项只出现在SYN报文段中,即TCP三次握手的前两次)。MSS的值一般为MTU值减去两个首部大小(需要减去IP数据包首部20字节和TCP数据段的首部20字节)。所以如果用链路层以太网,MSS的值往往为1460字节。而Internet上标准的MTU(最小的MTU,链路层网络为x2.5时)为576,那么如果不设置,则MSS的默认值就为536字节。很多时候,MSS的值最好取512的倍数。(TCP报文段的分段与重组是在运输层完成的) - TCP分段的原因是MSS,IP分片的原因是MTU,由于一直有MSS<=MTU,分段后的每一段TCP报文段再加上IP首部后的长度不可能超过MTU,因此也就不需要在网络层进行IP分片了。因此TCP报文段很少会发生IP分片的情况
- 由于UDP数据报不会自己进行分段,因此当长度超过了MTU时,会在网络层进行IP分片。同样,ICMP在网络层中同样会出现IP分片情况。
- 总结:UDP不会分段,就由IP来分;TCP会分段,当然就不用IP来分了。
- IP数据报分片后,只有第一片带有UDP首部或ICMP首部,其余的分片只有IP头部。到了端点后根据IP头部中的信息在网络层进行重组。而TCP报文段的每个分段中都有TCP首部,到了端点后根据TCP首部的信息在传输层进行重组。IP数据报分片后,只有到达目的地后才进行重组,而不是像其他网络协议,在下一站就要进行重组。
- 对于IP分片的数据报来说,即使只丢失一片数据也要重新传整个数据报(既然有重传,说明传输层使用的是具有重传功能的协议,如TCP)。这是因为IP层本身没有超时重传机制——由更高层来负责超时和重传。当来自TCP报文段的某一段(在IP数据报的某一片中)丢失后,TCP在超时后会重发整个TCP报文段,该报文段对应于一份IP数据报(可能有多个IP分片),没有办法只重传数据报中的一个数据分片。
边栏推荐
猜你喜欢

WebSocket 协议讲解

Blog building five: drawing bed selection

Basic OJ exercise of binary tree-

常见的排序—交换排序

C语言数据库:详细的说明用学生管理系统了解数据库的操作,简单易懂。

Questions and answers of basic principles of steel structure

C#(CSharp) 微信公众号开发一 基本配置

C语言数据库:基于tcp多进程的在线词典,有详细的步骤已经图解,欢迎大家来观看
Blog Building III: comment system selection
![[AUTOSAR DCM 1. module introduction (DSL, DSD, DSP)]](/img/99/55b3162ad061fbd00145d0b6810592.png)
[AUTOSAR DCM 1. module introduction (DSL, DSD, DSP)]
随机推荐
并发编程1-2
求矩阵的鞍点及其对应的下标。
A comprehensive and detailed summary of the basic principles of steel structure
冒泡排序,快速排序
socket基础知识以及各种使用场景
Switch implements expression evaluation
Upper and lower case letter conversion
hot 100 动态规划
Vs attribute configuration related knowledge
Enter the triangle side length and calculate the area
Problems encountered in configuring the historical version of detectron
剑*offer04 重建二叉树
剑指offer 05 两个栈实现队列
刷题笔记:二叉树的中序遍历(三种解法-递归,迭代,Morris)
整数乘以整数溢出了
广播,组播,单播
vscode配置
博客搭建一:框架选择
解决谷歌chrome浏览器双击没反应,不能启动(亲测好用)
GameFramework:打包资源,打随app发布包,打包生成文件夹说明,上传资源至服务器,下载资源,GameFreamworkList.dat 与GameFrameworkVersion.dat