| |
|
开发:
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
地址
连接不同的媒介类型
选择数据通过网络的最佳路径,完成逻辑地址寻址
数据封装的时候在网络层会封装
ip
地址的头部,形成
ip 数据包
IP
数据包格式(分为
20
字节的固定部分,表示每个
ip
数 据包必须包含的部分,和40
字节的可变长部分
版本号(
4bit
):指
IP
协议版本。并且通信双方使用 的版本必须一致,目前我们使用的是IPv4
,表示为 0100
首部长度(4):
IP
数据包的包头长度(不包括数据)
优先级与服务类型(8):该字段用于表示数据包的 优先级和服务类型。通过在数据包中划分一定的优先 级,用于实现 QoS
(服务质量)的要求。
总长度(
16
):
IP
数据包的总长度,最长为
65535
字 节,包括包头和数据。
标识符(
16
):该字段用于表示
IP
数据包的标识符。
当
IP
对上层数据进行分片时,它将给所有的分片数据 分配一组编号,然后将这些编号放入标识符字段中, 保证分片不会被错误地重组。标识符字段用于标志一个数据包,以便接收节点可以重组被分片的数据包
标志(3):和标识符一起传递,指示不可以被分片 或者最后一个分片是否发出(
完整
)
段偏移量(
13
):在一个分片序列中如何将各分片连
接起来,按什么顺序连接起来
TTL(
time to live
)生命周期(8):可以防止一个 数据包在网络中无限循环的转发下去,每经过一个路 由器 -1,
当
TTL
的值为
0
时,该数据包将被丢弃
0-255
协议号(8):封装的上层哪个协议,
ICMP:1 TCP:6 UDP:17
首部校验和(
16
):这个字段只检验数据报的首部, 不包括数据部分。这是因为数据报每经过一次路由 器,都要重新计算一下首部校验和(因为,一些字段 如生存时间、标志、片偏移等可能发生变化)。
源地址(32
):源
ip
地址,表示发送端的
IP
地址
目标地址(
32
):目标
ip
地址,表示接收端的
IP
地址 可选项:选项字段根据实际情况可变长,可以和IP一 起使用的选项有多个。例如,可以输入创建该数据包 的时间等。在可选项之后,就是上层数据。
注:根据实际情况可变长,例如创建时间等
上层数据
ICMP协议
Internet
控制消息协议
ICMP ,是
IP
协议的辅助协议
ICMP
协议用来在网络设备间传递各种差错和控制信息, 对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。
ICMP作用
检测网络的双向联通性
ICMP功能
Ping
是网络设备、
Windows
、
Unix
和
Linux
平台上的一 个命令,其实是一个小巧而实用的应用程序,该应用基 于ICMP
协议。 Ping常用于探测到达目的节点的网络可达性。
当网络出现问题时,首先ping自己(127.0.0.1)确认硬件是否有问题,其次看双方ip地址是否有问题,然后看网关是否存在问题,最后确认防火墙策略是否有问题。
ping
的通 一定通
ping
不通 不一定网络不通?
冲突域
两台设备同时发送消息时,互相干扰,那他们就处于同一个冲突域。
广播域
一台机器发送广播,能收到消息的机器 都是在同一广播域(同一网段)
arp协议
地址解析协议,
是通过解析
IP
地址得到
MAC
地址的,是一个
在网络协议包中极其重要的网络传输协议,它与网卡有
着极其密切的关系,在
TCP/IP
分层结构中,把
ARP
划分
为网络层(三层协议)。
工作原理
以两台局域网主机互相通信为例讲解原理 ARP解析过程
PC1发送数据给PC2,首先在自己本地arp表中查询pc2的mac地址是否存在,如没有响应,则会将arp请求帧广播到所有主机,其他主机收到请求会检查与自己的ip地址是否匹配,不匹配会丢弃,匹配则会将包含mac地址的arp消息发回PC1(单播),pc1收到后将pc2的ip和mac地址存到自己arp缓存表(有效期120s)并与pc2通信(单播)。如超过该周期会重复上面过程。
|
|
网络协议 最新文章 |
使用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/25 22:54:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |