IP协议(下)

news2025/1/10 15:37:16

目录

一、IP分片

1.为什么需要IP分片

2.IP报头信息

二、分片的组装

1.接收方怎么知道一个报文被分片了

2.同一个报文的分片怎么全部识别出来的

3.报文如何排序,如何得知报文有没有收全

4.怎么将各分片正确组装

5.怎么确定合成的报文是正确的

6.总结

三、自己进行分片的组装

1.自己做一次分片

2.实际的IP判断


本文章讲解IP协议的分片问题,也是IP协议的最后一部分。

一、IP分片

1.为什么需要IP分片

前面在讲述IP协议报头的时候,我忽略了16位标识、3位标志和13位片偏移这三个字段,由于这三个字段只服务于分片,对跨网络传输没有帮助,所以我将它们同一放在了后面。

在网络分层模型中,IP协议所在的网络层的下一层是数据链路层。

数据链路层使用的协议为MAC桢协议,IP协议依旧需要将数据向下交付,通过MAC桢协议处理后才能将MAC桢数据通过网线发送。(忽略物理层)

但是MAC桢协议的单帧有效载荷不能超过最大传送单元(MTU),大部分为1500字节。

另一方面,IP协议的校验和只负责IP报头的校验,TCP的校验和会同时负责报头和有效载荷的校验。

也就是说,IP报文的长度是由TCP决定的。

正是因为MAC桢协议的限制,TCP只能将数据分包发送,且保证每个数据报文长度不超过MTU。

那如果TCP就给了IP一个超过MTU的报文,MAC桢协议又没法处理,IP该怎么办呢?

所以就需要IP将报文分片,保证每个报文都不超过MTU,然后再向下交付。

因为网络各层协议相互独立,所以IP的分片属于IP自身的行为。

分片只能由当前主机的IP协议来做,组装也只能由对方主机的IP协议来做。

2.IP报头信息

(1)16位标识

16位标识:一个16位整数,保证自己和其他的保文不重复。

(2)3位标志

3位标志:有3个比特位。

  • 第一位为保留位,不使用且为0。
  • 第二位为1表示禁止分片,若此时报文长度超过MTU,则IP会丢弃报文。若为0表示允许分片,IP正常分片即可。
  • 第三位表示更多分片,对于一个TCP报文的分片,最后一个分片该位为0,其他均为1。

(3)13位片偏移

表示该分片的有效数据头部相对未分片的数据的偏移量。若不分片,对应报文在原始报文的偏移量为0。

(4)填入分片数据

IP将一个4500字节的TCP报文,分片成三个1500字节的IP报文。

  • 三个1500字节的报文是一组,所以它们的16位标识相同,比如设为1234。
  • 第一个报文的片偏移为0,第二个报文的片偏移为1500,第三个报文的片偏移为3000。
  • 对三位标志而言,三个报文第一位都为0。因为允许分片,所以第二位都为0。因为三个报文有先后顺序,所以偏移量为0和1500的报文该位为1,偏移量为3000的报文该位为0。

二、分片的组装

1.接收方怎么知道一个报文被分片了

一种情况,如果更多分片标志位为1,表示该报文被分片过。

另一种情况,如果更多分片标志位为0且片偏移大于0,表明该报文是分片的最后一个。

2.同一个报文的分片怎么全部识别出来的

每一组分片的报文的16为标志都相同,当然能识别出报文的归属。

3.报文如何排序,如何得知报文有没有收全

第一个报文的偏移量为0,更多分片为1,最后一个报文的偏移量大于0,更多分片为0。对于其他报文,前一个报文的偏移量+自身长度=后一个报文中偏移量,这样就能确定分包的排序,也能确定报文是否收全。

4.怎么将各分片正确组装

按照片偏移进行升序排列即可。

5.怎么确定合成的报文是正确的

TCP和IP都有校验和,IP协议校验和校验IP报头,不检查有效数据。TCP通过TCP校验和校验有效数据和TCP报头。

6.总结

(1)IP分片属于数据传输的少数情况

TCP在大部分时间里都能保证报文的长度不超过MTU,所以IP分片很少出现。

(2)分片对数据安全传递是有很大威胁的

当IP发送分片后的报文时,如果某一个报文分片丢失了,接收方就不能成功组装,此时所有已接收的分片报文都会被丢弃。而且分片越多,分片丢失的概率越大,更不利于数据传送。

由于TCP协议存在超时重传机制,哪怕IP分片丢失,数据也不会遗失。但由于分片是IP协议自己进行的,所以TCP会将未分片的报文向IP传递,IP还需要重新分片再发送。

(3)安全高效的数据传输需要TCP的合理控制

我们要想从根源上解决问题,就需要让TCP将数据分包成合适的大小,尽量避免IP分片,才能减少丢包率。

三、自己进行分片的组装

1.自己做一次分片

假设TCP向IP传输了一个3000字节的报文,报头为标准报头(20字节)。

IP给TCP报文加上自己的标准报头(20字节),发现IP报文总长为3020字节,超过了MTU的1500字节,需要分片。

IP分片会产生多个IP报文,每个报文都会有IP报头。

  • 第一片:IP报头20字节,有效载荷1480字节,1480字节中还包括TCP的报头,总长度1500字节。
  • 第二片:IP报头20字节,提取后面的有效载荷1480字节,总长度1500字节。
  • 第三片:最后剩下有效载荷60字节,再加上IP报头20字节,总长度80字节。

2.实际的IP判断

上面的处理是我们自己凭感觉进行的分片流程,TCP/IP会通过一些报文长度的上限值控制传输的过程。

MTU(最大传送单元):限制了IP报文字节的最大值,一般为1500字节。

MSS (最大段尺寸):由于IP标准报头为20字节,所以IP的有效数据最大为1480字节。而TCP标准报头也为20字节,TCP报头是IP报文的有效数据,所以TCP的最大有效载荷为1460字节,也叫最大段尺寸。所以TCP会通过滑动窗口进行分包,保证每个TCP报文的有效数据不超过MSS。

从这里,我们也再次理解了,为了保证数据的安全传输,避免IP分片,需要TCP控制好自己的报文长度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1117137.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年中国轮胎模具需求量、竞争格局及行业市场规模分析[图]

轮胎模具是轮胎生产线中的硫化成形装备,是高技术含量、高精度及高附加值的个性化模具产品,尤其是轮胎的花纹、图案、字体以及其他外观特征的成形都依赖于轮胎模具,因此其制造技术难度较高。其主要功能是通过所成型材料(主要是橡塑…

2023年中国工业空气加热器市场规模及存在问题分析[图]

工业空气加热器行业是指涉及工业领域中空气加热设备的制造、销售、安装和维护的产业。这个行业专注于生产用于加热空气的设备,以满足工业生产过程中的加热需求。工业空气加热器可以采用各种不同的加热技术,如电加热、燃气加热、蒸汽加热等,用…

JAVA IO-转换流

转换流的特点: 1. 其是字符流和字节流之间的桥梁 2. 可对读取到的字节数据经过指定编码转换成字符 3. 可对读取到的字符数据经过指定编码转换成字节字符流和字节流的区别是什么? 字符流字节流编码集, 在实际读取的时候其实字符流还是按照字节…

基于Java的书店仓库管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding) 代码参考数据库参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

SparkStreaming入门

概述 实时/离线 实时:Spark是每个3秒或者5秒更新一下处理后的数据,这个是按照时间切分的伪实时。真正的实时是根据事件触发的数据计算,处理精度达到ms级别。离线:数据是落盘后再处理,一般处理的数据是昨天的数据&…

【微信小程序】后台数据交互于WX文件使用

目录 一、前期准备 1.1 数据库准备 1.2 后端数据获取接口编写 1.3 前端配置接口 1.4 封装微信的request请求 二、WXS文件的使用 2.1 WXS简介 2.2 WXS使用 三、后台数据交互完整代码 3.1 WXML 3.2 JS 3.3 WXSS 效果图 一、前期准备 1.1 数据库准备 创建数据库&…

【JavaEE初阶】 定时器详解与实现

文章目录 🌴定时器是什么🎋Java标准库中的定时器🌲模拟实现定时器🚩定时器的构成📌第一步:MyStack类的建立📌第二步:创建MyTimer类📌第三步:解决相关问题 &am…

ant利用pathconvert将资源集合转换为路径方式

ant可以利用pathconvert 任务&#xff0c;将内嵌的资源集合转换为某一平台的路径方式。pathconvert可以通过属性property设置一个属性名称&#xff0c;将转换后的路径保存到属性中。 例如&#xff0c;下面的代码&#xff1a; <project name"demo_project"><…

2023年中国一次性医用内窥镜市场发展现状分析:相关产品进入上市高峰期[图]

基于对减少交叉感染风险和维护成本的需求等因素&#xff0c;一种新兴的、耗材化的一次性内窥镜可以避免因重复使用产品而导致的感染问题和高额的清洗消毒费用&#xff0c;从而提高患者的安全性并帮助医疗机构节省运营成本。 一次性和可重复使用医用内窥镜特点对比 资料来源&am…

C++前缀和算法:合并石头的最低成本原理、源码及测试用例

本文涉及的基础知识点 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 动态规划&#xff0c;日后完成。 题目 有 n 堆石头排成一排&#xff0c;第 i 堆中有 stones[i] 块石头。 每次 移动 需要将 连续的 k 堆石头合并为一堆&#xff0c;而…

asp.net企业招聘管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio计算机毕业设计

一、源码特点 asp.net 企业招聘管理系统 是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver2008&#xff0c;使用c#语 言开发 asp.net企业招聘管理系统 二、功…

SpringBoot常见异步编程,你会多少?

微信公众号访问地址&#xff1a;SpringBoot常见异步编程&#xff0c;你会多少&#xff1f; 近期热推文章&#xff1a; 1、springBoot对接kafka,批量、并发、异步获取消息,并动态、批量插入库表; 2、SpringBoot用线程池ThreadPoolTaskExecutor异步处理百万级数据; 3、基于Redis…

线性代数2:梯队矩阵形式

图片来自 Europeana on Unsplash 一、前言 欢迎阅读的系列文章的第二篇文章&#xff0c;内容是线性代数的基础知识&#xff0c;线性代数是机器学习背后的基础数学。在我之前的文章中&#xff0c;我介绍了线性方程和系统、矩阵符号和行缩减运算。本文将介绍梯队矩阵形式&#xf…

2023年中国养殖渔船产业链、市场规模及发展趋势分析[图]

养殖渔船行业是指涉及水产养殖活动的渔船制造、运营和相关服务的产业。这个行业将渔船和水产养殖业结合起来&#xff0c;包括生产和维护用于养殖水域中养殖活动的各种船只&#xff0c;如养殖网船、渔业养殖船、水产养殖工作船等。 养殖渔船行业产业链 资料来源&#xff1a;共研…

2023年中国车用冲压模具行业特征、竞争现状及行业市场规模分析[图]

汽车冲压件模具具有尺寸大、型面复杂、精度要求高等特点&#xff0c;属于技术密集型产品。汽车冲压模具能快速精密地把材料直接加工成零件或半成品并通过焊接、铆接、拼装等工艺装配成零部件&#xff0c;冲压模具的设计开发和加工能力对汽车冲压零部件产品总制造成本、质量及性…

SpringBoot(二)集成 Quartz:2.5.4

Quartz是一个广泛使用的开源任务调度框架&#xff0c;用于在Java应用程序中执行定时任务和周期性任务。它提供了强大的调度功能&#xff0c;允许您计划、管理和执行各种任务&#xff0c;从简单的任务到复杂的任务。 以下是Quartz的一些关键特点和功能&#xff1a; 灵活的调度器…

海外问卷调查是不是真的能赚钱?

海外问卷调查是不是真的能赚钱&#xff1f;我来告诉你&#xff0c;我在橙河网络这家公司干了两年半的问卷调查&#xff0c;可以明确地告诉你&#xff1a;海外问卷调查确实可以赚钱&#xff0c;真的&#xff01; 海外问卷调查这个项目&#xff0c;在国内已经存在了很长时间&…

KVM动态在线迁移实操笔录

环境介绍 一台NFS&#xff08;192.168.184.132&#xff09; 一台KVM-a&#xff08;192.168.184.133&#xff09; 一台KVM-b&#xff08;192.168.184.134&#xff09; NFS配置 [rootlocalhost ~]# setenforce 0 //关闭selinux [rootlocalhost ~]# service iptables stop [root…

电子元器件网络变压器(网络滤波器 ̖ 脉冲变压器)的EMI产生原因

Hqst华强盛&#xff08;盈盛电子&#xff09;导读&#xff1a;网络变压器&#xff08;网络滤波器 ̖ 脉冲变压器&#xff0c;以下称网络变压器&#xff09;在工作过程中会产生电磁场&#xff0c;这可能会导致电磁干扰&#xff08;EMI&#xff09;。EMI会影响设备的性能和可靠性…

基于Java的图书商城管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09; 代码参考数据库参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…