ARP RIP OSPF BGP DHCP以及其他计算机网络当中的通信过程和广播帧单播帧的整理

一、 协议详解:通信过程与帧类型分析

1. ARP (Address Resolution Protocol) - 地址解析协议
  • 核心功能 :在同一个局域网内,根据一个已知的IP地址,找出其对应的MAC地址。

  • 所属层次:数据链路层与网络层之间。ARP请求/响应报文封装在以太网帧中,不经过路由器。

  • 详细通信过程

    1. 触发 :主机A(IP: 192.168.1.10)想给主机B(IP: 192.168.1.20)发送数据。A首先检查自己的ARP缓存表,看是否已经有192.168.1.20对应的MAC地址。

    2. 缓存未命中:如果缓存中没有,主机A需要发起ARP请求。

    3. 构建ARP请求 :A构建一个ARP请求包,内容是:"谁的IP地址是 192.168.1.20?请告诉 192.168.1.10。"

    4. 封装ARP请求帧 (广播)

      • A将这个ARP请求包放入一个以太网帧中。

      • 源MAC地址:主机A的MAC地址。

      • 目的MAC地址广播地址 FF-FF-FF-FF-FF-FF

    5. 发送与接收:交换机收到这个广播帧后,会将其泛洪(Flooding)到除源端口外的所有端口。因此,该局域网内的所有主机都会收到这个ARP请求。

    6. 处理请求:所有主机检查ARP请求包中的目标IP地址。只有主机B发现这个IP是自己的,其他主机则丢弃该包。

    7. 构建ARP响应 (单播)

      • 主机B构建一个ARP响应包,内容是:"我是 192.168.1.20,我的MAC地址是 MAC_B。"

      • B将响应包放入以太网帧。

      • 源MAC地址:主机B的MAC地址 MAC_B

      • 目的MAC地址 :主机A的MAC地址 MAC_A(这个地址在A的请求包里已经告诉B了)。这是一个单播帧

    8. 缓存更新 :主机A收到ARP响应后,就知道了192.168.1.20对应的MAC地址是MAC_B,并将其存入自己的ARP缓存表,以备后用。

  • 帧类型总结

    • ARP请求:广播 (因为不知道对方的物理位置,只能"吼一嗓子")。

    • ARP响应:单播 (因为请求方已经自报家门,可以"私聊"回复)。

2. DHCP (Dynamic Host Configuration Protocol) - 动态主机配置协议
  • 核心功能:为网络中的主机自动分配IP地址、子网掩码、默认网关、DNS服务器等信息。

  • 所属层次:应用层,使用UDP协议(客户端端口68,服务器端口67)。

  • 详细通信过程 (DORA)

    1. Discover (发现)

      • 一台新主机(客户端)接入网络,它没有任何IP配置。

      • 它发送一个DHCP Discover报文,意为:"我是新来的,网络里有DHCP服务器吗?"

      • 这个报文被封装在UDP -> IP -> 以太网帧中。

      • 源IP : 0.0.0.0 (因为自己没有IP)

      • 目的IP : 255.255.255.255 (广播)

      • 目的MAC : FF-FF-FF-FF-FF-FF (广播)

    2. Offer (提供)

      • 局域网中的DHCP服务器收到Discover报文后,从地址池中选择一个可用的IP地址。

      • 服务器发送一个DHCP Offer报文给客户端,意为:"我这里有个IP地址 192.168.1.100,你要不要?"

      • 这个报文的目的MAC地址通常也是广播,因为此时客户端还没有一个正式绑定的IP地址。

    3. Request (请求)

      • 客户端可能收到多个DHCP服务器的Offer。它选择其中一个(通常是第一个到达的)。

      • 然后发送一个DHCP Request报文,意为:"所有服务器请注意,我决定接受 192.168.1.100 这个地址。"

      • 这个报文同样是广播发送,目的是为了通知所有DHCP服务器(包括那些未被选中的),告知它们自己的选择。

    4. Acknowledge (确认)

      • 被选中的DHCP服务器收到Request报文后,将这个IP地址与客户端的MAC地址绑定,并设定一个租期。

      • 服务器发送一个DHCP ACK报文给客户端,意为:"好的,192.168.1.100 正式分配给你了,租期是X小时。"

      • 这个报文也通常是广播发送。至此,客户端才算真正获得了IP地址并可以使用网络。

  • 帧类型总结 :DHCP的主要交互过程(DORA)基本上都是广播,因为通信的发起方(客户端)在初始阶段没有一个可用于单播通信的IP地址。

3. RIP (Routing Information Protocol) - 路由信息协议
  • 核心功能 :一种内部网关协议(IGP),用于在小型网络中动态发现路由。基于距离向量算法,使用"跳数"作为度量值。

  • 所属层次:应用层,使用UDP协议(端口520)。

  • 详细通信过程

    1. 周期性更新:每个运行RIP的路由器会周期性地(如每30秒)将其完整的路由表信息打包成一个RIP响应报文。

    2. 发送更新:路由器将这个响应报文发送给所有直连的邻居路由器。

    3. 版本差异

      • RIPv1 : 将更新报文发送到IP广播 地址 255.255.255.255。网络中所有设备(包括非路由器的主机)都会收到,但只有RIP路由器会处理。

      • RIPv2 : 进行了优化,将更新报文发送到多播 地址 224.0.0.9。只有运行RIPv2的路由器会监听这个多播组,减少了对非路由器设备的干扰。

    4. 路由计算:收到邻居发来的路由表后,路由器根据贝尔曼-福特算法,比较和更新自己的路由表。如果从邻居那里学到一条去往某网络的路,跳数更少,就更新自己的路由表,并将下一跳指向该邻居。

  • 帧类型总结

    • RIPv1: 广播

    • RIPv2: 多播

4. OSPF (Open Shortest Path First) - 开放最短路径优先
  • 核心功能 :一种内部网关协议(IGP),用于大中型企业网络。基于链路状态算法。

  • 所属层次:网络层。OSPF报文直接封装在IP包中(协议号89),不使用TCP或UDP。

  • 详细通信过程

    1. 建立邻居关系 (Hello)

      • 路由器启动OSPF后,会向224.0.0.5(所有OSPF路由器)这个多播地址周期性地发送Hello包。

      • 直连的路由器收到Hello包后,会建立邻居关系。

    2. 建立邻接关系与同步数据库

      • 邻居之间会通过交换数据库描述(DBD)包来比对各自的链路状态数据库(LSDB)是否同步。这个过程通常是单播的。
    3. 传播链路状态信息 (LSA)

      • 每个路由器都会创建描述自己直连接口状态的链路状态通告(LSA)

      • 当网络状态发生变化(如链路断开或新链路加入),路由器会立即将更新后的LSA多播出去,这个过程称为"泛洪"。

      • 收到LSA的路由器会将其存入自己的LSDB,并继续转发给其他邻居。

    4. 计算最短路径:当LSDB稳定后,区域内的所有路由器都拥有了完全相同的"网络地图"。每个路由器独立地运行Dijkstra(SPF)算法,计算出以自己为根的、到达所有目的地的最短路径树。

  • 帧类型总结 :OSPF主要使用多播224.0.0.5224.0.0.6)来发现邻居和泛洪LSA,辅以单播 进行数据库同步和确认。不使用广播

5. BGP (Border Gateway Protocol) - 边界网关协议
  • 核心功能 :一种外部网关协议(EGP),用于在不同的自治系统(AS,如不同的ISP)之间交换路由信息。是整个互联网的"粘合剂",基于路径向量算法。

  • 所属层次 :应用层,使用TCP协议(端口179)来保证可靠传输。

  • 详细通信过程

    1. 建立TCP连接 :BGP路由器(对等体Peers)之间通过网络管理员手动配置,建立一个TCP连接。这个连接可以是直连的(iBGP),也可以是跨越多个路由器的(eBGP)。

    2. 交换路由信息

      • TCP连接建立后,对等体之间首先交换完整的BGP路由表。

      • 之后,只在网络路由发生变化时,才发送增量的Update报文。

    3. 基于策略的路由:BGP的Update报文中不仅包含网络前缀,还包含大量的路径属性(Path Attributes),如AS-PATH(经过的AS列表)。路由器根据这些属性和预先配置的策略来选择最佳路由,而不仅仅是根据"最短"路径。

    4. 维持连接:对等体之间通过周期性地发送Keepalive报文来确认TCP连接是否正常。

  • 帧类型总结 :BGP的所有通信都发生在两个对等体之间建立的可靠TCP连接上,因此,所有BGP报文都是单播 的。BGP不使用广播或多播


三、 综合整理与对比

协议 核心功能 所属层次 传输协议 主要通信方式
ARP 同局域网内,IP -> MAC地址解析 数据链路/网络层 无(直接封装) 请求(广播) , 响应(单播)
DHCP 自动分配IP地址等网络配置 应用层 UDP 广播 (DORA过程)
RIP 小型网络内部路由(距离向量) 应用层 UDP v1:广播 , v2:多播
OSPF 大中型网络内部路由(链路状态) 网络层 无(直接封装) 多播 为主, 单播为辅
BGP 自治系统(AS)之间路由(路径向量) 应用层 TCP 单播
相关推荐
练习时长一年几秒前
LeetCode热题100(分割等和子集)
算法·leetcode·职场和发展
Ares-Wang9 分钟前
网络》》IP组播
网络·网络协议·tcp/ip
sunlifenger10 分钟前
上海兆越人员定位系统,多元技术赋能,精准守护工业安全
网络·人工智能·安全
七号驿栈11 分钟前
07_汽车信息安全算法在线验证工具(测试报告)
算法
玖疯子12 分钟前
TCP/IP协议栈深度解析技术文章大纲
python·scikit-learn·pyqt·pygame
sunfove24 分钟前
Python 自动化实战:从识图点击、模拟真人轨迹到封装 EXE 全流程教学
开发语言·python·自动化
傻啦嘿哟25 分钟前
Python网页自动化操作全攻略:从入门到实战
开发语言·python·自动化
啦哈拉哈28 分钟前
【Python】知识点零碎学习4
python·学习·算法
sycmancia30 分钟前
C语言学习06——函数的定义
c语言
定偶33 分钟前
Linux进程管理和进程间通信机制
c语言·进程·共享内存·管道·信号量·消息列队