| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 计算机网络 网络层 IP 数据报的格式以及分片 -> 正文阅读 |
|
[网络协议]计算机网络 网络层 IP 数据报的格式以及分片 |
IP 数据报的格式一个 IP 数据报由首部和数据两部分组成。 首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。 在首部的固定部分的后面是一些可选字段,其长度是可变的。(可有可无) IP协议主要是将包从源地址发往目标地址,里面最重要的就是源地址和目标地址,源和目的地址各占4个字节。 版本4比特,用来指定是IPV4还是IPV6。 ?这个字段占8比特,作用是给数据包加上标记,在路由器那边带有标记的优先转发,这能够确保某种应用的流量带宽有保障。 占用两个字节,总长度是指首部加数据部分,数据包最大的长度为65535个字节。网卡通常有个最大传输单元MTU,最大的传输单元是1500个字节,也就是网卡能够接收数据包的大小为1500个字节,网卡就需要分片了,每个分片都得加上网络层的地址,接收端收到这些片的时候还得准装成包。 它怎么知道组装成一个包呢,这里面就有标识。 一个数据包分片之后标识都是一样的,接收端看到几个分片的标识都一样,那么怎么正确的拼接呢,这就需要片片偏移了。 ?片偏移用来指明这个片的第一个字节是整个片的第多少个字节。接收端收到之后就会将片按照片偏移组装成一个包。 片标志位为1,那么代表后面还有分片,为0代表后面没有分片。 IP 数据报分片一数据报的总长度为 3820 字节,其数据部分的长度为 3800 字节(使用固定首部),需要分片为长度不超过 1420 字节的数据报片。 因固定首部长度为 20 字节,因此每个数据报片的数据部分长度不能超过 1400 字节。 于是分为 3 个数据报片,其数据部分的长度分别为 1400、1400 和 1000 字节。 原始数据报首部被复制为各数据报片的首部,但必须修改有关字段的值。 ?分片的时候首部都复制,然后算偏移,修改里面的字段,8字节为1个单位。 可以看到分片的标识都是一样的,MF 1 代表分片后面还有分片。分片过后总长度也会发生了改变。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:38:52- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |