加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

我画了 40 张图就是为了让你搞懂计算机网络层

发布时间:2021-01-08 05:00:08 所属栏目:业界 来源:未知
导读:前面我们学习了运输层如何为客户端和服务器输送数据的,提供进程端到端的通信。那么下面我们将学习网络层实际上是怎样实现主机到主机的通信服务的。 几乎每个端系统都有网络层这一部分 。所以,网络层必然是很复杂的。下面我将花费大量篇幅来介绍一下计算机

网络层的策略对 TCP 拥塞控制影响很大的就是路由器的分组丢弃策略。在最简单的情况下,路由器的队列通常都是按照 FCFS 的规则处理到来的分组。由于队列长度总是有限的,因此当队列已经满了的时候,以后再到达的所有分组(如果能够继续排队,这些分组都将排在队列的尾部)将都被丢弃。这就叫做尾部丢弃策略。

通常情况下,在缓冲填满之前将其丢弃是更好的策略。

我画了 40 张图就是为了让你搞懂计算机网络层

如上图所示,A B C 每个输入端口都到达了一个分组,而且这个分组都是发往 X 的,同一时间只能处理一个分组,然后这时,又有两个分组分别由 A B 发往 X,所以此时有 4 个分组在 X 中进行等待。

我画了 40 张图就是为了让你搞懂计算机网络层

等上一个分组被转发完成后,输出端口就会选择在剩下的分组中根据分组调度(packet scheduleer)选择一个分组来进行传输,我们下面就会聊到分组传输。

分组调度

现在我们来讨论一下分组调度次序的问题,即排队的分组如何经输出链路传输的问题。我们生活中有无数排队的例子,但是我们生活中一般的排队算法都是先来先服务(FCFS),也是先进先出(FIFO)。

先进先出

先进先出就映射为数据结构中的队列,只不过它现在是链路调度规则的排队模型。

我画了 40 张图就是为了让你搞懂计算机网络层

FIFO 调度规则按照分组到达输出链路队列的相同次序来选择分组,先到达队列的分组将先会被转发。在这种抽象模型中,如果队列已满,那么弃尾的分组将是队列末尾的后面一个。

优先级排队

优先级排队是先进先出排队的改良版本,到达输出链路的分组被分类放入输出队列中的优先权类,如下图所示

我画了 40 张图就是为了让你搞懂计算机网络层

通常情况下,每个优先级不同的分组有自己的优先级类,每个优先级类有自己的队列,分组传输会首先从优先级高的队列中进行,在同一类优先级的分组之间的选择通常是以 FIFO 的方式完成。

循环加权公平排队

在循环加权公平规则(round robin queuing discipline)下,分组像使用优先级那样被分类。然而,在类之间却不存在严格的服务优先权。循环调度器在这些类之间循环轮流提供服务。如下图所示

我画了 40 张图就是为了让你搞懂计算机网络层

在循环加权公平排队中,类 1 的分组被传输,接着是类 2 的分组,最后是类 3 的分组,这算是一个循环,然后接下来又重新开始,又从 1 -> 2 -> 3 这个顺序进行轮询。每个队列也是一个先入先出的队列。

这是一种所谓的保持工作排队(work-conserving queuing)的规则,就是说如果轮询的过程中发现有空队列,输出端口不会等待分组,而是继续轮询下面的队列。

IP 协议

路由器对分组进行转发后,就会把数据包传到网络上,数据包最终是要传递到客户端或者服务器上的,那么数据包怎么知道要发往哪里呢?起到关键作用的就是 IP 协议。

IP 主要分为三个部分,分别是IP 寻址、路由和分包组包。下面我们主要围绕这三点进行阐述。

IP 地址

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读