网络层协议(IPV4报头)

一、网络层协议定义

网络层提供了无连接数据的传输服务,即网络在发送数据报文时不需要先建立连接,每一个IP数据报文独立发送;

网络层包含:IP协议、ICMP协议、IPX协议

二、测试网络不同的常用命令

监测网络通信测试

①Ping + 目标地址

②ping -a 源地址 目标地址 \\指定源地址

③ping -c X 目的地址 \\指定测试访问的报文数量(默认5个)

④ping -s (20 - 9600) \\指定数据包的字节长度

三、IPV4报头的组成结构

IPv4报文格式(分为20字节的固定部分,表示每个ip数据包必须包含的部分,和40字节的可变长部分)

①Version:版本号(4bit):指IP协议版本。并且通信双方使用的版本必须一致,目前我们使用的是IPv4,表示为0100(十进制是4)

②HeaderLength:首部长度(4):IP数据包的包头长度(不包括数据)

③Type -f Service:优先级与服务类型(8):该字段用于表示数据包的优先级和服务类型。用于数据包的快速转发,用于Qos

④Total Length:总长度(16),IP数据包的总长度,最长为 65535 字节,包括包头和数据。

第二层主要用于数据包分片

⑤Identifcation标识符(16):该字段用于表示IP数据包的标识符。当IP对上层数据进行分片时,它将给所有的分片数据分配一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误地重组。标识符字段用于标志一个数据包,以便接收节点可以重组被分片的数据包。

⑥Flags标志(3):和标识符一起传递,指示不可以被分片或者最后一个分片是否发出(完整)。 第一个bit是保留的

第二个bit是DF(不分片),置0代表可以分片,置1代表不可以分片

第三个bit是MF(多分片),置0代表没有后续分片,置1代表后续还有分片

⑦Fragment offset片偏移量(13):一个数据包需要分片,将收到所有分片报文,按照原有顺序进行排列,作用重组数据。

每一个分片报文都会存在偏移量值

第一个分片报文,偏移量值为0

第二个分片报文,偏移量值为上一个分片报文的(偏移量+携带的数据长度)

⑧TTL(time to live):生命周期(8)可以防止一个数据包在网络中无限循环的转发下去,每经过一个三层设备 -1,当TTL的值为0时,该数据包将被丢弃 0-255 。(注意经过二层设备不减)

⑨Protocol : 协议号(8)封装的上层哪个协议,ICMP:1 TCP:6 UDP:17

⑩Header Checksum:首部校验和(16),校验头部完整性,这个字段只检验数据报的首部,不包括数据部分。这是因为数据报每经过一次路由器,都要重新计算一下首部校验和(因为一些字段如生存时间、标志、片偏移等可能发生变化)

源地址(32):源ip地址,表示发送端的IP地址

目标地址(32):目标ip地址,表示接收端的IP地址

Options:可选项,选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据

相关推荐
liqianpin120 小时前
Nginx WebSocket 长连接及数据容量配置
运维·websocket·nginx
@syh.20 小时前
网络基础概念
网络
IMPYLH20 小时前
Linux 的 link 命令
linux·运维·服务器·bash
NaclarbCSDN21 小时前
User ID controlled by request parameter, with unpredictable user IDs -Burp 复现
网络·安全·网络安全
橙露21 小时前
CentOS 服务器安全加固:防火墙、端口、权限配置
服务器·安全·centos
m0_6948455721 小时前
RevelGo搭建教程:类Rails开发体验的Go Web框架
服务器·开发语言·后端·docker·golang·开源·github
芙莉莲教你写代码21 小时前
Flutter 框架跨平台鸿蒙开发 - 密码管理器应用
服务器·flutter·华为·harmonyos
蛐蛐蛐21 小时前
在Ubuntu上重新安装OpenClaw报错的一种解决方法
linux·运维·ubuntu·openclaw
无忧智库21 小时前
国家级垂直行业大模型高质量语料库精炼与自动化标注底座建设方案(WORD)
运维·自动化
Ssan PRIN21 小时前
Modbus报文详解
服务器·开发语言·php