【网络基础之四】网络层协议与应用(IP数据包、ARP协议)

195 阅读5分钟

网络层协议与应用

1、网络层的功能

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

2、IP数据包

665bf20a2648a55fb300cd2a937b837.jpg

数据封装的时候在网络层会封装ip地址的头部,形成ip数据包

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

  • 版本号:IP协议的版本(目前为IPV4)

  • TTL生命周期:根据返回的值,确定所用的系统类型;并且可以防止数据包一直转发

  • 段偏移量:将数据包重组

  • 标识符:将数据进行分片

  • 标志:看分片是否完整

  • 优先级与服务类型:表示数据包的优先级

  • 协议号:封装上层用的那个协议

  • 可选项:增强ip数据包功能

3、ICMP协议

Internet控制消息协议ICMP (Internet Control Message Protocol)是IP协议的辅助协议。 ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。

3.1 ICMP作用

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

ping 空格 IP地址
-l 指定数据包的 大小
-t 长ping
-& 后台运行
-w 超时等待
-n 指定ping次数
tracert:
-d:表示不让 tracert 根据节点主机名查找路由的 IP 地址,直接进行路由跟踪。当路由器不支持ICMP/UDP/ICMPv6 数据包时,建议使用该选项。
-h maximum_hops:指定最多经过多少个节点进行路由跟踪,默认值为 30。使用该选项可以更改该值。
-j host-list:枚举一个节点列表,并在路由跟踪过程中只走该列表中的节点。
-w timeout:设置等待每个回复消息的超时时间,默认值为 4000 毫秒。使用该选项可以更改该值。
-R:指示 tracert 跟踪路由时,使用“参考路由”而不是“严格源路由”。如果启用了该选项,则可以跨越某些无法到达的能够到达目标的路由器。
-S srcaddr:指定源地址。如果在单个计算机上安装了多个网络适配器,则使用该选项可以指定从哪个适配器发出路由跟踪请求。
-4:强制使用 IPv4 进行路由跟踪。
-6:强制使用 IPv6 进行路由跟踪。
target_name:表示要查询的目标 IP 地址或主机名。

3.2 常见的ICMP报文格式

TypeCode描述
00Echo Reply
30网络不可达
31主机不可达
32协议不可达
33端口不可达
50重定向
80Echo Request

Type 代表类型
Code 代表具体情况

排错思路:

  1. ping 自己 127.0.0.1 硬件
  2. 看双方地址是否有问题
  3. 看网关是否有问题
  4. 防火墙策略是否有问题( 配合、找网络工程师

4、ARP协议

在局域网中,交换机通过MAC地址进行通信,要获得目的主机的MAC地址就需要使用ARP协议将目的IP地址解析成目的MAC地址。所以,ARP(Address Resolution Protocol,地址解析协议)的基本功能是负责将一个已知的IP地址解析成MAC地址,以便在交换机上通过MAC地址进行通信。

4.1 ARP的工作原理

  • 当PC1想发送数据给PC2,首先在自己的本地ARP缓存表中检查主机PC2的MAC地址是否存在。如果找到了对应的MAC地址,则PC1直接利用ARP表中的MAC地址,对IP数据包进行帧封装,并将数据包发送给PC2。

  • 如果PC1在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。ARP请求报文中的发送端IP地址和发送端MAC地址为PC1的IP地址和MAC地址,目标IP地址和目标MAC地址为PC2的IP地址和全0的MAC地址。由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即PC2)会对该请求进行处理。 如果发现请求中IP地址与自己IP不匹配,则丢弃ARP请求。

  • PC2比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:将ARP请求报文中的发送端(即PC1)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文给PC1,其中包含了自己的MAC地址。

  • PC1收到PC2发的ARP回复消息,将PC2的IP和MAC地址添加至自己ARP缓存表中,本机缓存是有生存期的,默认ARP缓存表有效期120s。当超过该有效期后,则将重复上面过程。PC2的MAC地址一旦确定,PC1就能向PC2发送IP信息以单播方式与PC2通信。

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

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