三、网络层

网络层是五层模型中的第三层,位于数据链路层和传输层之间。它的核心任务是实现数据包在不同网络之间(跨网络)的逻辑传输

网络层的数据传输单位是数据报(Datagram)数据包(Packet)

数据传输方式

无连接服务(Connectionless Service)

无连接服务是一种在数据传输前无需建立连接的服务模式。发送方直接向网络发送数据单元,每个数据单元都独立封装并携带完整的源地址和目的地址信息。

  • 工作原理:网络中的每个路由器独立处理每个数据单元,根据其目的地址进行路由和转发。路由器不维护任何关于通信状态或数据流的会话信息。

  • 特性

    • 尽力而为(Best-Effort):该服务不提供任何可靠性保证。数据单元可能出现丢失、重复、损坏或乱序到达的情况。

    • 高效率:由于省略了连接建立和释放的开销,该模式适用于对实时性要求高且可以容忍丢包的应用,如视频会议、实时游戏。

  • 典型协议用户数据报协议(UDP)。互联网中的 IP 协议也是无连接的,它只负责尽力而为地转发数据包。

有连接服务(Connection-Oriented Service)

有连接服务是一种在数据传输前,必须在发送方和接收方之间建立一条逻辑连接的服务模式。所有数据单元都将通过这条逻辑连接进行传输,传输完成后,该连接才被释放。

  • 工作原理:在数据传输开始前,网络中的节点会进行握手协商,建立一个端到端的逻辑路径。在数据传输期间,所有节点都维护关于该连接的状态信息。

  • 特性

    • 可靠性高:通常提供流量控制、拥塞控制和错误恢复等机制,确保数据单元的顺序、无损到达。

    • 开销大:连接的建立、维护和释放需要额外的控制信息交换,增加了通信开销和延迟,适用于对可靠性要求高、数据顺序需要保证的应用,如文件传输、电子邮件等。

  • 典型协议传输控制协议(TCP)

数据报与虚电路

在网络层,无连接服务和有连接服务分别对应两种不同的数据传输方式:数据报虚电路

数据报(Datagram)
  • 对应服务无连接服务

  • 工作原理:每个数据报被视为一个独立的、自包含的单元。它们可以沿着不同的路径到达目的地,且到达顺序可能与发送顺序不一致。网络中的路由器不保留数据报流的任何状态信息。

  • 应用IP 协议。互联网的核心就是基于数据报模式构建的,其分布式和容错性使其具有强大的鲁棒性。

虚电路(Virtual Circuit)
  • 对应服务有连接服务

  • 工作原理:在数据传输前,网络中的路由器通过信令协议建立一条从源到目的地的逻辑路径,即虚电路。所有属于该虚电路的数据包都将沿着这条预先设定的路径传输,确保它们按顺序到达。

  • 应用:早期的 X.25 ATM(异步传输模式)协议。这些技术在数据通信中扮演过重要角色,但目前在互联网中已不常见。

简而言之,无连接服务是尽力而为的,而有连接服务是可靠的。数据报是前者在网络层的实现,而虚电路是后者在网络层的实现。

网络层的主要功能

1. 逻辑寻址(Logical Addressing)

  • 网络层使用逻辑地址,最常见的例子是 IP 地址。与数据链路层的物理地址(MAC 地址)不同,IP 地址是逻辑的、可分配的,它唯一地标识了网络中的一个主机

  • IP 地址由网络号和主机号组成。网络号标识了主机所在的网络,而主机号标识了该网络中的特定主机。这种分层结构使得网络设备能够根据网络号进行大规模的路由。

2. 路由(Routing)

路由是网络层最核心的功能。它负责为数据包选择一条最佳的传输路径。路由设备(如路由器)会根据数据包中的目的 IP 地址,查询自己的路由表,通过路由算法为数据包选择一个合适的下一跳(next hop)。而路由算法又分静态路由和动态路由

静态路由(Static Routing)

静态路由是一种最简单的路由方式,它需要网络管理员手动配置路由表。路由表中的每一条路由都是管理员事先定义好的,指明了特定目的网络的数据包应该通过哪个接口发送到哪个下一跳路由器。

  • 工作原理:当路由器收到一个数据包时,它会查找路由表中与目的网络匹配的条目。如果找到,就按照预设的路径转发;如果找不到,就丢弃或发送到默认路由。

  • 特点

    • 配置简单:适用于网络规模小且拓扑结构固定的环境。

    • 安全性高:路由路径固定,不受外部影响,因此安全性高。

    • 缺乏灵活性:无法自动适应网络拓扑的变化。当链路出现故障时,需要管理员手动修改路由表,这在大型网络中几乎是不可能的。

    • 无额外开销:路由器之间不需要交换路由信息,因此网络资源占用少。

动态路由(Dynamic Routing)

动态路由是一种更为智能的路由方式。路由器通过运行特定的路由算法,可以自动发现网络中的其他路由器,并动态地学习和更新路由表。当网络拓扑发生变化(如链路故障或恢复)时,路由器能够自动调整路由,从而实现网络的自适应。

  • 工作原理:路由器之间周期性地交换路由信息,彼此学习整个网络的拓扑结构和路由路径。当收到新的路由信息时,它们会根据路由算法重新计算最佳路径,并更新自己的路由表。

  • 特点

    • 高度灵活:能够自动适应网络拓扑的变化,提高网络的鲁棒性。

    • 可扩展性强:适用于大型、复杂的网络。

    • 配置复杂:需要管理员理解和配置路由协议。

    • 额外开销:路由器之间需要交换路由信息,会占用一定的网络带宽和CPU资源。

动态路由主要依赖两种核心算法:距离向量算法和链路状态算法。

距离向量算法(Distance-Vector Algorithm)

距离向量算法是一种迭代的、异步的路由算法。它基于贝尔曼-福特算法(Bellman-Ford Algorithm)其工作流程可以概括为三个主要步骤:初始化、周期性交换路由更新

1. 初始化

每个路由器都会初始化自己的路由表路由表中的内容是:到自己直接相连的邻居的距离是已知(通常是1跳),而到其他所有目的地的距离都是“无限大”。

2. 周期性交换

每个路由器会周期性地(比如每隔30秒)将自己的整个路由表发送给所有直接相连的邻居。这个路由表就是路由器的“距离向量”。

3. 路由更新

  • 当一个路由器收到来自邻居的路由表时,它会进行以下操作:

    • 计算新距离:路由器会检查邻居路由表中每一条路由,并计算通过该邻居到达目的地的新距离。新距离 = 邻居路由中的距离 + 到该邻居的距离

    • 更新路由表:路由器将计算出的新距离与自己路由表中已有的距离进行比较。如果发现通过这个邻居到达某个目的地的距离更短,它就会更新自己的路由表,将下一跳改为这个邻居,并更新距离

实现简单:算法相对简单,易于实现。

收敛速度慢:当网络发生变化时,信息需要通过邻居一层层传播,可能导致路由环路问题

典型协议RIP(路由信息协议)

链路状态路由算法(Link-State Algorithm)

链路状态路由算法是一种更为先进、复杂的路由算法。它基于迪杰斯特拉算法(Dijkstra's Algorithm)

  • 工作原理

    • 每个路由器都会独立地学习其所有直接相连的邻居的状态(即链路的开销、带宽等)。

    • 路由器将这些链路状态信息封装成 LSA(链路状态通告),并将其泛洪(Flood)到整个网络中。

    • 每个路由器都会收到所有 LSA,从而构建出整个网络的完整拓扑图

    • 路由器基于这个拓扑图,使用迪杰斯特拉算法独立计算出到达所有目的地的最短路径,并构建自己的路由表。

  • 特点

    • 收敛速度快:当网络发生变化时,路由器能够迅速将 LSA 泛洪到整个网络,所有路由器能够快速感知并独立计算出新的最短路径。

    • 路由精确:因为每个路由器都掌握了完整的网络拓扑信息,计算出的路径通常是最优的。

    • 开销大:需要消耗更多的CPU和内存资源来存储拓扑图和计算路径,并且泛洪LSA会占用更多带宽。

    • 典型协议OSPF(开放最短路径优先协议)IS-IS

3. 转发(Forwarding)

  • 转发是路由的具体执行过程。当一个数据包到达路由器后,路由器会立即根据路由表,将数据包从一个入接口转发到正确的出接口,从而将数据包向目的地推进。

  • 路由路径选择的宏观决策过程,而转发则是数据包处理的微观执行过程。

4. 封装与分段(Encapsulation & Fragmentation)

  • 网络层从传输层接收数据段,并在其头部添加 IP 头部信息(包括源 IP 地址、目的 IP 地址、协议类型等),形成一个 IP 数据报

  • 如果一个 IP 数据报的大小超过了底层数据链路的最大传输单元(MTU),网络层会将其分段(Fragmentation)成多个较小的数据包,以便在物理链路上顺利传输。这些分段后的数据包会在目的主机上被重新组装。

IP 数据报格式 (IP Datagram Format)

IP 数据报是 IP 协议传输数据的基本单元。每个 IP 数据报都包含头部和数据两部分。

  • IP 头部 (IP Header)

    • 版本号 (Version):4位,用于标识IP协议的版本,例如IPv4或IPv6。

    • 首部长度 (IHL):4位,以4字节为单位,该字段取值为5~15(0101~1111)用于标识IP头部的长度。大多数IP数据报不包含此项,所以一般IP数据报首部为20字节。

    • 服务类型 (ToS):8位,前6位用来表示数据报的服务类型,后2位用来携带拥塞通知信息,配合TCP实现端到端拥塞管理。

    • 总长度 (Total Length):16位,单位字节,标识IP数据报的总长度(包括头部和数据),最大为65535字节(很少有超过1500字节的)。

    • 标识 (Identification):16位,当IP数据报被分片时,该字段用于标识属于同一原始数据报的所有分片。

    • 标志 (Flags):3位,用于控制分片(第一位:保留位,必须为0;第二位:DF,置1为不分片;第三位:MF,置1还有其他分片,置0表示该分片为最后一片)。

    • 片偏移 (Fragment Offset):13位,单位为8字节,用于指定分片在原始数据报中的位置。

    • 生存时间 (TTL):8位,数据报每经过一个路由器,TTL值减1。当TTL减到0时,数据报被丢弃,防止数据报在网络中无限循环。

    • 协议 (Protocol):8位,当一个IP数据报到达最终目的地时才会使用。用于标识该IP数据报应该交给哪个特定的传输层协议,例如ICMP(1),TCP(6)或UDP(17)。

    • 首部校验和 (Header Checksum):16位,用于校验IP头部的完整性。

    • 源IP地址 (Source IP Address):32位,标识数据报的发送方。

    • 目的IP地址 (Destination IP Address):32位,标识数据报的接收方。

  • 数据字段 (Data Field)

    • 承载来自上层协议(如TCP或UDP)的数据。

IP 地址 (IP Address)

IP 地址是网络层用来在互联网上唯一标识一台主机的逻辑地址。目前最常用的是IPv4,它是一个32位二进制数,通常以点分十进制形式表示,例如 192.168.1.1

IP地址由网络号主机号两部分组成:

  • 网络号:用于标识主机所在的网络。

  • 主机号:用于标识该网络中的特定主机。

1. IP 地址分类

为了方便管理和分配,IPv4地址被划分为五类,其中A、B、C三类主要用于主机寻址。

  • A类地址

    • 范围:1.0.0.0 到 126.255.255.255。

    • 格式网络号.主机号.主机号.主机号

    • 特点:网络号占用第一个字节,主机号占用其余三个字节。A类网络数量少,但每个网络可以容纳大量主机。适用于大型网络,如跨国公司或大型机构。

  • B类地址

    • 范围:128.0.0.0 到 191.255.255.255。

    • 格式网络号.网络号.主机号.主机号

    • 特点:网络号占用前两个字节,主机号占用后两个字节。B类网络数量适中,每个网络可容纳的主机数量也适中。适用于中型网络,如大学校园或地区性企业。

  • C类地址

    • 范围:192.0.0.0 到 223.255.255.255。

    • 格式网络号.网络号.网络号.主机号

    • 特点:网络号占用前三个字节,主机号占用最后一个字节。C类网络数量最多,但每个网络只能容纳少量主机。适用于小型网络,如小型公司或家庭网络。

2. 特殊IP地址

除了用于正常通信的地址外,还有一些具有特殊用途的IP地址。

  • 网络地址:主机号全为0的IP地址,用于标识整个网络。例如,网络192.168.1.0

  • 广播地址:主机号全为1的IP地址,用于向网络中的所有主机发送数据。例如,192.168.1.255

  • 回环地址127.x.x.x,用于本地回环测试,数据报不会离开主机。

  • IP地址全为00.0.0.0,通常用于表示本机。

3. 私有地址 (Private IP Address)

RFC 1918标准定义了三段私有地址,它们只在局域网内部使用,不能在互联网上直接路由。

  • A类私有地址10.0.0.010.255.255.255

  • B类私有地址172.16.0.0172.31.255.255

  • C类私有地址192.168.0.0192.168.255.255

私有地址的存在,使得每个局域网都可以独立使用这些地址,并通过**网络地址转换(NAT)**技术,将私有地址映射为公共IP地址,从而实现对互联网的访问。

1. 子网地址

子网地址是网络中的一个逻辑分区。它通过借用 IP 地址中的主机号部分,将其重新划分为子网号新的主机号

  • 为什么要划分成子网?

    • 缓解IP地址短缺:通过将一个大的网络(如 B 类网络)划分成多个小的子网,可以更有效地分配 IP 地址,避免浪费。

    • 提高路由效率:路由器只需要根据数据包的子网地址来转发,而不是根据完整的网络地址,这简化了路由表的结构,加快了路由速度。

    • 网络隔离与安全:不同的子网可以相互隔离,将广播流量限制在各自的子网内,从而减少网络拥塞,并提高网络的安全性。

2. 子网掩码(Subnet Mask)

子网掩码是一个32位的二进制数,它与 IP 地址一起使用,用于确定 IP 地址中的网络部分和主机部分

  • 工作原理

    • 子网掩码中的连续的“1”对应于 IP 地址中的网络号子网号

    • 子网掩码中连续的“0”对应于 IP 地址中的主机号

如何使用子网掩码? 要获取一个 IP 地址的子网地址,只需要将该 IP 地址与子网掩码进行按位与(AND)运算。

举例说明 假设你有一个 IP 地址 192.168.1.100,子网掩码是 255.255.255.0

  • IP 地址192.168.1.100

    • 二进制:11000000.10101000.00000001.01100100

  • 子网掩码255.255.255.0

    • 二进制:11111111.11111111.11111111.00000000

将两者进行按位与运算,得到:

  • 子网地址11000000.10101000.00000001.00000000

    • 十进制:192.168.1.0

这意味着 IP 地址 192.168.1.100 属于 192.168.1.0 这个子网。

ICMP 协议 (Internet Control Message Protocol)

ICMP 协议,即互联网控制消息协议,是网络层(第三层)的一个重要协议。它的主要任务是传递控制消息和错误报告,而不是传输用户数据。当路由器处理一个数据包的过程有意外发生时,可通过ICMP向发送方报告。

ICMP 的主要功能:

  • 报告错误:当数据包在传输过程中遇到问题时,ICMP 会生成错误报告,并发送给数据包的源主机。常见的错误消息包括“目标网络不可达”、“TTL超时”等。

  • 查询信息:ICMP 也可以用来查询网络状态,例如,主机可以发送一个 ICMP 请求来询问另一个主机是否可达。

ICMP 协议不传输文件、网页或视频,它只负责传递网络状态和错误信息,这是它与 TCP 或 UDP 等协议的根本区别。

Ping

Ping 是一个网络诊断工具,它利用 ICMP 协议来测试两台主机之间的连通性。

Ping 的工作原理:

  1. 发送请求:当你在一台主机上运行 ping 命令,并指定一个目标 IP 地址时,你的主机实际上会向目标主机发送一个 ICMP 回显请求(Echo Request)数据包。

  2. 接收响应:如果目标主机可达,它会向你的主机发送一个 ICMP 回显应答(Echo Reply)数据包。

  3. 结果显示ping 程序会记录从发送请求到收到应答所花费的时间(即往返时延),并显示传输成功的数据包数量和丢失率。

通过 ping 命令,我们可以快速判断网络是否通畅、目标主机是否在线,并评估网络的延迟和稳定性。

Traceroute

Traceroute 是另一个网络诊断工具,它利用 ICMP 协议IP 协议的 TTL(生存时间)字段,来追踪数据包从源主机到目的主机所经过的路径

Traceroute 的工作原理:

  1. TTL 递增traceroute 程序会发送一系列 IP 数据包,每个数据包的 TTL 值从 1 开始递增

  2. TTL 超时

    • 第一个数据包的 TTL 值为 1。当它到达第一个路由器时,TTL 减为 0,路由器会丢弃该数据包,并向源主机发送一个 ICMP “时间超时”(Time Exceeded)消息。这个消息包含了第一个路由器的 IP 地址。

    • 第二个数据包的 TTL 值为 2。它会成功通过第一个路由器,但在第二个路由器处被丢弃,并触发一个 ICMP“时间超时”消息,从而让源主机得知第二个路由器的 IP 地址。

  3. 路径追踪:这个过程会一直重复,直到某个数据包成功到达目的地。通常,当数据包到达目的地时,会收到一个 ICMP “端口不可达”或“回显应答”消息,表示追踪结束。

通过 traceroute,我们可以看到数据包在网络中经过了哪些路由器,并了解每段路径的延迟,这对于排查网络拥塞或路由故障非常有帮助。

DHCP 协议 (动态主机配置协议)

DHCP (Dynamic Host Configuration Protocol) 是一个应用层协议,它的主要任务是动态地为网络中的设备分配 IP 地址,以及其他重要的网络配置信息,如子网掩码、网关和 DNS 服务器地址。

当一台设备(例如你的电脑或手机)连接到网络时,它会执行以下步骤:

  1. DHCP 发现 (Discover):设备发送一个 DHCP 广播数据包,寻找网络中的 DHCP 服务器。

  2. DHCP 租约提供 (Offer):DHCP 服务器收到请求后,从其地址池中选择一个可用的 IP 地址,并以单播方式提供给设备。

  3. DHCP 租约请求 (Request):设备收到一个或多个 Offer 后,选择一个并发送一个请求,正式要求租用该 IP 地址。

  4. DHCP 租约确认 (ACK):DHCP 服务器收到请求后,发送一个确认数据包,正式分配 IP 地址和所有必要的网络配置信息。

DHCP 的存在,使得网络管理员无需手动配置每台设备的 IP 地址,极大地简化了网络管理。

ARP 协议 (地址解析协议)

ARP (Address Resolution Protocol) 是一个数据链路层协议,它的主要任务是将网络层的 IP 地址解析为数据链路层的 MAC 地址

当一个设备想要向同一局域网内的另一个设备发送数据时,网络层用IP地址找到主机,链路层需要MAC地址才能发送帧。但它只知道对方的 IP 地址。这时,ARP 协议就会介入:

  1. ARP 请求 (Request):设备发送一个 ARP 广播数据包,询问网络中“谁是这个 IP 地址的主人?”。

  2. ARP 响应 (Reply):网络中的所有设备都会收到这个广播。只有拥有该 IP 地址的设备,才会向源设备发送一个 ARP 单播响应,其中包含了它的 MAC 地址。

  3. 缓存:源设备收到响应后,会将这个 IP-MAC 地址的对应关系存储在自己的 ARP 缓存表中,以便下次直接使用,避免重复广播。

ARP 确保了数据包能够在局域网中找到正确的物理接收方。

网关 (Gateway)

网关是一个网络设备,用于连接两个不同的网络。它在网络中扮演着“守门员”或“出口”的角色。

你的设备如何知道数据包应该发给谁?它会检查数据包的目的 IP 地址:

  • 本地通信:如果目的 IP 地址与设备自己的 IP 地址属于同一个子网,它会使用 ARP 协议来获取对方的 MAC 地址,并将数据包直接发送给该设备。

  • 跨网通信:如果目的 IP 地址不属于本地子网(例如,你正在访问一个网站),设备就会将数据包发送给默认网关

在大多数家庭或小型办公网络中,路由器扮演着默认网关的角色。它负责将来自你本地网络的数据包转发到互联网,并将来自互联网的数据包转发回你的设备。因此,从广义上说,任何能够连接并转换不同网络协议的设备都可以被称为网关。

NAT (网络地址转换)

NAT,全称 Network Address Translation,即网络地址转换。它是一种允许一个私有网络(如家庭或办公局域网)中的多个设备,共享同一个公有 IP 地址来访问互联网的技术。

NAT 的工作原理

NAT 的核心作用是在私有 IP 地址和公有 IP 地址之间进行转换。它就像一个网络的“代理”,所有从私有网络发出的数据包,都会通过这个代理进行地址转换,然后再发送到互联网。

整个过程可以分为两个方向:

  1. 从私有网络到公网

    • 一个私有网络中的设备(例如 IP 地址为 192.168.1.10 的电脑),想要访问一个公网服务器(例如 IP 地址为 8.8.8.8 的网站)。

    • 数据包的源地址是 192.168.1.10。当数据包到达具备 NAT 功能的路由器时,路由器会截获它。

    • 路由器将数据包的源 IP 地址从私有的 192.168.1.10 转换成自己的公有 IP 地址(例如 203.0.113.50)。同时,它还会更改数据包的源端口号,以确保这个连接是唯一的。

    • 路由器将这种转换关系(192.168.1.10 映射到 203.0.113.50:端口号)记录在自己的 NAT 转换表中。

    • 转换后的数据包被发送到公网。此时,公网上的服务器只知道数据包来自 203.0.113.50

  2. 从公网返回私有网络

    • 公网服务器的响应数据包到达路由器。

    • 路由器收到数据包后,会查询它的 NAT 转换表

    • 根据转换表中的记录,路由器将数据包的目的地址从公有 IP 203.0.113.50:端口号 还原为私有 IP 192.168.1.10,并将数据包转发给正确的设备。

NAT 的主要类型

根据地址映射的方式,NAT 可以分为几种主要类型:

  • 静态 NAT(Static NAT)

    • 一对一映射:一个私有 IP 地址被永久地映射到一个固定的公有 IP 地址。

    • 用途:通常用于需要从公网访问的服务器,因为它提供了固定的公有地址。

  • 动态 NAT(Dynamic NAT)

    • 多对多映射:在多个公有 IP 地址池中,动态地为私有 IP 地址分配一个可用的公有 IP。

    • 用途:适用于需要共享一组公有地址的私有网络。

  • 端口地址转换(PAT)

    • 多对一映射:也称为 NAT 重载(NAT Overload),这是最常见的 NAT 类型。它使用单个公有 IP 地址,通过不同的端口号来区分多个私有 IP 地址的连接。

    • 用途:广泛应用于家庭和小型办公网络,极大地节约了公有 IP 地址资源。

NAT 的重要性

  • 地址节约:NAT 技术的出现,是应对 IPv4 地址耗尽危机的关键解决方案。它使得一个组织只需要申请一个公有 IP 地址,就可以让所有内部设备接入互联网。

  • 网络安全:由于私有网络中的设备 IP 地址对外部不可见,NAT 也提供了一种基本的防火墙功能。外部设备无法直接向内部私有地址发起连接,从而增强了网络的安全性。

域内路由与域外路由

1. 域内路由(Intra-domain Routing)

域内路由,也称为内部网关协议(IGP),是指在一个自治系统(AS)内部进行路由的过程。

  • 自治系统:一个自治系统是一个统一管理下的网络实体,例如一个大型公司、大学校园或一个互联网服务提供商(ISP)的网络。

  • 目的:域内路由的主要目的是在自治系统内部实现高效、快速的路由,确保数据包能够以最优路径在内部传输。

  • 特点:由于是在单个管理域内,通常假设网络拓扑相对可信,所以协议更注重收敛速度路由的精确性

RIP(路由信息协议)和 OSPF(开放最短路径优先)是两种最典型的域内路由协议。

  • RIP(工作在应用层,基于UDP协议封装报文)

    • 类型:基于距离向量算法

    • 工作原理:路由器周期性地向邻居发送其完整的路由表(包含目的网络、跳数、下一跳IP地址)。最大跳数为 15,因此不适用于大型网络。

    • 特点:配置简单,但收敛速度慢,且容易产生路由环路。现在通常只用于小型、简单的网络。

  • OSPF(工作在网络层,数据封装在IP分组中进行传输

    • 类型:基于链路状态路由算法

    • 工作原理:与RIP不同,两个路由器之间代价大于1(带宽;时延、MTU)。每个路由器都会向整个自治系统泛洪链路状态通告(LSA),然后所有路由器都根据这些 LSA 建立起完整的网络拓扑图,并使用 Dijkstra 算法独立计算出最优路径。

    • 特点:收敛速度快,路由精确,支持负载均衡,将负载分散到多条线路。适用于大型、复杂的企业和ISP网络。

2. 域间路由(Inter-domain Routing)

域间路由,也称为外部网关协议(EGP),是指在不同的自治系统(AS)之间进行路由的过程。

  • 目的:域间路由的主要目的是在不同的自治系统之间交换路由信息,从而让数据包能够在全球范围内找到正确的目的地。

  • 特点:由于涉及不同组织的网络,协议更注重路由策略安全性和可扩展性,而不是单纯地追求最短路径。

BGP(边界网关协议)是唯一的,也是目前互联网上事实上的域间路由协议。

  • BGP(边界网关协议)[工作在应用层,基于TCP协议封装报文]

    • 类型:基于路径向量路由算法

    • 工作原理:BGP 路由器(通常被称为边界路由器)会与其他自治系统的 BGP 路由器建立连接,并交换路由信息。但它不只交换“目的地和下一跳”,它还交换完整的路径信息(AS Path),即数据包要经过的所有自治系统序列。

    • 特点

      • 策略路由:BGP 不单纯基于最短路径,而是允许管理员配置复杂的路由策略,例如,优先选择通过特定ISP的路径。

      • 避免环路:由于BGP携带了完整的AS路径信息,它可以轻松地检测并避免路由环路。

      • 高度可扩展:BGP能够处理庞大的路由表,是互联网路由的基石。

数据包的传输过程是:一个数据包从一个 AS 内部的主机发出,它会通过 OSPF 或 RIP 找到边界路由器,然后边界路由器使用 BGP 将其转发到正确的目的地 AS,最后,数据包在目的 AS 内部再次使用 OSPF 或 RIP,找到最终的主机。


后续网络层相关内容会补充到这篇文章中。

不知道大家是喜欢所有内容都合在一篇文章中,还是根据内容不同分成几篇文章=-=?

以上, 跟着光。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/99212.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/99212.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/99212.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

互联网大厂Java面试实录:从基础到微服务全栈技术答疑

互联网大厂Java面试实录:从基础到微服务全栈技术答疑 本文以电商场景为背景,展现一场互联网大厂Java开发职位的面试过程。严肃的面试官与搞笑的水货程序员谢飞机展开三轮技术问答,涵盖Java SE、Spring Boot、数据库、微服务、安全以及CI/CD等…

StringBuilder 深度解析:数据结构与扩容机制的底层细节

文章目录 前言 一、数据结构:不止是简单的字符数组 1. 核心成员变量(定义在 AbstractStringBuilder 中) 2. 构造器与初始容量 二、扩容机制:从 "不够用" 到 "换大容器" 的全过程 步骤 1:计算…

Elasticsearch面试精讲 Day 17:查询性能调优实践

【Elasticsearch面试精讲 Day 17】查询性能调优实践 在“Elasticsearch面试精讲”系列的第17天,我们聚焦于查询性能调优实践。作为全文检索与数据分析的核心引擎,Elasticsearch的查询性能直接影响用户体验和系统吞吐能力。在高并发、大数据量场景下&…

WPF 数据绑定模式详解(TwoWay、OneWay、OneTime、OneWayToSource、Default)

在WPF中,数据绑定模式(Binding Mode)用于指定数据流的方向。常见的模式有TwoWay、OneWay、OneTime、OneWayToSource和Default。TwoWay(双向绑定):数据从源(通常是ViewModel或数据上下文&#xf…

使用 NVIDIA Dynamo 部署 PD 分离推理服务

1 Dynamo 介绍 NVIDIA Dynamo 是一个开源的模块化推理框架,用于在分布式环境上实现生成式 AI 模型的服务化部署。Dynamo 通过动态资源调度、智能路由、内存优化与高速数据传输,无缝扩展大型 GPU 集群之间的推理工作负载。 Dynamo 采用推理引擎无关的设…

答题卡识别改分项目

目录 核心思路 分步实现与代码解析 1. 环境准备与工具函数定义 2. 图片预处理 3. 轮廓提取与筛选 3. 轮廓提取与筛选 4. 透视变换(矫正倾斜答题卡) 5. 阈值处理(突出填涂区域) 6. 提取选项圆圈轮廓 7. 选项轮廓排序&…

Python爬虫实战:研究Pandas,构建新浪网股票数据采集和分析系统

1. 系统概述 股票数据分析系统旨在通过自动化手段获取市场数据,进行深度分析,辅助投资决策。本系统主要包含以下核心模块: 数据爬取模块:从新浪财经获取股票列表、基本信息及历史交易数据 数据处理模块:清洗原始数据,处理缺失值与异常值,计算技术指标 分析可视化模块:…

【C++STL】list的详细用法和底层实现

🌟个人主页:第七序章 🌈专栏系列:C++ 目录 ❄️前言: 🌈一:介绍 🌈二:list的创建 ☀️基本框架 🌙节点类 🌙构造函…

AI大模型开发(多模态+提示词)

接着之前的例子,继续测试模型对话,今天主要测试多模态加上系统提示词。 一.多模态 多模态方法,主要添加了对图片的测试。 public String chatWithMessage(UserMessage userMessage){ChatResponse chatResponse qwenChatModel.chat(userMess…

Qt程序单独运行报错问题

Qt程序单独运行报错问题介绍问题原因分析解决方案(从最佳实践到临时方法)方法一:使用 windeployqt 工具(最推荐、最规范)方法二:临时修改系统 PATH(适合开发调试)方法三:…

Flask学习笔记(二)--路由和变量

一、路由Flask支持两种路由1、使用route()装饰器将URL绑定到函数app.route(/hello)def hello_world():return hello world2、使用应用程序对象的add_url_rule()函数def hello_world():return hello worldapp.add_url_rule(/, hello, hello_world)二、变量规则Flask开发中&#…

Skywalking告警配置+简易邮件告警应用配置(保姆级)

Skywalking告警配置简易邮件告警应用配置前言: 前文:SkyWalking Elasticsearch8 容器化部署指南:国内镜像加速与生产级调优_skywalkinges-CSDN博客 ​ SKywalking Agent配置Oracle监控插件安装指南-CSDN博客 Skywalking版本:V10.…

无人机如何实现图传:从原理到实战的全景解读

无人机图传的工作不是简单地把镜头的数据直接“丢”到一个屏幕上,而是一个由编码、传输、解码三段组成的系统。首先是视频编码:摄像头采集的原始画面通常需要经过编解码器压缩,常见标准包括H.264、H.265和VP9等。压缩的目的是减少数据量&…

AS32S601在轨重构(OTA)方案的优化与分析

摘要在轨重构(OTA)技术因其在航天、工业控制、物联网等领域的高可靠性和持续服务需求而备受关注。本文以国科安芯推出的AS32S601芯片为研究对象,深入分析其OTA方案的设计原理、技术细节及优化策略,并结合芯片的硬件特性&#xff0…

修复Android studio的adb无法连接手机问题

复制下面的内容到一个文本txt里面然后把里面的Android studio路径和sdk路径改成你自己的,然后改成把.txt改成bat 右键管理员运行 echo off REM Deep Fix for "Couldnt terminate the existing process" error REM This script will completely reset ADB …

css优化都有哪些优化方案

CSS 优化其实可以分成几个层面:性能优化、可维护性优化、兼容性优化以及用户体验优化。这里我帮你梳理一份比较系统的 CSS 优化方案清单,方便你参考:🔹 一、加载性能优化减少 CSS 文件体积压缩 CSS(去掉空格、换行、注…

vue,uniapp 实现卷帘对比效果

需求&#xff1a;两张图重叠放在一起&#xff0c;拖动分割线实现卷帘对比效果&#xff0c;如图一、vue2代码 <template><div class"main"><div class"img-comparison" mousedown"startSlide"><img class"before"…

【笔记】空气弹簧概述、刚度调节原理

参考链接&#xff1a;汽车底盘空气悬架关键零部件之空气弹簧 1.概述 汽车空气弹簧&#xff08;Air Spring&#xff09;是一种以“压缩空气”作为弹性介质的悬架元件&#xff0c;用来取代传统钢制螺旋弹簧或钢板弹簧。它在乘用车、客车、重卡及轨道交通上越来越普及&#xff0…

UDP Socket 进阶:从 Echo 到字典服务器,学会 “解耦” 网络与业务

开篇&#xff1a;从 “回显” 到 “字典”&#xff0c;核心变在哪&#xff1f;上一篇我们实现了 Echo 服务器 —— 网络层和业务层是 “绑死” 的&#xff1a;网络层收到数据后&#xff0c;直接把原数据发回去。但实际开发中&#xff0c;业务逻辑会复杂得多&#xff08;比如查字…

数据结构之复杂度

数据结构的理解 数据本身是杂乱无章的&#xff0c;需要结构进行增删查改等操作更好的管理数据&#xff1b; 比如&#xff1a;在程序中需要将大量的代码&#xff08;数据&#xff09;通过结构进行管理&#xff1b; 再比如&#xff1a;定义1000个整型变量的数组&#xff0c;我们…