【Coursera】Technology :Fifth Week(1)

Store and Forward Networking

在长途连接中,路由的数量 取决于 最优路径(花费最少)。也就是说被地理条件所限制。
所以 Store and Forward Networking 的特性之一就是 较少的转发(sharing)。
在某一瞬间,某一条信息通过某一个连接(介于两个路由之间),其它的信息在路线上等待这个过程的完成。

Research Networks 1960-1980s

三个问题:

  • 如何 避免 在所有的结对计算机之间 进行直接的连接?
  • 如何 更高效的 转发信息?
  • 如何 动态地解决 运行中断(outages)?

在 1960-1980s,在Research Network(ARPANET)中 最终没有成型的创新 是 转变为packet Network。
首先,研究人员需要解决的是,如何在一条连接中,保证一条较长的信息 不会被堵塞(clog up)? 其次,如何动态地解决运行中断的问题?以及如何高效的转发packet?
这是一个持续了多于20年的 research project,科研人员们做出的最优雅的事情是 花费大量的时间舍弃原有的架构并重新进行设计。通过某种手段,他们能够看见产品的瑕疵和优点。
在20世纪七十年代的晚期,大约有100台电脑连接在ARPANET上,1978年1月4日,在 ARPANET Completion Report 上的插图中,我们能够看见它列举了当时 所有的 电脑。
工程师们花费了二十年的时间来完善的 高效的信息转发机制,它就是 Packet Switching

Packet Switching

挑战:在一个类似Store and Forward的简单方法中,将大的信息分成小的几块。
Break each message into packets
能够允许 从一个message分出来的 packets 经过不同的路径,到达目的地。即 动态地适应 使用的需要。
使用特殊用途的计算机:routers(路由器),用于 控制 网络的交通。

其中最为精华的部分:Break each message into packets.

复习的一个例子:发送者翔翔 发送一条 message 从 密歇根 到 洛杉矶。

原有Message:Hello there,have a nice day.
break into -> 
(1)Hello ther(1,fromaddress,toaddress)
(2)e, have a (2,fromaddress,toaddress)
(3)nice day. (3,fromaddress,toaddress)

这三个“小卡片”每一张都经过了不同的旅途,最终在不同的时间段无序的到达目的地。
收件人李鸣 并不知道这三张小卡片是怎么过来的(或者说 按照什么样的路径过来的 who cares?),他按照序列号重新组合了这三条信息。

所以,这个例子有助于我们理解 这些“小卡片” 是如何共享基础设施(指路由器们) 的 基础概念。
逐渐演变成了Shared Network 。

Shared Network

在 Store and Forward 时期 的 拥有磁盘驱动的 大型计算机 转变为 相对而言十分小的 具有 转递packets 简单目的 的计算机。
Shared Network 中 信息的短期存储 取代了 Store and Forward 中 信息的长期存储。
在 Shared Network 中,当一个 packet 进入,它只是简单的 寻找它 穿过Internet 的路径(经过一系列的路由器)。

比如有 在芝加哥大学的当地网络,和斯坦福大学的当地网络,它们向 Internet 按某路线发送它们的 packets。这些 packets 寻找它们穿过 Internet 的路径。可能也有私人的电脑接入该网络。
所以,Shared Network只关注packets,具有 不可信赖 的性质。路由器的理念一直延续了下来,例如现在使用的TCP/IP网络。

  • 因为 为了节省花费,和使得 地理上的连接 更短,数据通过 不同的路由器 进行转递
  • 穿越整个国家(美国),一般只需要经过十个路由器。
  • Network 设计者们,一直在 增加 和 移动 连接,使得他们创造的网络更加 “和谐”(tune)。

为了解决数据在网络中转递的一系列问题,简化解决方案,或者把解决方案分解成许多易于管理的小块,设计者们发明了 层次的网络模型

Layered Network Model

  • 层次的网络模型,使得原有设计网络的问题,分割成许多易于管理的小问题。
  • 最著名的层次模型:TCP/IP协议族。
  • 同样的,也有OSI七层模型(高层4层 加上 低层3层)。

想要解决的问题:使得数据的传递具有可靠性 可靠的穿越网络。把这个问题划分成四个模块,这些模块各自独立的工作,然后想出方法使得它们各自的解决方法相互影响相互作用。

Application Layer :Web,E-mail,File Transfer
------------------------------------------------
Transport Layer(TCP) :Reliable Connection
------------------------------------------------
InternetWork Layer(IP) :Unreliable Connection
------------------------------------------------
Link Layer(Ethernet,WIFI) :Physical Connection

所以,这种把大的 复杂的问题分解为 四个小的 易于操作的问题,有利于我们得到较优的解决方案。

当你把这些问题分解为四个小问题,交给四个层来解决的时候,你必须编写相应的文档来声明如何让这些层共同工作。这个文件就是 Internet Standards。

Internet Standards

这个为所有协议指定的标准是被一个组织发明的:Internet Engineering Task Forces (IETF).
这个标准的名字 叫做 RFCs(Request for Comments)。

这些许多工程师编写出来的文件,描述了大多数Internet 的成分是如何一起工作的。

回到 Layer Architecture

  • 物理层 和 Internet 层就像是卡车和火车,它们拉货物,然后把货物放到准确的位置上面去。这中间经过了许多步。
  • Transport 层 检查 这个卡车是否完成工作,并且根据需要重新装载货物。
  • 当数据在网络中传递的时候,在不同的路由器上可能使用的是不同的物理媒介。
  • 呃,比如,物理的线路,无线电,光纤,等等。
  • The Link is "one hop". -Is it up or down? Connected or not?
  • 非常狭窄的关注面,对于整个 Internet 没有认知。

数据链路层只关心 数据经过一个路由器(或者是一条物理线路 link)传递的过程。

所以在链路上,电压是怎么工作的?我们是如何在该层传递数据的?以及当有多台电脑共同使用它的时候,如何解决共享的问题?

数据链路层类似 一条link -从一台主机出来,连接到另外一台主机。这条link有可能是光纤,有可能很长也有可能很短。路由器从某条 link 上获取信息,然后再将信息递送到另外一条 link 上。
路由器的工作就像邮局一样:某个邮递员从你家获取了你的邮件,然后他把这些邮件放在通往集中地的卡车上,到达集中地之后,把这些信件放在一列火车上,送完别的地方。这些火车,卡车,邮递员就类比于我们的线路。
这些线路中并没有某一条线路至始至终都在传递数据,它们只是把数据往更远的地方传送了一段距离。

数据链路层不关心线路的材料是啥,它也不考虑是否连接的一端有web或者是否有其他的东西。

  • How does data get pushed onto a link?
  • How is the link shared?

普遍适用的连接技术:

  • Ethernet
  • WIFI
  • 现代的电缆
  • DSL(数字用户线路:以电话线为传输介质的传输技术组合)
  • 卫星
  • 光纤

许多物理的数据链路层的设备在出厂的时候就被厂商配备了地址。

  • Ethernet
  • WIFI

厂商 给这些数据链路层的设备 分配了连续的地址,然后被送往全球各地的中心。这些连续的数字 有利于 数据 穿过 同一条被共享的线路。

  • 物理地址有利于 在某一条 link 的另一端 系统识别出属于它的信息。
  • 信息所携带的物理地址在经过一条 link 之后就会发生改变。
  • 有时候像 WIFI 和 Wired Ethernet 的 link 被多台计算机所共用。

像 WIFI 一样,当你坐在家里享受 wifi 的时候,你在和别人共享 “空气” 这一媒介,你的设备通过 链路层的地址 来识别“空气”中的哪些信息发送往你的设备。

Sharing Nicely -Avoiding Chaos

  • CSMA/CD媒体接入方法,带冲突检测的 载波侦听 多路接入方法。避免了信息的混乱。
  • 为了避免断章取义的信息,系统们必须遵守规则(协议)。
  • 以太网(Ethernet)协议比较简单。

当我们准备发送数据报的时候,我们知道也许在某个地方,有其他的主机也想要发送数据报,所以首先我们要做的事情,就是侦听,等待直到链路上没有了动静,然后我们就开始发送信息,然后继续侦听发送的信息,当信息冲突的时候,它们所做的事情是返回。经过复杂无序的计算之后,返回数据报的数量是不一定的,保证冲突的时候,任意一台主机发送的数据报都不具有优先权,这是公平的。
当我们侦听到了信息拥塞和冲突,我们等待一些信息的返回,并在之后重新发送信息。

首先我们尽可能的避免了拥塞,但是一旦我们遇到了信息拥塞,我们就重新发送 被返回的信息。

2016/7/29

原文地址:https://www.cnblogs.com/qq952693358/p/5716263.html