Internet History, Technology and Security (Week5.1)

Week5

The Transport layer is built on the Internetwork layer and is what makes our network connections reliable.html

Technology: Internets and Packets

新年好!( ̄▽ ̄)git

coursera address服务器

Keywords: Packet, Shared Network, Layered Network Model, Link Layer, Ethernet, Bob Metcalfe网络

从本周开始,咱们终于完成了History部分,要转向Technology部分的讲解了。架构

回顾一下历史,上世纪60-80年代用的最多的仍是Store and Forward Networking网络(Week2的笔记)。其实仔细分析来讲这种网络没有太多的sharing的成分,只不过是循序渐进地输送一些信息。要如何解决一些诸如如何处理网络中断、如何分享连接、如何处理信息堵塞这样的问题?80年代的创新成果就是packet switch networkARPANET。由于涉及到了不少新想法,因此这项技术从研发到成熟花费了20年甚至更多的时间。更多细节能够到week2中去领略一番。app

ARPANET带领咱们进入一个新思路:Shared Network,数据的传送思路从由只有一个强大的电脑负责转发数据包,转换到了由多个很是小的电脑去专门负责把数据往下一个目的地运送,这就是路由器。和以往的长途传递不同,每一个路由器只负责很短的一段路,并且只作短时间存储,主要目的是往下一个路由器进行传送。另外,有一个核心思想就是把一大段信息分红许多个packets。例如密歇根大学的全部电脑、服务器组成一个当地网络,经过路由和packet switching 技术将想要发送出去的信息发送出去,信息会经由路由找到正确的道路到达目的地,就造成了通讯,也就是Internet。框架

Shared Network的基本原理着重于packets。hop的理念是依然存在的。信息从你的服务器中输出要跳跃到第一个路由器,而后不断在路由器之间hop、hop、hop……hop,就蕴含着不少的问题须要解决,为了简化解决方案,使其清晰、可管理,人们就想出了一个叫Layered Network Model(分层网络模型)的东西,就是相似于框架、骨架那样的东西,全部的东西都按照这个来展开。dom

And so, the problem of what data goes between here and here is you gotta solve a lot of problems, right? How to, all, all kinds of problems, and so, in order to simplify the solution or break the solution into simpler, more manageable parts. They came up with a layered network model. Now this is a cartoon and computer people love drawing cartoons and saying this is our architecture. This is our frame work. This is our approach. Sometimes they're helpful. Sometimes they're not helpful.编辑器

这个模型作的工做并非一下解决一个大问题,而是把许多的大问题分解成一个个的小问题。他们想解决的大问题好比要确保稳定地实现信息的传输,但若是按照这四部分分解,各个攻破。解决了全部小问题,大的问题也就能实现,思路也更加清晰。工具

有时面对一个极其复杂困难的问题,将其分解成小问题有助于咱们分析思路,提出更好地解决方法。不过如何分解问题也是一种艺术,因此就存在不止一种网络模型,不只存在咱们如今提到的这种四层分层,还有OSI(Open System Interconnection model),它有七层。

若是想要按照Layered Network Model的四层模型去分解问题,那么就须要去设计协议文档,document来解决一些问题。例如这四层究竟是如何定义的?各自掌管哪些方面的问题?互相之间如何共同协做?不一样的计算机之间如何工做?路由器如何工做?等等等等。协议文件就是解决互联网中全部组成部件如何共同协做的问题。

图片。

接下来就看看协议的内容到底是什么样。

不要忘了,咱们创建这种四层模式的初衷是为了简化问题。因此在第一层Link Layer链路层的解决问题重点仍是在于如何在物理层面上实现传输数据。虽然这个问题可能很复杂,但在这个Link Layer上,咱们只需考虑这个问题,不须要考虑别的,这也是分层考虑的好处。

信息传送到目的地可能须要通过不少种的传输介质:有线、无线传输、光缆……等等。不过一段光缆,长40英里也好,长40英尺也好,都是一个link。一个link就是一个hop,这就须要路由器,路由器从一个link中把数据拉下来而后推向下一个link。打比方来讲吧,人们寄信,首先邮局从你家的邮箱里把信件拉走,这时你的信多是放在邮递员的自行车上,后来你的信上了卡车、而后又上了火车、……这就是一个个link。一个个邮递员、卡车、火车就是Link Layer的组成部分。这里面很重要的一点就是每一个邮递员、或者每种交通工具并非就把你的信直接送到收信人手中,而信只是在每一个环节都只是向目的地更加靠近了。这就是Link Layer的思路。

Each person or semi truck is not taking it all the way, they're just getting a little farther. So that's the link layer So the link layer doesn't worry about the rest of this stuff.

Ethernet就是一种应用极其普遍的Link Layer。硬件制造商在制造带有以太网或者无线适配器的电子器件时,都会带有一系列的字符去标识这些硬件。这一列字符的特征是六组两两结合的字符,包含字母和数字。这其实属于一种物理地址,硬件之间就是经过这个来识别的。举个例子,在一个房间里,有一个wifi环境下可能有不少台电脑在共享同一片空气。咱们必须解决如何共享的问题,物理地址就是解决方法——在packet中用物理地址标记发送方和目的地。回到刚才那个例子,在一个WiFi环境下,电脑A想和电脑B通讯,电脑C在接收到他俩之间的通讯时,能经过物理地址知道本身不属于这场通讯。这样Shared Network
就能正常工做。

Link Layer要解决的另外一个很重要的问题是若是出现了冲突该怎么解决?老师说了数据传输has a lot to do with courtesy。比如若是全部司机们文明行车,红灯停绿灯行,那么交通就不会乱,不过理想是美好的,现实是残酷的,总有那么些人不文明行车,会致使一些混乱的发生。前面提到Ethernet是一个很不错的Link layer。Ethernet解决这个问题的方案叫作Carrier Sense Media Access with Collision Detection,虽然总的我不太清楚怎么翻译,但能看到Collision,也就知道是发生冲突了。Packets若是遇到了冲突,那么势必会下降网络的传输速度。若是一个Link Layer不能很好的解决这个问题,那必定不是个好的Link Layer。

下面仔细的介绍一下Ethernet的方案。在咱们要传输数据时,先Listen。先听听信道里面有没有东西在传输,若是有咱们就等,若是没有咱们再开始传输。若是已经有人在占用了,咱们就要等待他完成他的传输。传完以后,咱们还要listen,若是能清晰地听到咱们的数据,就说明传输得不错,但若是不能听见,这就说明遇到了两台电脑同时传输了信息,致使了冲突的问题。因此两台电脑都得各退一步,不过这时就须要用到有点儿复杂的随机数运算,两台电脑退的步数不是相同的,这样就不会退步了以后再传输结果再冲突了。不得不说,很是文明啊。在社会中,也是要按照规则来办事效率是最高的。

接下来咱们就去接触一下以太网的发明者Bob Metcalfe,让他告诉咱们一些以太网的故事。

Bob Metcalfe - The Ethernet Story

继承和发展,随机重传过程

Bob Metcalfe原先是在Xerox Palo Alto Research Center工做,研究的内容是我的计算机(PC)上面的网络方面的架构。当时对packet switching和ARPANET的研究已经基本完成。Bob他们设计出来了第一架镭射打印机,名字是Ears(为何打印机的名字叫耳朵。。),不过他说这个是否是第一个仍是有争议的。为了尽量地提升这台打印机的效率,解决其与计算机的链接问题,逐渐转变了Bob的工做方向。在Bob以前有一个研究成果叫作Signet,是由Charles Simony开发的,后来Bob接手了这份工做。Charles Simony后来去开发了一个文本编辑器叫作Bravo,也就是后来大名鼎鼎的Microsoft Office 系列,也让他成为了亿万富翁。BTW,Signet的全称是Simonyi's Infinitely Glorious Network。(西蒙尼の无限荣光网,这名字可真tm够中二的……)不过Signet已经有不少理念和今天的LAN(Local Area Network,局域网)很相近,能够说是一个很超前的设计。

在夏威夷大学,Bob开始研究一个关于LAN中如何协调分配的问题,有一个成果就是Aloha Net,它解决了不少packet分配方面的问题。例如在夏威夷岛上有许多的收音机,如何让它们共享频道?夏威夷大学有许多的终端,如何在互相通信时保持协调?以及涉及到上文提到的随机重传过程的原理(randomized retransmission procedure)。

Manchester coding

BTW,Bob提到他的愿景是只有一条电缆,而不是16条或者32条甚至更多,他的办公室因为网线太多,被称为老鼠窝(rats’ nest)因此要为共享网络设计原理。Bob说这里有一个关于硬件的故事和一个关于软件的故事,他本身是偏软件的。不过有一天,他去买了一千米的网线回来,在一端链接上信号脉冲发送器,并在另外一端连上示波器观察信号的输出。他发现当他在这一段发送方波时,另外一端出来的不是方波而是相似于正弦波,有上下缓慢起伏的波形。不过,Bob放上了一个digital gate以后,就又能得到方形波了。(数字、门,我想到了逻辑电路,不过我还没学。。)也就是说,Bob发现了这种恢复波形的方法,也就是说能进行传输了。

Bob他们把这个方波称为Manchester,并在传输时进行编码,叫作Manchester coding, 由于不太懂,因此看了一下wiki应该是和逻辑电路有关,并且以前我也了解过CPU时钟频率什么的,不过不太懂,因此贴下英文原文和wiki地址吧。

And the encoding was also simple, it was Manchester coding. Meaning that for each bit the first half of the bit would be the complement of the bit. And the second half of the bit would be the bit. So you would have a transition in the middle of each bit cell, which is a very simple modulation scheme.。。。clock the shift register into the memory, and then collect a packet that way.

Manchester code ensures frequent line voltage transitions, directly proportional to the clock rate; this helps clock recovery.
The DC component of the encoded signal is not dependent on the data and therefore carries no information, allowing the signal to be conveyed conveniently by media (e.g., Ethernet)

编码方式十分简单,每一个bit的前一半只是起补充做用,后一半的bit才是真正起传输做用的。wiki中feature说明Manchester coding确保线电压转换频繁,时钟频率成正比,这有助于时钟恢复。我没打全看懂,但如今知识储备还不够,以后回看的时候应该能更有收获。

Manchester Coding的好处就是传输数据是连续的过程。在探测传输有无冲突时,不须要长时间的耗费,只须要花费短期便可知道是否有信息正在传输。

cyclic redundancy checksum

Ethernet和Aloha network(以前夏威夷大学研发的一种技术)相比,有一个优点,就是前者能够检测出是否有信息正在被传输,能够避免传输冲突。

第二个特色是彻底是数字信号了,而不是模拟信号。计算机科学家在研究这个东西时,和无线电专业的人士有不少合做。当时为了研究这个,浪费了大量的带宽。

So that was the second feature. So it was really a digital signal. It was really a digital signal, it wasn't a modulated signal in any way.

Bob也提到了,每一个packet携带着两个各8位的物理地址,这与Aloha Network相比也有改进,后者只含一个地址。在packet的后面,还加上了cyclic redundancy checksum (循环冗余校验)技术,wiki页面,这项技术普遍应用于硬件设计方面,可以检测出信息数据是否被损坏。若是发生了信息传递的冲突,那么就会有信息垃圾堆积在信道里,后续要传递的信息也会发生堵塞。Bob作的工做就是把这些无用的信息扔掉。

前面说过,Bob的方向偏软件,不是很擅长硬件的操做。他认识了一我的,叫作David Boggs,此人擅长硬件,后来和Bob一块儿合做,是Ethernet的另外一位创造者。

前面提到,Bob不想让电缆链接成rat nest那样杂乱。因而他们只设一条主路,每当有新的电脑要链接进入时,只是增长一个分支(tap)。Bob也不但愿,每次增长分支会致使网速降低。因此后来他们建立了gerald tap,解决了这个问题。

以太网在一开始就有2.94MB/S的速度,不过在 Xerox 时,很快发展到了20BM/S。在802标准中,规定为10MB/S。

小记

此次内容挺多的,就分红两部分吧。春节前几天出去玩,因此就耽误了点进度。祝你们新春快乐。

相关文章
相关标签/搜索