"范老濕從不會計算機網絡"

嘛。。。沒什么可說的Orz既然上次開了SQL的坑,這次就說說計算機網絡好了(之前的坑快去填啊喂!)Orz那么名字也延續上次的嗯。“范老濕從不會計算機網絡”,參考書籍是James F. Kurose和Keith W. Ross的《計算機網絡:自頂向下方法》。

說到網絡就不得不說TCP/IP協議,即傳輸控制協議(Transmission Control Protocol)和網際協議(Internet Protocol)。我們也知道TCP/IP協議分為五層,那么就一層一層說吧。

一、應用層

應用層,顧名思義,和網絡應用的原理與實現有關。我們在這一章中主要會了解Web、電子郵件、DNS和對等郵件分發等網絡應用。同時,我們也會接觸一些TCP/UDP的網絡應用開發與運行。Socket這個詞你可能并不陌生,它就可以用來實現一些客戶端——服務端應用程序。

1.1原理

1.1.1 網絡應用程序體系結構

主要分兩種:客戶端——服務端體系結構(client-server architecture)和P2P體系結構(Peer to Peer architecture)。

客戶端——服務端體系結構中,用于產生請求(request)的被稱為客戶端(client),用于處理請求,產生響應(response)的被稱為服務端。例如用戶在瀏覽器中點擊了一個鏈接,即向服務器請求了一個頁面;web服務器接收到請求后,返回所請求的對象作為相應。
客戶端——服務端體系結構有兩個特點:

  • 客戶端之間不直接通信;
  • 服務端具有固定、周知的地址(被稱為IP地址)。
    按照常識,如果客戶端請求過多,服務端必然不堪重負。因此,一些壓力比較大的網絡服務常常在全球各地建立數據中心,既分散了壓力,又加快了不同地區的訪問速度。

而P2P體系結構對于數據中心的專用服務器依賴很小,或者說沒有依賴;相反,應用程序在間斷連接的主機對之間直接通信。這些主機對之前被稱為對等方。這些對等方也不為服務提供商所有,而是臺式機、筆記本、手機等個人設備。P2P體系結構最顯著的優點就是它的自擴展性(self-scalability),即在一個P2P文件共享服務中,每個對等方都由于請求產生工作量, 但是每個對等方也向其他對等方分發文件,從而提高了整個系統的服務能力。
而P2P體系結構也面臨三大挑戰:

  • ISP友好:由于ISP的本地優化,下載速度一般比上傳速度要小得多,從而影響了系統整體性能;
  • 安全性:由于P2P的高度分布性,P2P應用會給安全帶來挑戰;
  • 激勵:如何說服用戶為P2P應用提供存儲、帶寬、計算等資源。
1.1.2 進程通信

我們都知道,在操作系統中,進行通信的實際上是進程(process)。兩個不同端系統上的進程通過報文(message)相互通信。
對于每一對通信進程,我們通常將這兩個進程之一標示為客戶端(client),而另一個標示為服務端(server)。對于P2P文件共享系統中,一個進程可以既上傳文件,又下載文件;但是對于某一個通信場景,仍可以將一個進程表示為客戶端,一個進程標示為服務端,定義如下:

  • 在給定的一對進程之間的通信會話場景中,發起通信的進程被標識為客戶端,在會話開始時等待聯系的進程是服務端

進程之間通過socket作為API發送或者接收報文,通過IP地址和端口號來尋址。IP地址來確定主機,而端口號用來標識不同的服務。如web服務器用80端口,郵件服務器進程用25端口,ssh服務用22端口等等。

1.1.3 可供應用程序使用的運輸服務

對于服務來說,必然面對各種各樣的需求。衡量一個需求通常有以下幾個維度:

  • 可靠數據傳輸
    例如電子郵件、文件傳輸、遠程主機訪問等應用,數據丟失可能導致災難性的后果。確保數據正確、完全的傳輸的數據交付服務被稱為可靠數據傳輸
    相對的,也存在容忍丟失的應用,如民用交談式音頻/視頻等。
  • 吞吐量
    在一些網絡應用,如流媒體播放、大規模分布式計算中,如果處理不好的話,網絡帶寬可能成為影響整體系統性能的短板。具有數據吞吐量要求的應用被稱為帶寬敏感的應用。而彈性應用能根據情況或多或少地利用可供使用的吞吐量,如電子郵件、文件傳輸、web傳送等。
  • 定時
    運輸層協議也能提供定時保證。在一些線上交互場景,如網絡游戲、網絡電話會議等場合,若不能保證報文在一定時間內(如100ms)到達,則可能出現卡頓的情況。
  • 安全性
    主要指防止在傳送過程中被第三方抓包兒導致的信息泄漏。可采取加密等措施。
1.1.4 因特網提供的的運輸服務

主要是TCP和UDP兩種。
TCP服務模型包括面向連接的服務和可靠數據傳輸服務。

  • 面向連接的服務:在應用層報文開始流動之前,TCP讓客戶端和服務端互相交換運輸曾控制信息,即“握手”。在這個階段后,一個TCP連接就在兩個進程的socket之前建立了。TCP連接是全雙工的,連接雙方的進程可以在此連接上同時進行報文的收發。應用程序結束報文連接后,必須拆除該連接;
  • 可靠的數據傳輸服務:通信進程能夠通過TCP,無差錯,按適當順序交付所有發送的數據。

TCP協議還具有擁塞控制機制。

為了解決傳送過程中的安全問題,SSL(Secure Socket Layer)技術將TCP“升級”,有自己的API,但是SSL不是同TCP、UDP同一層次的傳輸協議,而是對TCP的“加強”。

UDP是一種不提供不必要服務的輕量級運輸協議。UDP是無連接的,沒沒有握手過程。UDP協議提供一種不可靠數據傳送服務,即不保證報文到達接收進程,也不保證到達順序。
UDP協議也不具有擁塞控制機制。

然而,目前任何一種協議都無法提供定時或帶寬保證。

1.1.5 應用層協議

應用層協議主要解決報文的結構的定義,例如:

  • 交換的報文類型,例如請求報文和響應報文;
  • 各種報文類型的語法,即報文中字段及其描述方式;
  • 字段的定義;
  • 一個進程何時以及如何發送報文,對報文進行響應的規則。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,732評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,214評論 3 426
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,781評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,588評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,315評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,699評論 1 327
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,698評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,882評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,441評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,189評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,388評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,933評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,613評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,023評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,310評論 1 293
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,112評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,334評論 2 377

推薦閱讀更多精彩內容

  • 本書結構是自頂向下的,所以請按下列順序閱讀: 1.計算機網絡自頂向下--應用層2.計算機網絡自頂向下--運輸層3....
    牛富貴兒閱讀 2,835評論 0 3
  • 1. 基礎知識 1.1 3種常見的計算機體系結構劃分 OSI分層(7層):物理層、數據鏈路層、網絡層、傳輸層、會話...
    Mr希靈閱讀 19,929評論 6 120
  • 網絡概念第一天 兩臺電腦怎么通過網絡傳輸數據?怎樣才能知道傳輸的是數據?誰摸過網線? 看電影,怎么看的?通過電流,...
    小吖朱閱讀 1,574評論 0 1
  • 【計算機網絡】傳輸層 傳輸層協議概述 傳輸層協議為運行在不同host上的進程提供了一種邏輯通信機制。使得端到端不需...
    666真666閱讀 2,044評論 0 4
  • 問君, 可曾相知? 可曾相思? 君若, 不曾相知! 不曾相思! 怎懂? 相知不易! 相思不堪! 心不怨卻微涼, 人...
    艾彌兒閱讀 511評論 3 14