1.数据包
IP数据包格式
2.ICMP协议
ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。
它是TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。ICMP报文在IP帧结构的首部协议类型字段(Protocol 8bit)的值=1.
我们在网络中经常会使用到ICMP协议,比如我们经常使用的用于检查网络通不通的Ping命令(Linux和Windows中均有),这个"Ping"的过程实际上就是ICMP协议工作的过程。还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。
ping命令
1.ping -c:指定次数(ping几次)
ping -c 3 www.baidu.com
#ping三次百度
2.ping -l:指定包的大小(1600 2000)
ping -l 1600 www.baidu.com
#指定包大小为1600
3.ping -w:指定等待时间(超时返回时间)
ping -w 2 www.baidu.com
4.ping -t:长ping(Ctrl+c停止)
windows命令,Linux中直接ping就是长ping
ping www.baidu.com -t
ICMP协议的作用
ICMP协议:是IP协议的辅助协议,是一个“错误侦测与回馈机制”
作用:检测网络的双向联通
当出现网络不通时,第一件事就是ping
ping的通代表没有问题,但ping不通不一定有问题,因为网络环境很复杂,可能是网络波动。
- 网络波动:偶尔丢一两个包
- ping不通:没有一个数据到达
有的ping不通是因为有些通过其他方式,比如禁用了ICMP协议等
3.ARP协议
ARP协议工作原理
ARP协议作用:1.检测地址冲突2.将IP地址转换为MAC地址
ARP协议工作过程
PC1想发送数据给PC2, 首先查看本机的ARP缓存表,如果有,就直接发送。
如果发现要查找的MAC地址不在表中,就会发送一个ARP请求广播,用于发现目的地的MAC地址。
ARP请求消息中包括PC1的IP地址和MAC地址以及PC2的IP地址和目的MAC地址(此时为广播MAC地址FF-FF-FF-FF-FF-FF)
交换机收到广播后做泛洪处理,除PC1外所有主机收到ARP请求消息,PC2以单播方式发送ARP应答, 并在自己的ARP表中缓存PC1的IP地址和MAC地址的对应关系,而其他主机则丢弃这个ARP请求消息。
PC1在自己的ARP表中添加PC2的IP地址和MAC地址的对应关系,以单播方式与PC2通信。
通过ARP协议知道MAC地址后,进行数据帧的封装
PC1会发送数据帧给交换机
交换机收到PC1发送的数据帧,查找MAC地址表
如果有对应的MAC地址,就直接转发
没有就广播
PC2会回复自己的MAC地址给交换机,形成MAC地址表
下次就以单播的形式,进行通讯