分片分为两种:
一种是MTU,MTU是链路层的最大传输单元,是链路层中的网络对数据帧的一个限制。
一个IP数据报在以太网中 传输,如果它的长度大于该MTU值,就要进行分片传输,使得每片数据报的长度小于MTU。分片传输的IP数据报不一定按序到达,但IP首部中的信息能让这些数据报片按序组装。IP数据报的分片与重组是在网络层进完成的。

另一种是MSS,这个是TCP的一个概念。MSS选项只出现在SYN报文段中,即TCP三次握手的前两次。MSS的值一般为MTU值减去两个首部大小(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes),而Internet上标准的MTU(最小的MTU,链路层网络为x2.5时)为576,那么如果不设置,则MSS的默认值就为536个字节。很多时候,MSS的值最好取512的倍数。TCP报文段的分段与重组是在运输层完成的。

TCP分段的原因是MSS,IP分片的原因是MTU,由于一直有MSS<=MTU,很明显,分段后的每一段TCP报文段再加上IP首部后的长度不可能超过MTU,因此也就不需要在网络层进行IP分片了。因此TCP报文段很少会发生IP分片的情况。

再来看UDP数据报,由于UDP数据报不会自己进行分段,因此当长度超过了MTU时,会在网络层进行IP分片。同样,ICMP(在网络层中)同样会出现IP分片情况。

UDP不会分段,就由IP来分。TCP会分段,当然就不用IP来分了。

对IP分片的数据报来说,即使只丢失一片数据也要重新传整个数据报(既然有重传,说明运输层使用的是具有重传功能的协议,如TCP协议),不只是重传。这是因为IP层本身没有超时重传机制------由更高层(比如TCP)来负责超时和重传。当来自TCP报文段的某一段(在IP数据报的某一片中)丢失后,TCP在超时后会重发整个TCP报文段,该报文段对应于一份IP数据报(可能有多个IP分片),没有办法只重传数据报中的一个数据分片。
每个ip分片都有ip数据报的头部。

分片的总结——TCP分段与UDP/IP分片相关推荐

  1. 【网络协议】TCP分段与UDP/IP分片 (MTU最大传输单元,MSS最大分段大小)

    我们在学习TCP/IP协议时都知道,TCP报文段如果很长的话,会在发送时发生分段,在接受时进行重组,同样IP数据报在长度超过一定值时也会发生分片,在接收端再将分片重组. 我们先来看两个与TCP报文段分 ...

  2. IP分片和TCP分段解析--之IP分片

    本文目录 什么是IP分片 为什么会产生IP分片 为什么要避免IP分片 如何避免IP分片 什么是IP分片 IP协议栈将TCP/UDP传输层要求它发送的,但长度大于发送端口MTU的一个数据包,分割成多个I ...

  3. IP 分片/MTU 与TCP分段/MSS

    TCP/IP协议时都知道,TCP报文段如果很长的话,会在发送时发生分段,在接受时进行重组,同样IP数据报在长度超过一定值时也会发生分片,在接收端再将分片重组. 先从四层模型:链路层,网络层,传输层,应 ...

  4. ip分片 tcp分段(转)

    为什么会有IP分片?直接原因是上层协议企图发送一段数据,其长度超过了MTU(Maxitum Transmission Unit).什么情况,或者说什么协议会尝试发送这么长的数据?常见的有UDP和ICM ...

  5. 会动的图解 | 既然IP层会分片,为什么TCP层也还要分段?

    什么是TCP分段和IP分片 我们知道网络就像一根管子,而管子吧,就会有粗细. 一个数据包想从管子的一端到另一端,得过这个管子.(废话) 但数据包的量有大有小,想过管子,数据包不能大于这根管子的粗细. ...

  6. 动图图解!既然IP层会分片,为什么TCP层也还要分段?

    文章持续更新,可以微信搜一搜「golang小白成长记」第一时间阅读,回复[教程]获golang免费视频教程.本文已经收录在GitHub https://github.com/xiaobaiTech/g ...

  7. 详解IP分片与TCP分段的区别

    首先注意:一般听到的TCP分片应该称为TCP分段.IP分片与TCP分片是两个不同概念,别把IP分片与TCP分片别弄混淆了, 接下来直接划重点,两者主要区别: 1.IP分片产生的原因是网络层的MTU:T ...

  8. IP分片、TCP分段

    服务器开发系列 文章目录 服务器开发系列 一.计算机网络传输基础知识 二.IP分片.TCP分段 1.MTU 定义 2. MSS 简述 3. udp 或 tcp 包的最佳大小 4. 如何测出当前网络最佳 ...

  9. IP分片和TCP分片的区别

    前段时间要做一个关于网络嗅探的程序,里面要重组IP分片,TCP分片. 但做的时候忽视了一个很重要的东西:IP分片与TCP分片弄混淆了. 首先声明:TCP分片应该称为TCP分段. ----------- ...

最新文章

  1. 百度AI快车道—企业深度学习实战营,推荐系统主题专场即将开课
  2. ArcGIS API for javascript开发笔记(五)——GP服务调用之GP模型的发布及使用详解...
  3. EasyNVR摄像机H5流媒体服务器在windows上批处理脚本自动以管理员权限运行
  4. Cocos2dx 小技巧(十五)话说ScrollView的delegate实现过程
  5. format函数_Python学习教程:Python3之字符串格式化format函数详解(上)
  6. git学习笔记(1-集中式与分布式版本控制工具对比)
  7. 病毒肆虐,宅在家里的时候,作为企业经营者的我在想些什么
  8. CSS文字加粗,字体,颜色渐变,消失总结
  9. linux密码记录木马,注意 “QQ大盗”木马注入 QQ 进程记录QQ账号与密码
  10. pytorch 语⾔模型数据集(周杰伦专辑歌词)数据集 免费
  11. 【嵌入式系统开发19】理解嵌入式实时操作系统,以uc/OS为例利用C8T6完成LED周期闪烁以及串口周期输出
  12. 八位一体共阳极数码管显示电子时钟+闹铃+温度检测
  13. 域名解析暂时失败(二)
  14. 1 1 2 3 5 8 java_【Java】一个斐波那契数列是由数字1、1、2、3、5、8、13、21、34等等组成的,其中每一个数字(从第三个数字起)都是前两个数字的和。...
  15. 多核cpu是并发还是并行_多核CPU及其带来的并发更改
  16. 改了dns服务器有没有影响,dns改成114有危险吗_dns改了有什么影响
  17. python基础第一课(小白piao分享)
  18. 5 个无聊 Python 程序,用 Python 整蛊你的朋友们吧
  19. 目前计算机的发展处于第五代,计算机应用基础.pptx
  20. 设计模式.外观模式Facade

热门文章

  1. HarmonyOS IoT设备内核编程接口-----消息队列
  2. SQL语句排序中null值的处理
  3. 新手指南:DVWA-1.9全级别教程之Brute Force
  4. 记录下刷机步骤Pixel 3 XL
  5. moveToThread简单使用方法
  6. 【C++】C++入门 命名空间 及输入与输出
  7. 构造函数为什么一般不定义为虚函数?而析构函数一般写成虚函数的原因 ?
  8. GBA游戏卡带的几种记忆类型
  9. 如何用一句最经典的话来批评犯错的美丽女性?
  10. 简信CRM分享:移动crm办公系统有哪些作用?