ICMP协议
概念:(Internet Control Message Protocol)网络控制报文协议:用于IP主机、路由器之间传递控制信息。即IP包是否送达目的主机,或者IP包在送达过程中被抛弃的原因和改善网络设置等。
报文格式
ICMP报文包含在IP数据包中,格式一般为:IP包头+ICMP报文
ICMP类型
ICMP类型可以分为差错报文类型 和 查询报文类型
查询报文类型
TYPE | 内容 |
---|---|
0 | 回送响应 |
8 | 回送请求 |
标识符:用以区分哪个程序发ICMP包,比如进程PID作为标识符;
序号:从0开始,每次发送一次新的回送请求就+1,用来确认网络包是否丢失
ping命令
ping是基于ICMP实现的
查询报文类型
TYPE | 内容 |
---|---|
3 | 目标不可达 |
4 | 原点抑制消息 |
5 | 重定向消息 |
11 | 超时消息 |
- 目标不可达:
可分为:
网络不可达——代码0:路由表中找不到IP地址中标注的网络
主机不可达——代码1:路由表中没有主机或者主机没有连接到网络
协议不可达——代码2:能找到对端主机,但对端设置了防火墙禁止TCP协访问
端口不可达——代码3:端口没有被监听
需要进行分片但设置了不分片——代码4:大于MTU(最大传输单元)被丢弃了。 - 原点抑制消息
数据包集中到达某一路由器后,数据包因为来不及被处理,有可能被丢弃的情况。这时候,向送信方发送的是ICMP 源点抑制报文,用来使送行方减慢发送速度。 - 重定向消息
当理由表发现当前路由路径不是最优路径,就会给主机一个重定向消息报文,包含了最佳的路由路径信息和源数据信息。主机下一次发送时就会依照最佳路径发送。 - 超时消息:TTL为0时,数据包被丢弃,此时路由器会向主机发送一个超时信息给发送端主机。
应用实现:tranceroute
通过对TTL的设置来追踪经过的路由。
通过设置不分片来确定路径的MTU。
IP协议
概念:互联网协议地址:提供统一的地址格式,会互联网上每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
IP头:
IP地址
IP地址由网络号+主机号构成
可以划分为5类:
CIDR(无类别域间路由):引入一个额外的子网掩码来区分网络和主机号。IP地址和子网掩码按位与,得到的就是网络号。
ARP,RARP协议
概念:地址解析协议:实现IP地址到MAC地址的转换
ARP请求:广播;ARP应答:单播
传输过程:
ARP协议攻击
ARP攻击就是 : 假设有PC1 PC2 PC3三台主机,PC1想要获取PC2的MAC地址;
正常情况下:PC1广播后 PC2返回一个ARP响应包,PC3则将ARP请求包丢弃;
ARP攻击:PC3没有丢弃请求包,而是利用其中的源IP和地址,向ARP发送自己的MAC地址假装是PC2的地址;此时PC1接收到两个MAC地址,觉得其中一个PC1认为是正确的MAC地址。所以知道PC3多次向PC1发送MAC地址,总能够覆盖掉正确的MAC地址。这样PC1认为的PC2的MAC地址其实是PC3的MAC地址,PC1每次传输的数据都传给了PC3。
APR防护:
- 设置高速缓存超时
- IP+MAC访问控制
- 静态ARP缓存表
- 自动查询