1.MTU(Maximum Transmission Unit,MTU),最大传输单元

(1)以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492个字节。链路层的这个特性称作MTU。不同类型的网络大多数都有一个上限。如果IP层有一个数据要传,且数据的长度比链路层的MTU还大,那么IP层就要进行分片(fragmentation),把数据报分成若干片,这样每一个分片都小于MTU。
(2)把一份IP数据报进行分片以后,由到达目的端的IP层来进行重新组装,其目的是使分片和重新组装过程对运输层(TCP/UDP)是透明的。由于每一分片都是一个独立的包,当这些数据报的片到达目的端时有可能会失序,但是在IP首部中有足够的信息让接收端能正确组装这些数据报片。
(3)尽管IP分片过程看起来透明的,但有一点让人不想使用它:即使只丢失一片数据也要重新传整个数据报。why?因为IP层本身没有超时重传机制——由更高层(比如TCP)来负责超时和重传。当来自TCP报文段的某一片丢失后,TCP在超时后会重发整个TCP报文段,该报文段对应于一份IP数据报(而不是一个分片),没有办法只重传数据报中的一个数据分片。
(4)使用UDP很容易导致IP分片,TCP试图避免IP分片。那么TCP是如何试图避免IP分片的呢?其实说白了,采用TCP协议进行数据传输是不会造成IP分片的,因为一旦TCP数据过大,超过了MSS,则在传输层会对TCP包进行分段(如何分,见下文!),自然到了IP层的数据报肯定不会超过MTU,当然也就不用分片了。而对于UDP数据报,如果UDP组成的IP数据报长度超过了1500,那么IP数据报显然就要进行分片,因为UDP不能像TCP一样自己进行分段。总结:UDP不会分段,就由我IP来分。TCP会分段,当然也就不用我IP来分了!

2.MSS(Maxitum Segment Size)最大分段大小的缩写,是TCP协议里面的一个概念

(1)MSS就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以往往MSS为1460。通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。
(2)相信看到这里,还有最后一个问题:TCP是如何实现分段的呢?其实TCP无所谓分段,因为每个TCP数据报在组成前其大小就已经被MSS限制了,所以TCP数据报的长度是不可能大于MSS的,当然由它形成的IP包的长度也就不会大于MTU,自然也就不用IP分片了。

IP分片和TCP分段的区别相关推荐

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

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

  2. IP分片、TCP分段

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

  3. IP分片与TCP分段

    目录 IP分片(网络层) 1. 原因 2. 缺陷 3. 改进方式 TCP分段(传输层) 优势 备注 阅读目标 理解TCP/IP对报文的拆分逻辑 对IP协议还比较陌生的同学异步到IP协议报文详解 在TC ...

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

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

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

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

  6. IP分片与TCP分包

      TCP/IP 协议栈中定义了MSS, 为的是提高网络的性能,因为如果让IP层分包的话,丢包后的重发没法控制,需要重传整个TCP包(浪费了网络资源).   MSS就是这个协商的结果,不能人为修改,这 ...

  7. 关于tcp分段和ip分片

    Maximum Segement Size (MSS) 最大分段长度 tcp会将应用层交付下来的数据分为tcp认为最适合发送的数据块(这里的最适合指的是用户可以自己配置mss长度),单位为字节,发送端 ...

  8. 学习笔记之IP分片抓包实验

    学习笔记之IP分片抓包实验 摘要 分片实验 identification字段 附:`MTU`和`MSS` 1,MTU(Maximum Transmission Unit,MTU),最大传输单元 2,M ...

  9. ip分片 tcp分段(转)

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

最新文章

  1. Debian 6.0 安装过程 及中文乱码
  2. 2021年度人类社会发展十大科学问题发布
  3. 风向变了 网络安全又占股市风口
  4. boost::stl_interfaces::detail相关的测试程序
  5. Makefile (二)
  6. 程序员实际情况_程序员实际上是做什么的?
  7. git 拉取远程其他分支代码_【记录】git 拉取远程分支代码,同步到另一个git上...
  8. Joi验证模块的使用
  9. 魅思V20全新正规视频系统源码
  10. (77)FPGA时序违例及解决办法-面试必问(一)(第16天)
  11. 通过Spark生成HFile,并以BulkLoad方式将数据导入到HBase
  12. python3 数据结构_Python3数据结构
  13. Powershell与运维之服务器管理(一) 利用Powershell管理HP服务器
  14. 专为Oracle数据库恢复而生 - PRM
  15. 计算机实验报告protel,Protel99se实验报告.doc
  16. Vue项目中安装axios
  17. isSelected() 的使用
  18. ​单页应用程序是如何打破网页设计的?
  19. MacOS修改Hosts文件
  20. WPS VBA遇到的问题小记

热门文章

  1. 5911. 模拟行走机器人 II
  2. udemy下载课程无法播放_最好的Udemy Web开发课程+热门免费课程
  3. 了解如何使用Flutter构建iOS和Android应用
  4. 易语言程序应用程序错误退出_为什么我退出Google并构建了一个向孩子们教授个人理财的应用程序
  5. TRIZ解决问题方法
  6. MySQL时间戳与日期格式的相互转换
  7. Aho-Corasick automaton 模板
  8. 每天一个linxu命令6之jps  查看java进程的端口
  9. PS图像菜单下计算命令
  10. Cross-Site Scripting(XSS)的类型