当前位置:网站首页>IP数据包格式(ICMP协议与ARP协议)
IP数据包格式(ICMP协议与ARP协议)
2022-08-05 05:19:00 【幻star】
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:6UDP:17 |
首部校验和(16) | 这个字段只检验数据报的首部,不包括数据部分。这是因为数据报每经过一次路由器,都要重新计算一下首部校验和(因为,一些字段如生存时间、标志、片偏移等可能发生变化) |
源地址(32) | 源ip地址,表示发送端的IP地址 |
目标地址(32) | 目标ip地址,表示接收端的IP地址 |
可选项 | 选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据 |
注:根据实际情况可变长,例如创建时间等 上层数据
ICMP协议
icmp作用:检测网络的双向联通性
ping
ping作用:
ping自己127.0.0.1硬件
看双方地址是否有问题
看网关是否有问题
防火墙策略是否有问题
ping选项:ipconfig //显示自己IP地址
ping --help //显示帮助命令
-t //长ping
格式:ping ip地址 -t (ctrl+c 停止)-a //将地址解析为主机名
格式:ping -a ip地址 (显示主机名)-l size //发送缓冲区大小
格式:ping -l 指定包的大小(1600、2000)ip地址-w //超时等待时间
格式:ping -w指定等待时间(默认是秒:2)ip地址-n //指定ping几次
格式:ping -n 指定的次数(5)ip地址
注:ping的通一定通,ping不通不一定网络不通
tracert也是icmp协议
格式:tracert ip地址 (追踪,经过几个路由设备)
tracert IP地址 (win)
traceroute IP地址(Linux)
广播域
广播域:一台机器发送广播,能收到消息的机器 都是在
同一广播域
ARP协议(地址解析协议)
ARP协议是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间。
无故ARP
- 检查重复地址(如果收到ARP响应表明存在重复地址)。
- 当一台设备获取到一个IP地址时,会自动发送一个无故ARP,检测是否有设备已使用了此地址
ARP工作原理:
- PC1想发送数据给PC2, 会先检查自己的ARP缓存
表。 只在终端设备上
2.如果发现要查找的MAC地址不在表中,就会发送一个
ARP请求广播,用于发现目的地的MAC地址。
ARP请求消息中包括PC1的IP地址和MAC地址以及PC2的
IP地址和目的MAC地址(此时为广播MAC地址FF-FF-FFFF-FF-FF)
3.交换机收到广播后做泛洪处理,除PC1外所有主机收到
ARP请求消息,PC2以单播方式发送ARP应答, 并在自
己的ARP表中缓存PC1的IP地址和MAC地址的对应关系,
而其他主机则丢弃这个ARP请求消息。 - PC1在自己的ARP表中添加PC2的IP地址和MAC地址
的对应关系,以单播方式与PC2通信。
ARP报文
查看arp缓存表(静态arp和动态arp)
命令 | 含义 |
---|---|
arp -a | 查看arp缓存表 |
arp -d | 不加IP清除所有 |
arp -d [IP] | 加IP 只删除改IP |
arp -s IP MAC | 删除arp静态绑定 |
绑定arp(win10)
- netsh -c i i show i #####查看网络连接准确名称,如:本地连接、无线网络连接
- netsh -c “i i” add neighbors 19 “IP” “Mac”(这里19是idx号)####绑定
- netsh -c “i i” delete neighbors 19 (这里19是idx号)#####解绑
- netsh interface ipv4 set neighbors <接口序号>
华为系统中的ARP命令
- [ Huawei ]dis mac -address ###查看mac地址信息
- [ Huawei ]arp static ###绑定ARP
- [ Huawei ]undo arp static ###解绑定
- [ Huawei ]reset arp all ###清除mac地址表
边栏推荐
猜你喜欢
随机推荐
【Day5】软硬链接 文件存储,删除,目录管理命令
腾讯内部技术:《轩辕传奇》服务器架构演变
Blender软件介绍与使用心得
Spark源码-任务提交流程之-6.1-sparkContext初始化-创建spark driver端执行环境SparkEnv
URP渲染管线实战教程系列 之URP渲染管线实战解密(一)
(C语言)strlen、strcpy、strcat、strcmp、strstr函数的模拟实现
Autoware中安装Yolo3目标检测模块遇到的问题
【UiPath2022+C#】UiPath变量和参数
C语言查看大小端(纯代码)
Getting Started 05 Using cb() to indicate that the current task is complete
C语言入门笔记 —— 分支与循环
栈区中越界可能造成的死循环可能
spark源码-任务提交流程之-2-YarnClusterApplication
spark算子-wholeTextFiles算子
Leetcode刷题——对链表进行插入排序
什么?CDN缓存加速只适用于加速静态内容?
【UiPath2022+C#】UiPath 循环
【UiPath2022+C#】UiPath控制流程概述
Unity常用模块设计 : Unity游戏排行榜的制作与优化
D39_向量