【计算机网络】IP协议

devtools/2024/11/25 10:09:22/

一、IP协议的功能

提供将数据从A主机跨网络送到主机B的能力 (在复杂的网络环境中确定一个合适的路径)

二、IP协议格式

​​​​​​​1.报头的含义

(1)一般字段

① 4位版本:指定IP协议的版本,对于IPv4来说就是4

② 4位首部长度:IP报头 = 4位首部长度 * 4字节 -> [20, 60] -> [1010, 1111] (同TCP)

③ 8位服务类型:用于指定服务类型(不太重要)

④ 16位总长度:整个IP报文占多少个字节(IP报头 + 有效载荷)

⑤ 8位生存时间:每跳一次,生存时间- -;当减到0时就不发这个报文了(解决环路问题)

⑥ 8位协议:表示上层协议的类型(交给UDP还是TCP;解决分用的问题)

⑦ 16位首部检验和:利用这个字段来鉴别报头是否损坏

⑧ 32位源IP地址/32位目的IP地址:发送端和接收端的IP

(2)IP报文分片

IP报文的分片与报头中的16位标识、3位标志、13位偏移有关

① 为什么分片

② 如何分片/组装

a.怎么这道一个报文被分片了?

当更多分片(3位标志中的一位) 取值为1时,表示后面还有分片

当更多分片(3位标志中的一位) 取值为0时,表示这是最后一个分片,标志着该数据报的分片结束

 1) 如果更多分片(3位标志中的一位)是1,就证明该报文分片了 -> 其他片

 2) 如果更多分片是0 && 13位片偏移>0 说明是分片,否则不是 -> 最后一片

b.同一个报文的分片怎么被被识别出来?

利用16位标识位 -> 同一个报文的分片的16位标识位相同

c.哪个是第一个?哪个是最后一个?有没有收全或者丢失?

第一个:更多分片=1 && 偏移量=0、最后一个:更多分片=0 && 偏移量>0

当前的起始位置 + 自身长度 = 下一个报文中填充的偏移量大小

d.哪块在前?哪块在后?如何正确的进行组装?

只要按照片偏移进行升序排序即可

e.怎么保证合并起来的报文是正确的?

利用TCP/IP中的校验和

③ 几点注意

a.分片不好,分片不是主流情况

b.一个报文被拆成了多个,任意一个分片丢失都会造成拼接失败,进而导致对端重传整个报文

c.分片会增加丢包概率(99%*99%*99% < 99%)

2.解包/分用

如何解包:利用4位首部长度 和 16位总长度

如何分用:利用8位协议


http://www.ppmy.cn/devtools/136810.html

相关文章

定时/延时任务-Timer用法

文章目录 1. 概要2. 简述2.1 固定速率2.2 固定延时2.3 区别 3. Timer 的用法3.1 固定延时 - public void schedule(TimerTask task, long delay, long period)3.1.1 解释 3.2 固定延时 - public void schedule(TimerTask task, Date firstTime, long period)3.3 固定速率 - pub…

mfc100u.dll是什么?分享几种mfc100u.dll丢失的解决方法

mfc100u.dll 是一个动态链接库(DLL)文件,属于 Microsoft Foundation Classes (MFC) 库的一部分。MFC 是微软公司开发的一套用于快速开发 Windows 应用程序的 C 类库。mfc100u.dll 文件包含了 MFC 库中一些常用的函数和类的定义,这…

C++设计模式:建造者模式(Builder) 房屋建造案例

什么是建造者模式? 建造者模式是一种创建型设计模式,它用于一步步地构建一个复杂对象,同时将对象的构建过程与它的表示分离开。简单来说: 它将复杂对象的“建造步骤”分成多部分,让我们可以灵活地控制这些步骤。通过…

设计模式-创建型-建造者模式

1.概念 建造者设计模式(Builder Design Pattern)是一种创建型设计模式,它通过将一个复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示。 2.作用 用于简化对复杂对象的创建 3.应用场景 当我们有一个非…

P1 练习卷(C++4道题)

1.纷繁世界 内存限制:256MB 时间限制:1s 问题描述 这是一个纷繁复杂的世界。 某一天清晨你起床很迟,没有吃上早饭。于是你骑着自行车去超市,但是你又发现商店的工作人员已经重新贴上了价格标签,零食价格都涨了50%。你…

Redis核心数据结构与高性能原理

一、Redis安装 下载地址:http://redis.io/download 安装步骤: # 安装gcc yum install gcc# 把下载好的redis-5.0.3.tar.gz放在/usr/local文件夹下,并解压 wget http://download.redis.io/releases/redis-5.0.3.tar.gz tar -zxvf redis-5.0.3…

深入理解 prompt提示词 原理及使用技巧

引言 在现代深度学习和人工智能领域,文本到图像生成模型(如 Stable Diffusion、DALL-E 等)已经取得了显著的进展。这些模型能够根据给定的文本提示词生成高质量的图像,极大地拓展了创意设计和艺术创作的可能性。然而,…

[高阶数据结构四] 初始图论

1.前言 本篇着重讲解图的相关知识,大家跟随我的脚步往下阅读。 本章重点: 本章着重讲解图的基本知识,图的存储结构:邻接矩阵,邻接表以及图的模拟实现 2.图的基本概念 图是由顶点集合及顶点间的关系组成的一种数据结构…