网络层是计算机网络的OSI模型中的第三层。它的主要函数是将网络数据包从源传输到目的地。它在源主机和目标主机上都涉及。在源头,它从传输层接收数据包,将其封装在数据报中,然后将数据包传递到数据链路层,以便可以进一步将其发送到接收器。在目的地,数据报被解封装,数据包被提取并传递到相应的传输层。
特征 :
- 网络层的主要职责是在不更改或使用数据包的情况下将数据包从源传送到目的地。
- 如果数据包太大而无法交付,则会将其分段,即分解为较小的数据包。
- 它决定了数据包从网络到源的多个根中要采用的根(从根到目的地)(也称为路由)。
- 源地址和目标地址被添加到网络层内部的数据包中。
网络层协议提供的服务如下:
- 打包–
将从网络高层接收到的数据(也称为有效负载)封装在源端的网络层数据包中,然后将有效负载从目标端的网络层数据包中解封装的过程称为打包。源主机将标头(包含源和目标地址以及网络层协议所需的一些其他相关信息)添加到从上层协议接收的有效负载中,并将数据包传递到数据链路层。
目的主机从其数据链路层接收网络层数据包,对该数据包进行解封装,然后将有效负载传递给相应的上层协议。路径中的路由器不允许更改源地址或目标地址。除非需要对路径中的路由器进行分段,否则不允许它们对其收到的数据包进行解封装。
- 路由和转发–
这是网络层提供的其他两项服务。在网络中,从源到目的地有许多路由可用。网络层指定了一些策略,以找出最佳的可能路由。此过程称为路由。在此过程中使用了许多路由协议,应该运行它们以帮助路由器彼此协调并帮助建立整个网络的通信。转发简单地定义为每个路由器在数据包到达其接口之一时所应用的操作。当路由器从其连接的网络之一接收到数据包时,它需要将数据包转发到另一个连接的网络(单播路由)或转发到某些连接的网络(在多播路由的情况下)。
网络层预期提供的其他一些服务包括:
- 错误控制–
尽管它可以在网络层中实现,但通常不是首选,因为网络层中的数据包可能会在每个路由器处分片,这会使错误检查在网络层中效率低下。 - 流量控制–
它调节源可以发送的数据量而不会使接收器过载。如果源产生的数据速率快于接收器消耗的速率,则接收器将过载数据。为了控制数据流,接收方应向发送方发送反馈,以通知发送方数据过载。网络层的设计中缺少流控制。它不直接提供任何流量控制。数据报由发送方准备好后发送,而无需关注接收方的准备情况。
- 拥塞控制–
当源发送的数据报数量超出网络或路由器的能力时,就会发生拥塞。这是网络层协议中的另一个问题。如果拥塞持续,有时可能会出现系统崩溃且没有数据报被传递的情况。虽然拥塞控制是在网络层间接实现的,但是在网络层仍然缺少拥塞控制。
网络层服务的优势:
- 网络层中的打包服务使数据包的传输变得容易。
- 分组化还消除了数据通信系统中的单点故障。
- 网络层中的路由器通过创建冲突和广播域来减少网络流量。
- 借助转发,数据包将从网络中的一个位置传输到另一位置。
网络层服务的缺点:
- 网络层的设计中缺少流控制。
- 有时由于网络中存在太多超出网络或路由器容量的数据报而导致拥塞。因此,某些路由器可能会丢弃某些数据报,并且一些重要的信息可能会丢失。
- 尽管在网络层中存在间接的错误控制,但是由于存在碎片数据包,因此缺乏适当的错误控制机制,错误控制变得难以实现。