IP分片与TCP分段
目录
- IP分片(网络层)
- 1. 原因
- 2. 缺陷
- 3. 改进方式
- TCP分段(传输层)
- 优势
- 备注
阅读目标
- 理解TCP/IP对报文的拆分逻辑
对IP协议还比较陌生的同学异步到IP协议报文详解
在TCP协议和IP协议中都有字段来对报文进行拆包和组装,为什么在网络层和传输层都有做拆分?在做分析之前,首先科普两个概念.
- 最大传输单元MTU(Maximum Transmission Unit): 为IP网络层的最大载荷上限
- 最大报文段长度MSS(Maximum Segment Size): 为TCP传输层的最大载荷上限
- 关系: MTU = MSS + TCP首部长度 + IP首部长度(不包含以太网头部)
IP分片(网络层)
1. 原因
当IP的报文长度大于MTU时会对该IP报文进行分片
2. 缺陷
因为IP协议没有超时重传机制,所以当IP的某个分片在传输过程中丢失后,会让整个IP报文重新发送。举个栗子:A为长度为2000字节的报文,但由于MTU最大为1500,所以被分成两片A1(1500)和A2(500),由于网络波动A2在传输过程中丢失,A1传输成功,那么根据IP协议没有超时重传的设定,会让A1和A2都重新发送,这样明显是浪费流量。
3. 改进方式
由于IP协议不可重传机制会造成流量的浪费,但我们可以考虑在可以重传的地方将包进行拆分,即TCP分段
TCP分段(传输层)
优势
为了避免IP协议不可重传机制造成的流量浪费,我们可以在TCP协议下先将大报文给分段。另外因为MTU = MSS + TCP首部长度 + IP首部长度,所以TCP分段后的每段肯定都小于MTU,这样就可以避免在网络层对报文分片,从而解决了IP分片带来的问题。
备注
- 因为报文经过路由MTU的值会有差异,所以报文在传输传输过中可能碰到某个路由的MTU小于发送端和接收端的两者的设定,因此在报文在路由转发过程中也可能会进行分片。此问题可以通过
路径MTU发现
解决,在此就不多说了 - 传输层的UDP协议是不可靠传输,所以UDP协议不可分段,只能在IP协议下分片了。
IP分片与TCP分段相关推荐
- IP分片、TCP分段
服务器开发系列 文章目录 服务器开发系列 一.计算机网络传输基础知识 二.IP分片.TCP分段 1.MTU 定义 2. MSS 简述 3. udp 或 tcp 包的最佳大小 4. 如何测出当前网络最佳 ...
- IP分片和TCP分段的区别
1.MTU(Maximum Transmission Unit,MTU),最大传输单元 (1)以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492个字节.链路层的这个特性称作 ...
- 详解IP分片与TCP分段的区别
首先注意:一般听到的TCP分片应该称为TCP分段.IP分片与TCP分片是两个不同概念,别把IP分片与TCP分片别弄混淆了, 接下来直接划重点,两者主要区别: 1.IP分片产生的原因是网络层的MTU:T ...
- IP分片和TCP分段解析--之IP分片
本文目录 什么是IP分片 为什么会产生IP分片 为什么要避免IP分片 如何避免IP分片 什么是IP分片 IP协议栈将TCP/UDP传输层要求它发送的,但长度大于发送端口MTU的一个数据包,分割成多个I ...
- IP分片和TCP分片的区别
前段时间要做一个关于网络嗅探的程序,里面要重组IP分片,TCP分片. 但做的时候忽视了一个很重要的东西:IP分片与TCP分片弄混淆了. 首先声明:TCP分片应该称为TCP分段. ----------- ...
- IP分片与TCP分包
TCP/IP 协议栈中定义了MSS, 为的是提高网络的性能,因为如果让IP层分包的话,丢包后的重发没法控制,需要重传整个TCP包(浪费了网络资源). MSS就是这个协商的结果,不能人为修改,这 ...
- 关于tcp分段和ip分片
Maximum Segement Size (MSS) 最大分段长度 tcp会将应用层交付下来的数据分为tcp认为最适合发送的数据块(这里的最适合指的是用户可以自己配置mss长度),单位为字节,发送端 ...
- 学习笔记之IP分片抓包实验
学习笔记之IP分片抓包实验 摘要 分片实验 identification字段 附:`MTU`和`MSS` 1,MTU(Maximum Transmission Unit,MTU),最大传输单元 2,M ...
- 【网络协议】TCP分段与IP分片
参考:https://www.cnblogs.com/xfgnongmin/p/10612647.html MTU前面已经说过了,是链路层中的网络对数据帧的一个限制.依旧以以太网为例,MTU为1500 ...
最新文章
- java8 同步队列_秋招之路8:JAVA锁体系和AQS抽象队列同步器
- 深入理解Redis的持久化机制和原理
- SpringBoot返回json和xml
- 面试官问:断网了,还能ping通 127.0.0.1 吗?为什么?
- UVA 10555 - Dead Fraction(数论+无限循环小数)
- 阿里云mysql不让锁表_MySQL中InnoDB锁不住表的原因
- Linux C函数之文件及目录函数
- 502 proxy error解决方法_老大说,网上这种获取真实IP地址的方法不对,我不信......
- bzoj 2131: 免费的馅饼(树状数组+DP)
- 【渝粤教育】国家开放大学2018年春季 0049-21T法律文书 参考试题
- 20145335郝昊《网络攻防》Exp4 Adobe阅读器漏洞攻击
- word图片另存为变黑色_Word的图片另存为图片格式的方法
- 车架号OCR识别算法
- LayUI分页查询展示数据(SSH框架)
- linux操作系统课程设计总结,操作系统课程设计心得+给老师的建议
- python实现中文数字转为阿拉伯数字
- 多档电位器换挡不准确问题
- Java 对象的构造和初始化
- 激光雷达鼻祖Velodyne谋求合并求生:高层动荡 亏损不止
- mysql易百_MySQL如何选择随机记录?
热门文章
- 基于jQuery实现幻灯片切换效果
- 安卓虚拟键盘_逍遥安卓模拟器工作室版下载-逍遥安卓模拟器工作室版PC版下载v7.2.8...
- 数据结构————倒置带头结点单链表操作讲解
- 2022-1-21 迭代器的适配器
- 空气动力学 惯性导航 四轴飞机
- 群晖安装GitServer
- 2021-12-09 Leetcode 941.有效的山脉
- 2021-09-05meituan -001小美的用户名
- 广联达2020写锁工具支持6.0.zip_The Unarchiver for Mac(苹果电脑解压缩工具)
- Ubuntu20.04服务器连接WIFI设置