IP数据包与ARP协议

359 阅读8分钟

IP数据包

网络层的功能

  • 定义了基于IP协议的逻辑地址,就是ip地址
  • 连接不同的媒介类型
  • 选择数据通过网络的最佳路径,完成逻辑地址寻址

IP数据包

数据封装的时候在网络层会封装ip地址的头部,形成ip 数据包
IP数据包格式(分为20字节的固定部分,表示每个ip数 据包必须包含的部分,和40字节的可变长部分 image.png

  • 版本号(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 (Internet Control Message Protocol)是IP协议的辅助协议
ICMP协议用来在网络设备间传递各种差错和控制信息, 对于收集各种网络信息、诊断和排除各种网络故障等方 面检测网络的双向联通性起着至关重要的作用。

ICPM作用:
检测网络的双向联通性

image.png

标题Code描述
00Echo Reply
30网络不可达
31主机不可达
32协议不可达
33端口不可达
110超时
80Echo Request

如遇问题一般的解决方法:ping
1. ping 自己 127.0.0.1 硬件
2. 看双方地址是否有问题
3. 看网关是否有问题
4. 防火墙策略是否有问题

功能:ping

Ping是网络设备、Windows、Unix和Linux平台上的一 个命令,其实是一个小巧而实用的应用程序,该应用基 于ICMP协议。 Ping常用于探测到达目的节点的网络可达性。

ping选项

显示自己 IP地址    ipconfig
ping --help          显示帮助命令
-t                          长ping
-a                         将地址解析为主机名。
-l size                   发送缓冲区大小。
-w                        超时等待时间
-n                         指定ping 几次
ping -t                  ip地址   长ping   ctrl+c 停止
ping -a                 ip 地址    显示主机名
ping -l                  指定包的大小(1600 2000)   ip地址
ping -w                指定等待时间(默认是秒:2) ip 地 址
ping -n                 指定的次数(5) ip 地址
tip:ping的通一定通,ping不通不一定网络不通
tracert  也是 icmp协议
192.168.1.144      192.168.1.152
tracert IP地址
tracert 192.168.1.152
经过几个路由设备 追踪

image.png

  • ping -t
    默认情况下是 ping 4次 就停止了,使用该命令可以不间断地Ping指定计算机,直到管理员中断。

  • ping -a
    将地址解析为主机名。就是可以通过ping它的IP地址,可以解析出主机名。

拓展(了解)

冲突域:两台设备同时发送消息时,互相干扰,那他们 就处于同一个冲突域
广播域:一台机器发送广播,能收到消息的机器 都是在 同一广播域

ARP协议

ARP协议概念

ARP协议是地址解析协议(Address Resolution Protocol)是通过解析IP地址得到MAC地址的,是一个在网络协议包中极其重要的网络传输协议。

无故ARP:
当一台设备获取到一个Ip 地址时 ,会自动发送一个无故 ARP,检测 是否有设备已使用了此地址

工作原理

  1. 当PC1想发送数据给PC2,首先在自己的本地ARP缓 存表中检查主机PC2的MAC地址是否存在?
  2. 如果PC1缓存中没有找到响应的条目,它将询问主机 PC2的MAC地址,从而将ARP请求帧广播到本地网络 的所有主机。 该帧中包括源主机PC1的IP、MAC地址,本地网络中 的所有主机都接收到ARP请求,并且检查是否与自己 的IP地址相匹配。如果发现请求中IP地址与自己IP不 匹配,则丢弃ARP请求。
  3. 主机PC2确定ARP请求中得IP地址与自己的IP地址匹 配,则将主机PC1的地址和MAC地址添加到本地缓存 表中。
  4. 主机PC2将包含其MAC地址的ARP回复消息直接发送 回主机PC1(数据帧为单播)。
  5. 主机PC1收到PC2发的ARP回复消息,将PC2的IP和 MAC地址添加至自己ARP缓存表中,本机缓存是有生 存期的,默认ARP缓存表有效期120s。当超过该有效 期后,则将重复上面过程。主机PC2的MAC地址一旦 确定,主机PC1就能向主机PC2发送IP信息

image.png

简单来说:
1.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请求消息。
4.PC1在自己的ARP表中添加PC2的IP地址和MAC地址 的对应关系,以单播方式与PC2通信。

windows当中如何查看arp缓存表(静态arp和动态 arp)

arp -a          ###查看arp缓存表 
arp -d [IP]     ###删除arp缓存表 
arp -s IP MAC   ###删除arp静态绑定

动态ARP表项老化:在一段时间内(默认120s)如果表 项中的ARP映射关系始终没有使用,则会被删除。通过 及时删除不活跃表项,从而提升ARP响应效率

华为系统中的ARP命令

[Huawei]dis mac- address    ###查看mac地址信息 
[Huawei]arp static          ###绑定ARP 
[Huawei]undo arp static     ###解绑定 
< Huawei>reset arp all      ###清除mac地址表

总结

本文主要阐述了IP数据包,ICMP协议已经ARP协议的基本相关知识,同时拓展了ping选项与ARP命令的相关内容,以及冲突域与广播域,都属于基础理论知识。