计算机网络中的网络层是数据传输过程的一个关键部分。它位于 OSI 模型的第三层和 TCP/IP 模型的第二层,承担着多个重要职责。
它从表面上看极为简单,即讲分组从一台阿松主机移动到一台接收主机。
它在这些模型中扮演者如下角色:
-
路由选择与转发:网络层的一个核心功能是确定数据(例如分组或数据包)从源头到目的地的路径。它使用路由算法来选择最佳路径,并通过网络进行数据传输。
-
地址寻址:网络层负责为每个设备分配一个独特的地址,通常是 IP 地址。这使得网络中的设备可以互相识别和通信。
-
分组处理:当数据包太大而无法通过网络时,网络层会将其分割成更小的单元,称为分组。在目的地,这些分组会被重新组装成原始数据。
-
错误处理和诊断:网络层还负责检测和纠正在传输过程中可能发生的错误,比如数据丢失或损坏。
-
拥塞控制:网络层还监控网络拥塞情况,并采取措施减轻拥塞,确保数据流畅传输。
网络层的一个典型代表是互联网协议(IP)。IP 协议定义了如何在多个网络之间发送和接收数据包。它还包括用于定位和路由的地址系统(如 IPv4 和 IPv6)。网络层在计算机网络中的作用至关重要,因为它不仅确保数据准确无误地传输,同时也使不同网络和设备能够有效地交互和通信。
转发和路由选择
在前面的内容中讲到,它是将分组从一台发送主机移动到另一台接收主机,为此,它需要两种重要的网络层功能:
-
转发:当一份分组到达某路由器的一条输入链路时,该路由器必须将该分组移动到适当的输出链路。
-
路由选择:当分组从发送方流会接收方时,网络层必须觉得这些分组所采用的路由或者路径。
假设你正在使用你的电脑(电脑 A)向朋友的电脑(电脑 B)发送一条消息:你好,新年快来。电脑 A 和电脑 B 位于不同的城市,它们之间通过多个路由器连接。
-
数据包的创建与发送:当你点击发送信息的时候,你的电脑会将信息内容打包成一个或多个数据包。每个数据包都包含了目的地的地址(即你朋友电脑的 IP 地址)。
-
数据包到达第一个路由器:这些数据包首先被发送到你本地网络的路由器。这个路由器检查数据包的目的地地址,并决定将其转发到哪个输出链路。
-
路径决策与转发:假设有三条可用的输出链路,每条链路都通往一个不同的方向。路由器会根据路由表中的信息(这些信息由路由选择协议生成),选择一条最佳路径。例如,它可能选择一条通往某个城市数据中心的链路。
-
经过多个路由器:数据包可能需要经过多个路由器才能到达目的地。每当数据包到达一个新的路由器时,这个过程就会重复:路由器检查目的地地址,选择最佳的输出链路,然后将数据包转发出去。
-
到达目的地:最终,这些数据包到达了你朋友所在城市的路由器,并被转发到你朋友的本地网络和电脑 B 上。电脑 B 接收这些数据包,重新组装成原始信息,使你的朋友能够阅读它。
在整个过程中,每个路由器的关键作用就是检查到达的数据包,并决定如何转发它们,以便它们能够有效地向目的地前进。这个过程是网络层的基本职责之一。
每台网络路由器中有一个关键元素是他的转发表。路由器检查到达分组首部的一个或者多个字段值,进而使用这些首部值在其转发表中索引。通过这种方法来转发分组。这些值对应存储在转发表中的值,指出了该分组将转发的路由器的输出链路接口。
路由选择和转发相互作用关系
路由选择(Routing)和转发(Forwarding)是计算机网络中两个紧密相关且互相依赖的概念。它们共同确保数据在网络中有效、准确地传输。理解它们之间的相互作用对于掌握网络基础至关重要:
-
路由选择
- 定义:路由选择是指确定数据从源点到目的点的路径。这个过程涉及到整个网络,需要考虑多个路由器及其连接。
- 动态决策:路由选择通常是一个动态过程,使用各种路由协议(如 RIP, OSPF, BGP)来响应网络变化,比如链接故障、拥塞等。
- 全局视角:路由选择需要网络的全局信息,例如哪些网络是可达的,以及到达这些网络的最佳路径是什么。
-
转发
- 定义:转发是在网络设备(如路由器)内部处理数据包的过程,决定如何从一个接口转移到另一个接口。
- 即时决策:转发是一个快速的、即时发生的过程,它依据路由器的转发表(由路由选择过程生成)来处理每个到达的数据包。
- 局部操作:转发只涉及单个路由器的局部信息,路由器根据转发表中的信息决定数据包的下一步行动。
-
相互作用关系
- 互相依赖:路由选择为转发提供必要信息(如转发表),而转发则是路由选择决策的实际执行者。
- 信息共享:路由选择过程中得到的信息(如最优路径)被编码到转发表中,转发过程使用这些信息来导引数据包。
- 动态协调:网络环境的变化(如路由器故障、新的链路建立)会影响路由选择,进而更新转发表。反之,转发过程中的经验(如链路使用率)也可能反馈给路由选择过程,以优化路由决策。
- 性能影响:路由选择的质量直接影响转发效率和网络性能。好的路由选择可以减少延迟、避免拥塞,而不佳的路由选择可能导致路由环路、数据包丢失等问题。
总的来说,路由选择和转发是网络运行中不可分割的两部分,它们相互作用确保数据包能够沿着最佳路径高效、准确地到达目的地。
网络服务模型
网络服务模型定义了分组在发送与接收端系统之间的端到端运输特性。网络层能够提供的某些可能的服务,这些服务可能包括:
- 确保交付。该服务确保分组将最终到达目的地。这意味着网络将采取必要的措施(如重传丢失的分组)来确保每个分组都被成功交付。
- 具有时延上界的确保交付。该服务不仅确保分组的交付,而且在特定的主机到主机时延上界内交付。这对于实时应用(如视频会议或在线游戏)非常重要,这些应用需要及时的数据交付来保证流畅的用户体验。
- 有序分组交付。该服务确保分组以他们发送的顺序到达目的地。在某些情况下,如文件传输,保持数据包的顺序是很重要的,因为乱序的数据包可能导致接收端在重新组装数据时出现复杂性和错误。
- 确保最小带宽。这种网络层服务模仿在发送和接收主机之间一条特定比特率的传输链路行为。只要发送主机以低于特定比特率的速率传输比特,则所有分组最终会交付到目的主机。这类似于保证一条专用链路的行为,可以用于需要稳定带宽的应用,例如视频流或远程教育。
- 安全性:网络层能够在源加密所有数据报并在目的地解密这些分组,从而对所有运输层报文端提供机密性。这对于保护数据免受窃听和其他安全威胁非常重要,尤其是在传输敏感信息时。
这些仅仅是网络层能够提供的服务的部分列表,有无数种可能的服务变种。
因特网的网络层提供了单一的服务,称为尽力而为服务。使用尽力而为服务,传送的分组既不能保证以他们的发送顺序被接受,也不能保证它们最终交付;既不能保证端到端时延,也不能保证有最小的带宽。
尽力而为服务看起来是根本无服务的一种委婉说法,即一个没有向目的地交付分支的网络也服务尽力而为交付服务的定义。
总结
网络层在计算机网络中主要负责路由选择和数据包的转发,确保数据从源头顺利到达目的地。它通过为设备分配独特的 IP 地址来处理地址寻址,同时负责分组处理、错误检测和拥塞控制,以提高数据传输的效率和可靠性。网络层的服务模型包括基本的尽力而为服务和其他高级服务如确保交付、时延控制、有序传输、带宽保证和安全性。