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.web

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?app

  • Ports

2.What are the rules for talking with application?ide

  • Protocols

Ports

Port,端口。在網絡協議體系中,端口表明通信在操做系統中的一個端點。ui

端口對於TCP來講,就好像電話號碼以後的擴展號碼。(比方說10010以後1是查話費、2是定套餐之類的,這樣比喻是否合適...我也不是太肯定。。。)因此說,端口號必定是依附於IP地址的。咱們知道,IP地址是從普遍到特定,前面先是表明LAN,後面表明特定服務器,再後面跟着端口號,端口就是更一步的細分,告訴咱們到底使用什麼Application。this

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的設想就是:專一於數據自己,而不是來源。

相關文章
相關標籤/搜索