计网——24 IP和ARP,RARP

本文详细介绍了网络层的两种服务:虚电路服务和数据报服务,以及IP协议的关键特性,包括地址解析协议ARP、逆地址解析协议RARP、网际控制报文协议ICMP和网际组管理协议IGMP的作用。此外,还深入探讨了IP地址的分类、特点以及IP数据报的格式,揭示了网络层如何实现高效的数据传输。

网络层的两种服务

虚电路服务(可靠性由网络保证)和数据报服务(可靠性由用户主机保证)

网际协议

  1. 地址解析协议ARP和逆地址解析协议(RARP):位于IP协议之下,IP使用这两个协议解析到物理地址

  2. 网际控制报文协议(ICMP)和网际组管理协议(IGMP):位于IP协议之上,使用IP协议

注意:
应用层协议:HTTP,FTP,SMTP;运输层协议TCP,UDP

各个层的中间设备

  1. 物理层使用的中间设备叫转发器(repeater)
  2. 数据链路层使用的中间设备叫网桥或者桥接器(bridge)
  3. 网络层使用的中间设备叫路由器(router)
  4. 网络层以上使用的中间设备叫网关(gateway)

IP协议

IP地址=网络号net_id+主机号host_id,用点分十进制(每八位转换成十进制)表示

IP分类

(1)A类:1字节网络号+3字节主机号,网络号最高为为0,地址范围:1.0.0.0~126.255.255.255,最大主机数为2^24-2=16777214个。
(2)B类:2字节网络号+2字节主机号,网络号前两位为10,地址范围:128.1.0.0~191.255.255.255,最大主机数为2^16-2=65534个
(3)C类:3字节网络号+1字节主机号,网络号前三位为110,地址范围:192.0.1.0~223.255.255.255,最大主机数为2^8-2=254个
(4)D类:多播地址,1110开始
(5)E类:保留地址,1111开始
一般不使用的特殊地址:(网络号为0代表本网络,主机号全0代表本主机,全1代表所有主机)

IP的特点

  1. 分级结构的好处:分配时只需分配网络号,主机号由用户单位自己分配;路由表根据主机号转发分组,减小了路由表所占空间以及查找路由表的时间
  2. 连接的网络不同IP也不同,同时连多个网络的主机称为多属性主机。一个路由器至少要连接两个不同的网络(内网和外网),因此一个路由器至少应当有两个不同的IP地址
  3. 用转发器或网桥连接起来的若干个局域网仍为一个网络,因为他们的网络号相同
  4. 所有分配到网络号的网络都是平等的

IP地址和物理地址

  1. IP地址时放在IP数据报的首部,MAC地址放在MAC帧的首部
  2. 在网络层和网络层以上使用IP地址,在数据链路层及以下使用MAC硬件地址
  3. MAC帧里面看不到IP地址,被封装起来了。

ARP和RARP协议

ARP工作流程:
A以广播方式发送ARP请求(需要得到B的硬件地址),B收到请求之后以单播方式给A发送ARP响应,此时B把A的IP地址和MAC地址存在高速ARP缓存内以便下一次发送,A收到B的响应之后,也在自己的ARP缓存中写入B的IP地址和MAC地址映射。

  1. 高速ARP缓存:映射地址都有一定的生存周期,超过就直接丢弃。
  2. ARP是解决同一局域网上的主机和路由器的IP地址和路由器地址的映射问题。如果所找的主机不在局域网内,那么就需要通过ARP找到位于局域网内的一个路由器的硬件地址,然后把分组数据传给路由器,路由器再把分组传给下一个网络。

IP数据报的格式

IP数据报的组成:首部(20字节)+数据部分
(1) 版本号:IP协议的版本
(2) 首部长度:常用首部长度为20个字节
(3) 区分服务:一般不使用这个字段
(4) 数据报总长度:首部和数据之和,占16位,表示最大长度为65535字节,由于MTU限制,一般不超过1500字节。另外数据报的总长度不是指未分片前的数据报总长度,而是指分片后的每一片的首部+数据的长度
(5) 标识:标识字段由计数器产生,每产生一个数据报就加1,数据报分片后标识段也被复制到各个分片中,以便重装成原来的数据报。
(6) 标志:三位,最低位记为MF,MF=1代表还有分片,反之则没有;中间一位记为DF,DF=1代表不允许分片,反之则允许分片
(7) 片偏移:分片后的该片在原分组中的相对位置。单位为8个字节,分片的长度都是8自己的倍数;
(9) 生存时间(TTL):数据报在网络中的寿命。防止无法交付的数据报无限制地在网络中兜圈子。每经过一个路由器,TTL就减去数据报在该路由器中消耗的时间,TTL为0就丢弃该报。
(10) 协议:指携带的数据时何种协议。常用协议字段:1-ICMP,2-IGMP,6-TCP,8-EGP,17-UDP,41-IPv6等等
(11) 首部检验和:反码算术运算,即发送端首部检验和为全0,所有首部和相加取反得到接收端检验和,接收端判断首部和的反码是否为0,为0则保留,不为0则抛弃。
(12)源地址和目的地址:每个占32位,IP地址。

使用子网的分组转发

(IP地址 AND 子网掩码 = 网络地址)

  1. 从数据报中提取目的主机的IP地址D
  2. 先判断能不能直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和D逐位相与,看结果是否和相应的网络地址匹配,若匹配则直接交付;否则为间接交付,执行3
  3. 若路由表中有目的地址D的特定主机路由,则把数据报传送给路由表的下一跳路由器;否则,执行4
  4. 对路由表中的每一行(目的地址,子网掩码,下一跳地址),用其中的子网掩码和D逐位相与,得到网络地址N,若与该行的目的网络地址匹配,则传给下一跳地址,否则,执行5
  5. 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由,否则,执行6
  6. 报告转发分组出错。
### ARP 协议与 RARP 协议的主要区别及应用场景 #### 1. **方向性差异** ARP(Address Resolution Protocol,地址解析协议)主要用于从已知的 IP 地址查找对应的 MAC 地址。这一过程通常发生在网络中的主机需要与其他设备通信时,例如当一台算机要向另一台位于同一子内的算机发送数据包时,它会先利用 ARP 查找目标设备的物理地址[^2]。 相比之下,RARP(Reverse Address Resolution Protocol,反向地址解析协议)的作用正好相反——它是用来从已有的 MAC 地址找到相应的 IP 地址。这种需求较少见于常规客户端机器上,更多适用于那些无法预先设定静态 IP 地址的小型嵌入式系统或是无盘工作站等环境中[^3]。 #### 2. **应用广泛程度对比** 随着技术发展进步,在当今大多数情况下,每当涉及到由硬件层面上升至软件层面的身份映射问题时都会优先考虑采用 DHCP (Dynamic Host Configuration Protocol) 来动态分配IP地址而不是依赖传统的RARP方案解决此类难题因此后者实际上已经被前者完全替代不再单独作为独立解决方案推广普及开来使用频率极低几乎可以忽略不了[^2]。 然而与此同时ARP却依旧保持高度活跃状态持续发挥重要作用特别是在局域内部署过程中不可或缺成为维持正常运转必不可少的一部分因为它能够有效减少管理员手动设置每台联装置关联关系的工作负担从而提高整体效率降低成本开销等等诸多方面均体现出无可比拟的优势所在[^1]。 #### 3. **典型场景举例说明** - 对于ARP而言常见的例子包括但不限于如下几种情形: - 当用户尝试访问某个站时浏览器发起DNS查询得到目的站点的具体位置即URL转换成IPv4数值形式之后紧接着就要依靠本地路由表决定下一步动作假设目的地处于同一个广播域之内那么必然涉及执行arp命令定位接收端确切坐标以便顺利完成整个传输流程。 - 至于RARP则相对比较简单明了一些特定类型的物联节点可能不具备足够的存储容量保存完整的TCP/IP堆栈结构此时可以通过BOOTP服务器配合rarpd守护进程协助完成初始化阶段赋予临时可用的身份标识号直至后续条件成熟再切换回标准模式运行为止。 ```python # 示例 Python 脚本演示如何捕获并分析 ARP 数据包 from scapy.all import sniff, ARP def arp_monitor_callback(pkt): if isinstance(pkt, ARP): if pkt.op == 1: # who-has 请求 print(f"Request: {pkt.psrc} is asking about {pkt.pdst}") elif pkt.op == 2: # is-at 应答 print(f"Response: {pkt.hwsrc} has address {pkt.psrc}") sniff(prn=arp_monitor_callback, filter="arp", store=False) ``` 此脚本可用于实时监控网络上的 ARP 流量,帮助诊断潜在的安全威胁如中间人攻击等问题发生迹象及时采取应对措施加以防范化解风险隐患确保网络安全稳定可靠运作不受干扰破坏影响正常业务开展活动顺利推进下去[^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值