Internet History, Technology and Security (Week7)

Week7

With reliable "pipes" available from the Transport layer, we can build applications like web browsers, file transfer applications, or email clients and servers.

Technology: Application Protocols

coursera address

Layer 4: Applications

Keywords: Application Layer, Ports, Application Protocols, HTTP, Internet Standards, Content Centered Networking

Application Layer

在已有的link layer、Internet Protocol layer、Transport layer的基础之上,我们不再考虑底部复杂的机制,只关心TCP/IP带给我们的坚固的“水管”,能用来干些什么。这就是第四层,应用层,Application Layer。

在上图中,两侧都有Application方框。一般来说,一侧代表用户,另一侧代表服务器。用户是经常向服务器发出各种请求(request)的,然后服务器就负责对请求进行回应。

应用层解决的实例:
- Mail
- World Wide Web(万维网)
- Stream Kitty videos

Application Layer有两个基本问题:

1.Which application gets the data?

  • Ports

2.What are the rules for talking with application?

  • Protocols

Ports

Port,端口。在网络协议体系中,端口代表通讯在操作系统中的一个端点。

端口对于TCP来说,就好像电话号码之后的扩展号码。(比方说10010之后1是查话费、2是定套餐之类的,这样比喻是否合适...我也不是太确定。。。)所以说,端口号一定是依附于IP地址的。我们知道,IP地址是从广泛到特定,前面先是代表LAN,后面代表特定服务器,再后面跟着端口号,端口就是更一步的细分,告诉我们到底使用什么Application。

Ports and Connection

例如:服务器 www.umich.edu,IP地址为74.208.28.177。有很多的用户在访问这个服务器。在服务器上,有各种各样的服务,例如发送邮件、个人邮箱、登录、网页浏览等等。不同的端口号对应不同的服务,例如下图中接受邮件是由端口25来完成的;登录是端口25负责;浏览安全 or 不安全的网页是通过端口443 or 80,个人邮箱是由端口109和110负责。用户的电脑不只是连接到IP地址就停止,而是连到IP地址里的特定端口,使用特定服务。

下面是一些常见的TCP Ports:

Application Protocols

已经连接到特定端口了,我们现在需要知道如何与它们进行交流和信息交换。负责这项工作的就是Application Protocols,它是rules for conversation。

可以着重了解一下万维网(World Wide Web),是最流行的一个应用层实例,设计优雅,非常简单,也很容易理解。

HTTP - Hypertext Transport Protocol

HTTP,超文本传输协议,是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。
world wide web的client,也就是众所周知的浏览器,就是使用HTTP协议来进行通讯。

对于统一资源定位符URL,协议里就规定了具体它是如何工作的,原理非常简单,就是HTTP request response cycle

当鼠标按到URL链接,浏览器就向服务器提出请求(HTTP request),随后服务器进行回应(HTTP response),回应的是HTML文本,然后客户的浏览器基于这些HTML文本显示网页(display)。

cycle流程就是click、(connection)request、response、display。

Internet Standards

Internet Standards,是在计互联网工程中的一个规定规范标准的技术和方法。是由IETF,(Internet Engineering Task Force,互联网工程任务组)制定的。如果说,你要写一个浏览器,那么你就应该去看看这个东西。

Application Layer Summary

应用层,基于底部的三层,不考虑底部技术细节,把它们抽象一个简单的管子,连通客户和服务器。

应用层是一个体量丰富的层次,在这一层就有许许多多的应用了。我们使用端口号,这样我们就可以连接到同一服务器上面的不同服务。


The Amazing Internet!!

介绍完Application Layer,我们也讲完了四层模型,到达了这个体系架构的最高点。在Link Layer,我们讨论过无线、有线、以太网。在第二层Internet Protocol,数据经过多个hop最终传达到目标网络,虽然有一点点不稳定可靠。TCP层在需要时会让数据不断重传。而Application Layer就是我们用这些网络去做的实事。

网络服务器的数量,从1969年的6台,在2011年飙升至十亿。最让人印象深刻的是,很多原理来自于七八十年代的研究工作,但依然沿用至今。由6台服务器设计而来的网络架构思想,在经过这么多年之后,在十亿台服务器上,还能保持基本相同的模式,正常工作,稳定运行。

现在重新看看整个网络,它看上去几乎像一个活生生的生物,有神经、有血管、有脉搏,而不是一个死气沉沉的东西。

数以百万计的电脑。
成千上万的路由器。
数以百万计的同步连接。
每秒数万亿字节的数据移动到世界各地。
而且它完美地运行着。

You can think of it as like, the largest, engi-collective, engineering thing that we've done together as humanity, we built this. It's all one thing, and yet it's so many different pieces. And we just kind of keep, gluing them together, and gluing more things on more things. And it was, it really was created almost like life itself. It's very organic. It's designed to heal itself, rather than be perfect. Because things that try to be perfect are fragile, and they break too easily. But things that are designed to heal, can heal. And you're never perfectly correct. You're never all the way up, and you're never all the way down. And so that's what's interesting about the internet.

你可以想想:有史以来,人类共同完成的,最大的工程集合——互联网,凝结了无数人的汗水和智慧结晶。可以把它看成一个简单的东西,但是其中是由很多不同的小件组合而来的。我们一直做的工作就是把它们粘合在一起,不断增加新的功能。创建它,真的像是被赋予了生命。我们为它设计了自愈能力,而不是追求完美。因为追求完美的事物,本身就是脆弱的,太容易被打破。让互联网拥有自愈能力,那么就能做到不断地自己解决其中的一些问题。你不会一路一帆风顺,也同样不会举步维艰。这就是,有趣的互联网。

——虽然是渣翻译,但我觉得,老师说的太好了!


Van Jacobson - Content Centered Networking

这是Van对在不久的将来,互联网发展的一个设想——Content Centered Networking。

Van认为,我们对电脑上的网络系统的构建,源自于电话系统。人们的一些想法,例如packet switching、IP layer,使得网络不等同于电话线,很成功,也很伟大,是让互联网成功的原因。我们眼光不再着重于wire上,而是information in the wires。

但是,我们把以信息为中心的web模型和以把主机为中心的TCP/IP模型结合起来,这在以后可能会面临很大的问题。

这些东西是在90年代到二十一世纪初才有的,当时还没有关于让电脑“交流”的模型。为了让电脑“交流”,人们制定协议来让电脑“交流”。在协议里,我们的做法是:给information取名字

Van:不要简单的认为web只是TCP/IP协议上的一层覆盖物而已,虽然TCP/IP协议是如今web所依赖而运行的。(我觉得讲的很不错,互联网从来就没说自己是非常完美的)我们要想想,我们做的百分之99的工作只是web-like stuff,只是附加,而不是真正的web。有没有一种模型能让我们达到现如今同样的地步,但更加着重于packet,也就是信息本身呢?我们能不能更加着重于“交流”的本意,而不是去制造一层“交流之上的覆盖物”?

比方说,如果你制作了一个影片并把它放到YouTube上,从实质上来说,你做的事情差不多相当于“lie to the Network”,因为TCP/IP协议认为location是由IP地址决定的。但实际上,不要简单的认为,这只是一个地址,其实已经遍布全球了。

就是URL、IP地址、端口号、等等这些东西。比如我访问Amazon,我是通过Amazon的域名,然后浏览器通过这个访问web服务器,服务器就返回一个“这个名字所代表的东西”。虽然通过URL等等这些东西,你能够找到你想要的“信息”,但URL这些东西本身不是信息,而是“信息的名字”。

依据上面的论述,Van指出,实质上是“人”在网络上创造内容,使用内容,消费内容。我们能不能够对现有的网络构架重构,让其基础设施专注于更加低的层次——信息本身、内容本身。这就是他想的Contene Centered Networking,Van的设想就是:专注于数据本身,而不是来源。

posted @ 2017-02-03 11:57  畅畅1  阅读(298)  评论(0编辑  收藏  举报