typora/note/计算机网络/IPv4.md
2024-12-12 10:48:55 +08:00

113 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### 1、IPv4数据报格式
![image-20230709145705180](https://blog-heysq-1255479807.cos.ap-beijing.myqcloud.com/blog/note/image-20230709145705180.png)
### 2、version
- 4个比特构成
- 表示IP首部的版本号
![image-20230709145940327](https://blog-heysq-1255479807.cos.ap-beijing.myqcloud.com/blog/note/image-20230709145940327.png)
### 3、首部长度 IHL
- Internet Header Length
- 4比特构成
- 表示IP首部的大小
- 单位为4字节32比特
- 没有可选项没有数据的IP数据报首部长度字段为5也就是首部真实数据长度为20字节
### 4、区分服务 TOS
- Type Of Service
- 8比特构成
- 表明服务质量
- 通常有应用指定
- 有人提出将TOS字段划分为 DSCP和ECN两个字段
- DSCP Differential Services Codepoint 差分服务代码点
- Explicit Congestion Notification 显式拥塞通告
![image-20230709150354408](https://blog-heysq-1255479807.cos.ap-beijing.myqcloud.com/blog/note/image-20230709150354408.png)
### 5、总长度 Total Length
- 首部+数据部分总长度
- 长为16比特
- IP包的最大长度为65535字节2^16
### 6、标识 ID:Identification
- 16比特构成
- 用于分片重组
- 同意分片的标识值相同
- 每发送一个IP包数值自增
- ID相同如果目标地址源地址或协议不同的话也是不同的分片
### 7、标志 Flags
- 3比特构成
- 表示包被分片的相关信息
![image-20230709151237049](https://blog-heysq-1255479807.cos.ap-beijing.myqcloud.com/blog/note/image-20230709151237049.png)
### 8、片便宜 FO Frament Offset
- 13比特构成
- 用来标识被分片的每个分段相对于原始数据的位置
- 第一个分片该字段为0
- 对多可以表示8192个相对位置
- 单位为8字节
- 最大可表示原始数据 8 * 8192 = 65536字节的位置
### 9、生存时间 TTL Time To Life
- 8比特构成
- 中转多少个路由器的意思
- 每经过一个路由器TTL自动减少1
- 对多中转次数不会超过256次可以避免IP包在网络内无限传递
- 变成0时该包被丢弃
### 10、协议编号 Protocol
- 8比特构成
- 表示包内数据使用的是哪一个协议
![image-20230709151906055](https://blog-heysq-1255479807.cos.ap-beijing.myqcloud.com/blog/note/image-20230709151906055.png)
![image-20230709151917758](https://blog-heysq-1255479807.cos.ap-beijing.myqcloud.com/blog/note/image-20230709151917758.png)
### 11、首部校验和 Header Checksum
- 16比特构成
- 只用于校验首部,不校验数据部分
- 首部校验和计算方式 TODO
### 12、可选项 Options
- 长度可变
- 包含以下信息
- 安全级别
- 源路径
- 路径记录
- 时间戳
### 13、填充 Padding
- 在有可选项的情况下首部长度可能不是32比特的整数倍
- 向字段填充0调整为32比特的整数倍
### 14、网络字节序
- 大端序4个字节的32bit用下面的次序传输
- 首先是0-7bit
- 其次8-15bit
- 然后16-23bit
- 最后24-31bit
- TCP/IP首部中所有二进制整数在网络中传输都要求大端序因此又称作网络字节序
- 以其他形式存储二进制整数的机器,必须在传输数据之前把首部转换成网络字节序
### 15、特殊IP地址
![image-20230716172604785](https://blog-heysq-1255479807.cos.ap-beijing.myqcloud.com/blog/note/image-20230716172604785.png)