2-分组交换

前面说到了分组交换是互联网的核心。这次来仔细讲讲分组交换。
因为互联网是建立在分组交换上的,所以分组交换存在的问题也就是互联网通信中会存在的问题。

为什么用分组交换

首先要回顾一下什么是分组交换。

说到分组交换就要再提一下传统的电路交换。电路交换的一个具体实现就是打电话。每次打电话都会建立起一个专有线路,这个线路不会和其他人分享,通话仅限于发起会话和接受会话的双方。�有多少个同时打电话的双方就需要多少条电话线。线路是非常贵的,所以电路交接的线路费用会非常大。

分组交换是把数据进行预处理,分成多个包,每个包独立转发。如果有多个人想同时发送数据,只要把他们的数据封装成包后加入发送队列就行。实现了多人通信共享一个物理线路。

分组交换的另外一个特点就是,每次中转的路由器转发包,只负责发给相邻的下一站。

如下图,A把数据包发给路由器S1,S1收到包转发后,检查数据包的目的地址B,如果B的地址在自己的路由表中,那就直接发给B。如果如图中所示,B不在下一站。S1就按照一定规则选一个相邻的路由器转发。或者进行广播,把数据包发给所有相邻的路由器。


image.png

那么这种发送数据的方法优势在哪里?

同样用这张图,我们来看一下电路交换是怎么发送数据的。

A到B建立一条专用线路1,A-S1-S2-S4-B。这是一条专用线路,当线路1建立完后,在这条线路撤销之前,其他线路不能占用。怎么保证不占用?就需要S1,S2,S4都有一个状态保存,存下这条线路。S1需要记住S1-A和S1-S2的线路已经连接上处于使用中。其他路由器S2和S4也需要记住。那么如果要撤销专用线路1,那么需要把S1、S2、S4的所有和线路1相关的状态都清除。

线路1被占用的时候,如果我们要建立一条专用线路2,C-S3-S1-A,是无法建立的。因为物理线路A-S1已经被专用线路1占用了,而A到S1在本图中只有一条物理线路。

从这个例子我们可以看出电路交换的缺点。

  1. 低效。一个通信就要占用一条物理线路。而互联网通信一个很大的特点就是突发和高频。打开一个网页都会在短时间内发好几个请求。
  2. 状态管理。路由器需要记住每个连接。如果一个连接中间断开,那么整个线路都会断掉。如果要清除连接,需要清除所有路由器的状态。
  3. 无法处理不同速率的连接。不管一个连接需要速率是大是小, 比如看视频可能6mb/s,ssh连接可能1kb/s,都要占用一个物理线路。无法充分利用线路带宽。

而分组交换就能很好的解决以上问题。分组交换有几个特点。

  1. 每个包独立路由(按路线发送),它会在路由器的路由里找到下一站地址。
  2. 所有的包都能分享一个链路的所有容量
  3. 路由器不会保存每个通信的状态。

所以互联网采用分组交换的原因就出来了。

  1. 能充分利用线路。而线路是非常贵的,而互联网的一个特点就是有请求多,高频。分组交换通过共享物理线路来节省线路。
  2. 如果线路或路由器出错,分组交换适应力更强。如果某个线路或路由器坏掉,数据包找另一条路即可,不会像电路交换一样,整个线路都断掉。

分组交换会带来什么问题

每个方法都有自己的优点和缺点。用分组交换进行通信也会存在一些问题。想要更快更好的传输数据, 分组交换中需要研究的有这么几个问题。

  1. 延迟问题
  2. 缓存
  3. 路由器怎么转发数据包。
image.png

延迟

还是以这张图为例子
假设一个数据包从A-S1-S2-S4-B,那么会经历这么几个过程。

  1. 分组延迟。数据包从发出是需要时间的。从第一个bit传输开始计时,一直到最后一个bit开始传输,中间所经过的时间就是分组延迟。
    这个延迟的计算公式就是包的大小p除以链路的带宽r,t = p \ r

  2. 传输延迟。就是数据包在物理链路中传输所用的时间。
    这个延迟的计算公式就是物理链路的长度l除以光速c,信号的传输速度是光速,t = l \ c

  3. 排队延迟。包在发送过程中会经历过多个路由器,路由器收到包后会做一些判断处理,所以包会在路由器里面排队等待。包在路由器逗留的时间就是排队延迟。这个延迟根据情况不同而不同,用Q(t)来指代。

总的端到端延迟就是这三个延迟相加的总和。

image.png

图中公式的总时间t,就是总延迟。
这个延迟是有上下限的,下限就是假设没有排队延迟,每个路由器立刻转发数据包。
上限就是数据包在每个路由器经历了所有缓存,经历了每个路由器的最大排队延迟,把这些排队延迟加起来,再加上传输延迟和打包延迟。就是出延迟的上限。但是这个上限太大,没有什么意义。


缓存

这里要讨论的缓存有两个,一个是路由器的缓存,一个是接受方的缓存。

视频缓存

先来讲接受方的缓存。为什么需要缓存?以播放视频为例子,视频播放是以一个均匀的速度播放的。如果数据没接受完,那么就会播放到一半停下来。但是等到数据全部接受完再播放又要等很长时间。

最理想的状况是,视频以每秒1mb的速度播放,同时接受方每秒收到1mb以上的数据,这样就能无停顿一直播放。但是网络状况没这么理想,有时1秒能收到2mb数据,有时1秒可能只能收1kb的数据。所以必须要储存一定量的数据,在网速不好的时候,能播放储存的数据。在网速好的时候再存储数据。

用一张图来表示。

视频缓存

横轴是时间t。竖轴是接受的数据。

可以看到接受方接受数据是一个不规律的曲线。图中的Playback rete就是播放的曲线。如果我想能不卡顿的播放,那么我的播放曲线必须在接受数据曲线的右边,并且两个曲线不能有交点。如果有交点,就代表在交点的时刻,已经播放的数据量等于已经接受的数据量。

路由器缓存

研究路由器缓存的目的就要为了研究排队延迟。

首先看看几个问题。
1、为什么要缓存?没缓存有什么问题?
2、怎么设计缓存来解决

互联网的通信经常有突发性,可能会在短时间有好几个包到路由器,如果路由器没有缓存,那么来不及处理的包只能丢弃。加上缓存就能降低丢包率。

怎么设计缓存是一个进阶问题,涉及到对于网络通信动态过程的研究。在这里我们可以简单的认为缓存就是一个队列,先进先出。

而队列模型在处理网络上来的数据包时有几个特点。

  1. 提高突发性会提高延迟。所谓的突发性就是随机性。为什么会提高延迟?因为突发性会提高阻塞和丢包的概率,就会提高延迟。
  2. 提高确定性会减小延迟。如果每隔1s来一个数据包,那就可以说确定性提高了。如果能对数据包达到情况有一个预测,那么就可以做措施减少丢包的可能性。就能减小延迟。
  3. 在无丢包的情况下, L(平均队列长) = 𝜆(到达速率)* d(平均延迟)

路由器转发数据包(简介)

首先要明确的概念是,这里提的路由器不是狭义上的只负责转发IP数据包的路由器。这里的路由器是指的是转发数据包的设备,包括了转发以太网数据帧的交换机和转发IP数据包的路由。

数据包达到路由器后,在路由器发出去之前首先有做的就是寻址。寻址就是根据数据包里的目的地地址来决定发给哪一个和自己相邻的路由器。

路由器内部会有存一个地址表,路由器会对照着表来决定转发的下一个路由器。

说到这个地方,就需要区分交换机和路由,两个设备对应不同层,交换机对应链路层。路由对应IP层。链路层的数据帧用的地址是MAC地址。IP层对应的IP数据包用的地址是IP地址。现在很多路由器都是把交换机和路由的功能集合在了一起。我们可以理解为一个设备里运行着两个协议,处理数据有先后顺序。

连接图

如上图,数据包会先交给IP协议,封装在IP数据包里,然后交给以太网驱动协议,把IP数据包封装在以太网数据帧里发出。IP数据包封装时需要加入发送方和接受方的IP地址,以太网数据帧封装时需要加入发送方和接受方的MAC地址。如下图。
 


封装图

路由器收到数据包后。先交给链路层的以太网驱动程序,链路层会先检查数据包里的MAC地址是否和自己MAC地址相符,如果不符,路由表会在自己的以太网表中查找和自己相连的路由器是否有匹配的MAC地址,然后路由器会改写数据包的MAC地址然后转发给下一个路由器。

如果数据包的MAC地址和自己相符,那么以太网驱动程序会把数据包的以太网部分去除变成IP数据包,然后交给网络层的IP协议。IP协议会检查数据包的IP地址和设备自己的IP地址是否符合。如果符合,就可以认为这个数据包达到目的地。IP协议会把数据包的IP首部剥除后,根据数据包用的协议,交给更上一层。如果IP地址不符,那么路由器会在自己的路由表里按照一定规则寻找合适的下一站路由器。在这里要注意一点,链路层在转发数据包的时候,会改写数据包的MAC地址,但是IP协议在决定转发对象后并不会改写数据包里的IP地址。它会告诉链路层转发给哪个路由器,链路层会数据包改写加上对应的MAC地址。

也就是说一个数据包从目的地发出后,每过一站路由器,数据包的MAC地址都会变一次,数据包的MAC地址永远指向数据包的下一站目的地。但是数据包的IP地址是不会改变的。这样在最后到达目的地的时候,就能确定是否达到最终目的地。

路由器转发数据包的大致过程就是如此。在这里没有详细解说路由器在路由表中寻找匹配路由的详细过程。这个部分比较繁琐,会在之后的路由器详细剖析的文章里提到。在此处只需要了解路由器是在自己的路由表里寻找数据包的下一站目的地即可。


总结

在这篇文章中。我们了解什么是分组交换,分组交换相比电路交换的优点在哪,计算机网络选择分组交换作为基础的通信方式的原因。在确定了分组交换为基本通信手段后,我们研究了分组交换下的网络的基本问题。研究了延迟的影响和计算,缓存的作用,路由器转发数据包的过程。了解了这些问题后,我们已经对网络的通信过程有了一个基本认识。之后所有的研究都是建立在这些基础知识上的一些细节的研究。比如路由表怎么寻址,IP地址怎么设计,IP协议怎么纠错,以及更上一层的传输层的TCP和UDP协议的实现。不管这些协议细节怎么设计,整个网络都是建立在分组交换转发这个基础上。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,012评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,628评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,653评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,485评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,574评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,590评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,596评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,340评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,794评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,102评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,276评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,940评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,583评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,201评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,441评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,173评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,136评论 2 352

推荐阅读更多精彩内容

  • 第二章 物理层 频分复用:频分复用的用户在同样的时间占用不同的带宽资源(频率带宽) 时分复用:时分复用的用户在不同...
    PramaWells阅读 3,622评论 1 3
  • 网络层提供的两种服务 在计算机网络领域,网络层应该向运输层提供怎样的服务(面向连接还是无连接)曾引起了长期的争论,...
    srtianxia阅读 3,955评论 0 12
  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 13,060评论 6 174
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,052评论 0 8
  • 曾经的我,一度陷入迷茫,那个时候的我觉得我这辈子都完了,没有钱给家人买大房子住,没有能力让他们看到喜欢的东西时不...
    牛牛牛niuniu阅读 228评论 0 0