ICMP,ARP
来源:互联网 发布:软件专业前景 编辑:程序博客网 时间:2024/06/03 22:55
ICMP是网络控制消息协议,主要用于传递查询报文与差错报文。ARP是地址解析协议,它的作用是在以太网环境下,通过第3层的IP地址来找寻第2层的MAC地址,得到一张ARP缓存表。转发数据的时候根据ARP缓存表来进行传输
ICMP:
Internet操作是由路由器严密监控的,当路由器端处理报文时有意外发生,路由器这时会根据相应情况发送ICMP报文给对应的发送端来告知发生了什么。
ICMP消息的报文封装在IP包中,如果发送端发送的报文进过多个路由到达该路由器,那么ICMP就相当于为一个IP包返回发送给发送端。
应用:
traceroute发现从主机到目的IP地址路径上的路由器。它向目的地发送IP包,第一次的时候,将TTL设置为1,引发第一个路由器的Time Exceeded错误。这样,第一个路由器回复ICMP包,从而让出发主机知道途径的第一个路由器的信息。随后TTL被设置为2、3、4,…,直到到达目的主机。这样,沿途的每个路由器都会向出发主机发送ICMP包来汇报错误。traceroute将ICMP包的信息打印在屏幕上,就是接力路径的信息了。这并不是TIME EXCEEDED信息的本意,但却是非常有用的故障排查工具。
ARP
ARP是一种解决地址问题的协议,以目标IP地址为线索用来定位下一个应该接收数据分包的网络设备对应的MAC地址,也就是IP地址到MAC地址的映射。
例:一个小型校园安装了两个/24网络。其中一个(CS)是交换以太网,位于Computer Science部门。网络地址为192.32.65.0/24。另一个局域网(EE)也是一个交换以太网,位于Electrical Engineering部门网络地址为192.32.63.0/24。这两个局域网通过IP路由器互连。以太网上的各台设备以及路由器各接口都有唯一的以太网地址,标签从E1到E6,以及CS或EE网络上唯一的IP地址。
第一种情况:Host1向Host2发送报文。
首先是通过DNS得到Host2的IP地址,host1的上层软件将192.32.65.5植入报文中并交给IP软件发送。IP软件查看该地址发现目标地址在CS网络上(即本地网络)。但是,还需要查找目的以太网地址来发送帧。
host 1发送一个广播报文到以太网询问谁有IP地址192.32.65.5。广播报文到达每一个CS网上的设备,各台设备检查自己的IP地址。只有host 2会回复自己的以太网地址E2。通过这种方式host 1学习到IP地址192.32.65.5的以太网地址E2。这种提问和回复的协议就称为ARP(Address Resolution Protocol)
有了host2的MAC地址,这时host1就可以发送报文给host2了。
第二种情况:Host1发送报文给Host4
host1发现目标IP地址不在CS网络上,所以它先会把这类远端网络数据流发送给路由器,也成为默认网关。要发送帧给路由器首先得通过ARP协议获得E3的MAC地址,当帧到达路由器后,交给路由器上的IP软件,从网络掩码中得知该报文时发送给EE.如果路由器不知道host 4的以太网地址,就会再次使用ARP。然后把该帧发送给host4。之后对该帧解封,拿出其中的IP报文即可。
上面的图中有一个表格,从其中我们可以发现,host1报文发送给host4报文时。帧先是从E1~E3,然后是E4~E6。各子网中以太网地址改变而IP地址保持不变。
- arp&icmp
- ICMP,ARP
- ICMP,ARP
- ARP & ICMP欺骗
- ARP,RARP,ICMP,IGMP
- ICMP,ARP,DHCP
- ICMP&&IP&&ARP
- ARP与ICMP的区别
- ARP代理、ICMP重定向
- ETHERNET数据包格式( IP & UDP & ICMP & ARP )
- IP/ARP/ICMP/UDP 一些原理
- 网络层ICMP和ARP协议
- ARP 欺骗+ICMP 重定向
- TCP、IP、ARP、ICMP首部分析
- 网络层其他协议(ARP、ICMP )
- MAC IP TCP UDP ARP ICMP报文格式
- arp/ip /icmp 网络抓取包工具的使用
- TCP/IP详解读书笔记一 IP/ARP/RARP/ICMP
- [编写高质量iOS代码的52个有效方法](七)内存管理(上)
- 用友数据库错误“未能读取并闩锁页(1:3355)(用闩锁类型SH)”修复
- 2015CCPC南阳场 C - The Battle of Chibi
- boost智能指针 与 内存分配
- PHP中的cURL函数
- ICMP,ARP
- android定时器
- 1023. 组个最小数 (20)--做题记录
- Android Accessibility(辅助功能) --实现Android应用自动安装、卸载 .
- for和for each到底谁快的测试
- Ubuntu 下安装octave 4.0.3
- Fibonacci数列实现
- java中new和反射的区别
- freemarker判断对象是否为空