【Internet History, Technology, and Security】第六讲心得

  结合第五周的课程,依照TCP/IP网络架构从下往上,这周主要讲解的是传输层。

Transport Layer

  如果说前面都只是IP层的内容,那从传输层开始,就是TCP层面的内容了,TCP层的目的是补偿IP层中可能出现的错误,并最大限度地利用可用资源。TCP/IP组网是为了有效地共享,所以我们需要知道我们的网络是快还是慢,这就是我们用TCP层要解决的问题。底层网络的速度有多快,可靠性有多高,如果出现问题,我们应该如何处理。因此,TCP/IP协议的核心思想就是在发送数据时,将数据分成多个包,然后将每个包发送出去。然后我们保留它们,直到它们得到另一边的承认,然后我们才把它们扔掉。在某些情况下,如果数据包丢失,则可以再次发送,直到最终在目的系统中确认为止。这基本上就是TCP所做的,就是它判断出哪些数据包在整个互联网层都存在,哪些数据包还没有到达。

  一个简单的例子:一个数据报被分成五片,编号分别是:100,200,300,400,500。首先 我们发送 100,200,300的三片数据,100,300到达了目的地,但200在途中销毁。过了一段时间,接收端会发送消息告诉发送端它缺少了编号200的信息,这样发送端就能推测出100已经成功发出,但200需要重新发送。重新发送完200并收到回执后,发送端就能知道300已经发送成功,那这次应该从400开始,以此类推,直到消息发送完毕。

  我们可以在单个连接中很容易地实现上面的操作,但是在网络中存在着很多的路由器,每台路由器搭载的PC合计可能会有上十亿,我们需要让数据的传输具有可靠性,因此在每次发送的时候,都需要在本地计算机上先存储一个副本。

  从理论上看这是一个很庞大的工程,所以在20世纪80年代末,有预言说互联网将会消亡也就不足为奇了。那时候有一群人觉得学者不够聪明,不能建立一个网络,而且随着NSF网络的发展,越来越多的计算机在后台连接起来,主干的速度太慢了,以至于开始出现故障。看起来,所有的计算机供应商都说学者们不能建立一个强大的、可扩展的网络的预言将会是真的。

Van Jacobson - Slow Start Algorithm

  预言终究没有成真,因为在1987年,网络严重崩溃的时候,市面上的计算机都安装了VanJacobson补丁,它使得网络变得更好,同时这也是最后一次出现整个互联网崩溃的情况。人们把它命名为Van Jacobson协议。但有趣的是,他本人不喜欢这个称呼,因为他是一个害羞和谦逊的人。但无论如何,事实是不会改变的,在80年代末的那一刻,他发明了慢启动算法,拯救了网络。事实上,包括在这堂课的录制过程中,这项技术也在被使用着。

  说起Van去研究慢启动算法的原因,就要从最早的校园以太网说起,那时候有许多校园以太网,你可以通过电缆使它成为一个更大的网络,而那时NSF宣布用56kb的电缆把那些校园网络连在一起,形成一个巨大的网络。之前不能交谈的人突然可以通过网络交谈了,人们还发电子邮件,移动巨大的文件,人人都都对这项技术感到兴奋,但是,任何一个校园都会使网络上千倍地超载,会让网络丢弃很多分组。

  那时候,Van在Lawrence Berkeley实验室做研究员,那是80年代中期,每一门课都有一个消息群,像一个小新闻组,所有的作业会放到网上。Van试着从LBL的办公室下载课程材料 到Berkeley Evans Hall的一个机器上,但他惊讶地发现,网络的吞吐量居然为零,大概每十分钟才有一个分组,于是他去和Mike Karels探讨这个问题,结果无巧不成书, Mike Karels领导了开发Berkeley Unix的BSD团队也收到了从全国各地发来的关于这个问题的报告,两人一拍即合,决定一起研究来解决这个麻烦。

  当时最简单运行TCP/IP的方法是启动Berkeley Unix,因为它内嵌了一个ARPA资助的非常好的应用,但是这个程序的性能十分糟糕,在进行小规模测试的时候崩溃了,Van他们努力了几个月来找到问题出在哪,但却没有突破口,这时候Van认为这是因为不了解线路是怎样工作的,如果能明白它的工作原理,那自然也就有相应的处理方法,于是他们将关注点转移到“协议是如何处理带宽变化”上。

  传输消息时,可以将他们看成一个分组,如果你把这些分组压入带宽,它会立即扩散出去,最终会到达一个接收器,这个接收器会把每一个数据分组变成一个ACK,所以你得到了很多ACK,而这些ACK又会返回到发送端。这些ACK像某种时钟一样告诉发送端什么是安全的时刻,来发送每一个新分组,它们总是根据网络中最慢的那个时间点被间隔开的。关键的问题是如何用最快的速度把他们排序而没有浪费,Van在观察之后,发现TCP在运行的时候其实是非常完美的,但是如果将它突然启动的时候,它的某个网关会很容易进入饱和状态,这时候发送消息就会不断地进入丢失状态;但如果你逐步将其启动的话,你就不会过载,因为你会得到一个时钟(ACK)来控制TCP数据报输出队列,以便控制缓存

  而如何让这种机制植入到全球的TCP/IP中的呢?Van使用了一个比较偏门的办法,他让组内的资深内核黑客编写了一个程序,这个程序会获得用户数据报,并发生内核错误,他们把所有这些程序打包 放在TCP/IP的邮件列表上,很多人会去下载试用,于是程序崩溃,Van就获取他们的反馈信息,并将其修复,再崩溃,又修复,如此循环,最终生成了一个不会发生内核错误的版本。

The Domain Name System

  域命名系统(DNS)有点类似于处于互联网和传输层之间,或互联网和链路层之间的某个地方,当然, 它肯定不属于应用层,也不属于链路层,虽然域名系统使用到了链路层,但它只是添加到这一层的辅助协议。

  计算机使用IP地址,所以路由器实际并不知道域名,它只是简单地根据IP地址移动数据,然而数字地址对于人们来说是很难记住的,随着网络越来越发达,接入的计算机与服务器也越来越多,复杂的IP地址让人应接不暇,所以域名系统的概念被发明了出来,使用这些可见的名称,我们就可以不为人察觉地切换其对应的IP地址,因此,域名系统就像互联网的地址簿,它是一个大而快速的分布式数据库。域名系统使用缓存,即使部分网络出现故障,本地的域名解析速度仍会很快。

  随着进度的加深,讲课的内容也开始慢慢贴近生活,相对于之前几讲理解起来会容易一些。

原文地址:https://www.cnblogs.com/ptolemy/p/11105095.html

时间: 2024-09-29 17:39:31

【Internet History, Technology, and Security】第六讲心得的相关文章

Internet History, Technology and Security (Week 2)

Week 2 History: The First Internet - NSFNet Welcome to week 2! This week, we'll be covering the history of the first internet: NSFnet. In the 1960s and 1970s, there was a great deal of research done to build the first wide-area packet switched networ

【Internet History, Technology, and Security】第七讲心得

这一讲来到了应用层,同时也是协议体系中的顶层. Application Layer 其实从之前的课程中可以发现,每一个层次都会依赖它的下一层,应用层也一样,它将会应用TCP层的服务,TCP层的服务为应用层提供了可靠.有序的端到端数据流.可以从一台电脑中一个应用程序开始,到另一台电脑的应用中结束并可提供双向交流.在我们得到了这样的框架后,我们应该怎么去使用它?在日常通信中,我们该如何请求数据? 课程中的图给出了很好的答案,左端表示客户端,而右端则为服务端,客户端给我们信息,而服务器负责给客户端提供

【Internet History, Technology, and Security】第八讲心得

结束了网络协议的介绍后,本周要介绍的是网络安全. Security Introduction 网络安全其实离我们并不遥远,这里有个简单的例子.假设有两个人叫做爱丽丝(Alice)和鲍勃(Bob),也许是因为异地的原因,他们希望在网络上交流一些比较私密的信息,但这时候,可能会存在着一个心怀不轨的人,我们把他称之为C.爱丽丝和鲍勃希望自己发送的一些信息不会被打扰,然而C就在那里偷听,又或是有别的不轨的企图.如何让A与B安全的交流?这就是网络安全要做的事. 这个简单的例子应该可以让你明白安全的重要性,

Internet History,Technology,and Security -Technology: Application Protocols(Week7)

Week7 Technology: Application Protocols This week, we’ll be covering application protocols. With reliable “pipes” available from the Transport layer, we can build applications like web browsers, file transfer applications, or email clients and server

Internet History, Technology and Security (Week 4)

Week 4 History: Commercialization and Growth We are now moving into Week 4! This week, we will be covering commercialization and growth. The late 1990's saw the web and Internet used increasingly to revolutionize how business was done. Companies like

Internet History, Technology and Security (Week 7)

Week 7 Technology: Application Protocols Welcome to Week 7 of IHTS. This week has less material than other weeks. I like to think of it as a "seventh inning stretch" - where you get a little breather. This week wraps up the three weeks of "

Internet History,Technology,and Security -Security: Encrypting and Signing(Week8)

Week 8 Security: Encrypting and Signing This week we start two weeks of Internet Security. It is a little technical but don't worry - we stay at a very high level and I am confident that if you are still keeping up with the class that you will enjoy

Internet History, Technology and Security (Week 3)

Week 3 History: The Web Makes it Easy to Use Welcome to week 3! This is our fourth and final week of History where we make the connection from those early innovations of the modern Internet we are using for this class. Up next we move into looking at

Internet History, Technology, and Security(week8)——Security: Encrypting and Signing

Hiding Date from Ohters Security Introduction Alice and Bob是密码学.博弈论.物理学等领域中的通用角色之一.Alice(代表A)和Bob(代表B)一般是形容好人的,用来描述通讯双方.通讯中也会出现一些不怀好意的人(People with bad intent),比如窃听者(Eve),用E代表. Security is Always a Tradeoff,安全总是一种充满妥协的权衡.对于安全这回事,几乎不存在所谓的Perfect Secur