IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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数据报

在这里插入图片描述
在图中,网络层包含了四种协议:ARP、IP、ICMP、IGMP,由上下关系表明,ARP为IP协议服务,IP为ICMP和IGMP服务。

IP数据报格式

在这里插入图片描述
此处不区分数据报和分组的概念:当数据部分过长时,将数据部分拆分,形成分组,也就是网络层的传输单元。
首部分为固定部分和可变部分,常规下没有可变部分。

在这里插入图片描述
版本:4位,表示IPv4/IPv6
首部长度:4位,单位是4字节,因为首部最少是固定部分的20字节,因此首部长度最小为5
区分长度:8位,表示期望获得哪种类型的服务
总长度:16位,表示总长度(首部+数据部分),单位1字节,可表示的最大值为2的16次方-1=65535 。但真实的总长度达不到此值,因为过长就会被分片,用来满足数据链路层MTU的限制。
标识、标志、片偏移: IP数据报分片时使用
生存时间(TTL): 8位,表示IP分组的保质期。每经过一个路由器值-1,变为0时被丢弃。
协议:8位,表示数据部分(即上层传输层)的协议。大致有1(ICMP)、2(IGMP)、6(TCP)、8(EGP)、9(IGP)、17(UDP)、41(IPv6)、50(ESP)、89(OSPF)。
首部检验和:16位,只检验首部。
源地址、目的地址:32位。
可选字段:0-40字节,用来支持排错、测量以及安全等措施。
填充:全0,把首部补充为4字节的整数倍。

IP数据报分片

MTU:链路层数据帧可封装数据的上限。以太网的MTU是1500字节。
在这里插入图片描述
网络层的IP分组封装上层数据(传输层)时,只增加了首部;链路层封装上层数据时,加头加尾。
整个IP分组构成了链路层的数据部分,当超过链路层MTU限制时,普遍采用分片的形式。当IP数据报要求不使用分片且长度超过MTU,则数据发送不出去,向上层返回一个ICMP差错报文。

在这里插入图片描述

标识:16位,同一数据报的分片使用同一标识。
标志:3位,只有两位有效,最高位保留不用。
中间位DF(don’t fragment):1,禁止分片;0,允许分片
最低为MF(more fragment):1,还有分片;0,最后一片/没有分片了
片偏移:13位,表示分片后某片在原分组中的相对位置,单位8B。可以看出,分得的片长度都是8B的整数倍(除了最后一片)。

分片过程

某个数据报首部20B、数据部分3800B,需要分片为长度不超过1420B的数据报片。
则可以分为三片,每片的首部长度和原始数据报相同。
在这里插入图片描述
分片后,是乱序到达吗?目的方如何再把片组装起来?

IP地址的分类

IP地址的历史阶段:
- 分类的IP地址
- 子网的划分
- 构成超网(无分类编址方法)

分类的IP地址

IP地址: 全世界唯一的32位/4字节标识符,标识路由器或主机的接口。主机或路由器有多个接口,就有可能有多个ip地址。
IP地址:{网络号,主机号}
在这里插入图片描述
网络号不为0,主机号为0标识某个网络。
LAN1:网络号222.1.3.0,网络内各主机的主机号不同
LAN2:网络号222.1.1.0
LAN3:网络号222.1.2.0,虽然内部有网桥,但它是链路层设备,不能隔离广播域,仍然是一个网络。
中间的三个路由器,每个路由器都有三个接口,每个接口都是一个网络。

在这里插入图片描述
可以看到4字节的IP地址,被分为A、B、C、D、E五类,每类能表示的数量是上类的一半。
每类中能表示的IP地址,有些是不可以用的。

在这里插入图片描述

网络号全0(表示本网络,肯定是A类地址),,当主机号:

  • 为全0,表示自己这台主机。可以作为源地址,不能作为目的地址
    ps: 当写tcp程序时,监听ip地址0.0.0.0,,与这个有关系吗
  • 不为全0,表示本网络内的某台主机,可以作为目的地址,不能作为源地址

网络号全1,主机号全1,即255.255.255.255,表示本网广播地址,不能作为源地址,只能作为目的地址,路由器收到目的地址为它的分组不转发,因为路由器可以隔离广播域。

网络号特定值,主机号全0,表示某个网络,不能作为目的地址和源地址。
网络号特定值,主机号全1,表示某个特定网络的广播地址,可以作为目的地址,不能作为源地址。
网络号127(A类地址),主机号非全0非全1,表示环回地址,可以作为源地址和目的地址。

总结:
网络号全为0,表示本网络的某台主机;
主机号全为0,表示某个网络。
主机号全为1,表示广播地址。

这些特殊的IP地址不能作为主机或路由器的接口地址。

在这里插入图片描述
私有IP地址,只能在本地网中使用,路由器对私有地址数据包一律不转发。

在这里插入图片描述
最大主机数,都是减去全0和全1,即2。
A类地址中,最大网络数减去全0(表示本网络)和全1(127,表示换回地址)
B类地址中,最大网络数减去全0(表示本网络)
C类地址中,最大网络数减去全0(表示本网络)

NAT网络地址转换

在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址。
NAT路由器有一个NAT转换表。
在数据往外发时,源地址是本地地址,替换为路由器的外网地址;在外部数据进来时,目的地址是路由器的外网地址,转换为本地地址。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-21 12:46:40  更:2021-10-21 12:47:56 
 
开发: 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 4:23:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码