网络层协议 ARP/ICMP
ARP(Address Resolution Protocol)协议
当网络设备有数据要发送给另一台网络设备是,必须要知道对方的网络层地址(即地址)。IP地址由网络层来提供,但是仅有IP地址是不够得,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须包含目的MAC地址,因此发送端还必须获取到目的的MAC地址。通过目的IP地址来获取目的MAC地址的过程就是由ARP(Address Resolution Protocol)协议来实现的。
ARP工作过程
ARP缓存
ARP数据包格式
ARP报文不能穿越路由器,不能被传播到广播域。
ARP请求
ARP响应
ARP代理
位于不同网络的网络设备在不配置网关的情况下,可以通过ARP代理实现相互通信。
免费ARP
免费ARP可以用来探测IP地址是否冲突
注:
1、ARP请求以广播发送、以单播回应
2、路由器隔离广播。每一个网段都是独立的广播域
3、跨越网段通信需要使用网关的MAC地址
ICMP(Internet Control Message Protocol)协议
Internet控制信息协议ICMP是网络层的一个重要协议。ICMP协议用来在网络设备间传递各种差错和控制信息,并对于收集各种网络信息、这段和排除各种网络故障等方面起着至关重要的额作用。
ICMP差错检测:ICMP Echo Request和ICMP Echo Reploy消息常用于诊断源和目的地之间的网络连通性。
ICMP重定向(Redirect)
ICMP错误报告
当网络设备无法访问目标网络时,会自动发送ICMP目的不可达报文到发送端设备。
ICMP数据包格式
ICMP消息类型和编码类型
类型 | 编码 | 描述 |
---|---|---|
0 | 0 | Echo Reply |
3 | 0 | 网络不可达(Network Unreachable) |
3 | 1 | 主机不可达(Host Unreachable) |
3 | 2 | 协议不可达(Protocol Unreachable) |
3 | 3 | 端口不可达(Port Unreachable) |
5 | 0 | 重定向(Redirect For Network) |
8 | 0 | Echo Request |
ICMP应用-Ping
ICMP应用-Tracert
Tracert显示数据包在网络传输过程中所经过的每一跳。