网站首页 > 文章精选 正文
ICMP
ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
ICMP协议的功能只要有:
1. 确认IP包是否到达目标地址
2. 通知在发送过程中IP包被丢弃的原因
ICMP的报文分为两类,一类是ICMP询问报文;一类是ICMP差错报告报文
ICMP常见的报文类型
不发送ICMP差错报文的情况:
- 对于第一个ip分片后的所有ip分片报文不发送ICMP差错报文
- 对具有组播地址的数据报不发送ICMP报文
- 对具有特殊地址(127.0.0.0或0.0.0.0)不发送ICMP差错报文
ICMP 协议多应用在 ping 和 tracert 命令:
- ping 命令使用 ICMP 回送请求和应答报文
在网络可达性测试中使用的分组网间探测命令 ping 能产生 ICMP 回送请求和应答报文。目的主机收到 ICMP 回送请求报文后立刻回送应答报文,若源主机能收到 ICMP 回送应答报文,则说明到达该主机的网络正常。
- 路由分析诊断 tracert 使用了 ICMP时间超过报文
tracert 命令主要用来显示数据包到达目的主机所经过的路径。通过执行一个 tracert 到对方主机的命令,返回数据包到达目的主机所经历的路径详细信息,并显示每个路径所消耗的时间。
举个例子:
看下回送请求和回送应答的报文
ARP协议
地址解析协议(Address Resolution Protocol),只要通过目标设备的IP地址,查询目标设备的MAC地址。
通信过程:
1、主机A要和主机B进行通信,首先要知道主机B的mac地址,所以会发送ARP广播
2、其他主机收到后,发现找的不是自己,就会丢弃
3、主机B拆包后,发现找的是自己,会进行单播回应,并记录在自己的ARP缓存表中
代理ARP
代理ARP一般就是通过网关设备,使用自己的 MAC 地址来对另一设备的ARP请求作出应答。
为什么需要代理ARP?
先要了解,路由器的重要功能之一就是隔离广播域,阻止广播包扩散,否则会造成网络风暴。
ARP请求是个广播包,如果目标地址在同一个局域网内,就会收到应答。但是如果目标地址不在同一个局域网,该如何处理?路由器就提供了代理ARP解决这个问题。
两台主机PC1和PC2,PC1发送ARP请求PC2的MAC地址时,由于路由器不转发广播包,ARP请求只能到达路由器。如果路由器启用了代理ARP功能,并知道PC2属于它连接的网络,那么路由器就用自己接口的MAC地址代替PC2的MAC地址来对主机PC1进行ARP应答。
RARP协议
反向地址转换协议(Reverse Address Resolution Protocol)允许局域网的物理机器从网关服务器的ARP表或者缓存上请求其 IP 地址。即:根据其MAC地址寻找IP地址。
免费ARP
在获取或变更IP地址时,向外发出一个ARP,但请求的目标IP为本地。
一个主机可以通过它来确定另一个主机是否设置了相同的 IP地址。正常情况下发送免费ARP请求不会收到ARP应答,如果收到了一个ARP应答,则说明网络中存在与本机相同的IP地址的主机,发生了地址冲突。
ARP欺骗
通过广播向局域网的其他主机广播一个伪造的网关MAC地址和IP地址对应表,局域网其他主机收到这个伪造的信息之后就会更新自己的ARP表。这样,当这些主机向外发送报文时,虽然会根据正确的网关的IP地址发包,但实际上却发送到了一个错误的MAC地址上,导致数据包无法发送出去,从而出现无法上网等情况。
可以通过设置静态的MAC->IP对应表,不再接收广播收到的ARP信息。
- 上一篇: 计算机等级四级知识
- 下一篇: 36 张图带你理解计算机网络 6 大基础知识点
猜你喜欢
- 2025-05-21 Python 网络编程的基础复习:理解Socket的作用
- 2025-05-21 网络大神眼中的TCP/IP协议与UDP协议
- 2025-05-21 linux网络编程常见API详解
- 2025-05-21 常见的 Ethernet II 报文类型(EtherType)及其对应的 十六进制值
- 2025-05-21 一次完整的HTTP请求与响应涉及了哪些知识?
- 2025-05-21 「干货」常见网络抓包工具和抓包分析
- 2025-05-21 软考高项记忆小妙招—计算机网络协议
- 2025-05-21 信息系统项目管理师核心考点(六)OSI协议的分层,导图+真题
- 2025-05-21 TCP/IP协议栈在Linux内核中的运行时序分析
- 2025-05-21 一文读懂TCP/IP协议工作原理和工作流程
- 05-22离线在docker镜像方式部署ragflow0.17.2
- 05-22【Docker 新手入门指南】第七章:镜像使用
- 05-22使用Docker制作OpenJDK镜像
- 05-22使用Dockerfile build镜像
- 05-22一文详解Docker轻量级虚拟化,镜像和容器
- 05-22三 docker 镜像命令
- 05-22Docker-使用Dockerfile 定制镜像
- 05-22Linux日常小技巧Docker打包
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)