1. 程式人生 > >《TCP IP 詳解卷1:協議》閱讀筆記 - 第一章

《TCP IP 詳解卷1:協議》閱讀筆記 - 第一章

閱讀須知:筆記為閱讀《TCP IP 詳解卷1:協議》後摘抄的一些知識點,其間也有加入一些根據英文原版的自己翻譯和結合網上知識後的理解,所以有些段落之間並不能夠串聯上或者知識點與書上略有差別(基本差別不大,參考的資料屬RFC官方文件)。

 

第一章:概述

Effective communication depends on the use of a common language.
有效溝通取決於使用共同的語言 。

TCP/IP協議族

一系列相關協議的集合被稱為一個協議族。指定一個協議族中的各種協議之間的相互關係並劃分需要完成的任務的設計,稱為協議族的體系結構或參考模型。而TCP/IP則是一個實現Internet體系結構的協議族,它來源於ARPANET參考模型。標準的TCP/IP實現來自加州大學伯克利分校計算機系統研究組(CSRG),它們通過4.xBSD系統釋出,直到20世紀90年代中期才出現BSD網路釋出版。

體系結構原則

Internet體系結構在以下幾個目標的指導下建立:

  · 發展一種重複利用已有的網際網路絡的技術(首要目標);

  · Internet通訊在網路或閘道器失效時必須能持續(二級目標);

  · Internet必須支援多種型別的通訊服務(二級目標);

  · Internet體系結構必須相容多種網路(二級目標);

  
· Internet體系結構必須允許對其資源的分散式管理(二級目標);

  
· Internet體系結構必須是經濟有效的(二級目標)
;

  · Internet體系結構必須允許低能力主機的連線(二級目標);


  · Internet中使用的資源必須是可統計的(二級目標)。

簡單的通訊模型

早期的網路(電話網路),針對一次通訊中連線雙方而設計,比如A和B通訊,則A和B之間會建立一條線路(最初的物理電路);且這條連線中會提供一定數量的頻寬和容量用以傳輸資訊。

以傳統問候語為例:

分組交換思想

通訊過程中以`分組`為單位來傳輸,使用儲存-轉發機制實現資料互動,這是分組交換。來自不同源的資料塊組合成一個數據分組,在`處理裝置`(交換機/路由器)接收到陣列分組之後又可將其分解,稱為多路複用。分組在到達目的地的過程中需要在交換裝置之間傳輸,並且路徑可以改變。

這樣做的好處是:

  1. 網路更具有彈性;

  2. 高效利用網路鏈路和交換裝置提高傳輸效率。

對於`處理裝置`而言,最簡單的分組處理排程方式符合`先到達先服務`規則,稱為先進先出(FIFO),這玩意也是Internet中用來處理不同來源的混合流量的主要方法。

如圖(摘自百度百科)

資料報

資料報是一個特定型別的分組,有關來源和最終目的地的所有識別資訊都位於分組中。可用於建立一個無連線的網路,並且沒必要使用複雜的信令協議。在資料報協議中存在訊息邊界,而在底層協議中並不保留訊息邊界,如果應用程式有需要它的情況,則須自行提供對應功能。

端到端論點和命運共享

端到端論點是影響TCP/IP協議族設計的重要原則之一,該原則認為重要功能(例如差錯控制、加密、交付確認)通常不會在大型系統的低層實現。但是,低層可以提供方便端系統工作的功能,並最終可能改善效能。而選擇哪些功能在同一計算機、網路或軟體棧中實現,這是另一個稱為命運共享的相關原則。

命運共享是一種通過虛擬連線(例如,由TCP實現)維持活動的設計理念,它建議將所有必要的狀態放在通訊端點,這些狀態用於維護一個活動的通訊關聯。

上述兩點均可理解為著重保證網路通訊能力的健全。

差錯控制和流量控制

差錯控制是指對網路中存在資料損壞或丟失的情況進行的處理措施;流量控制是指對網路資料流量進行控制的處理措施。它們與端到端論點一致(如TCP在端主機中實現速率控制),也與命運共享一致(在網路基礎設施中有些單元失效的情況下,不會影響網路裝置的通訊能力)。

設計和實現

實現體系結構定義了協議體系結構中的概念如何用於軟體形式的實現。通俗的理解,實現體系結構也就是:將軟體的實現分為幾個階段(層次),各個協議分別需要在軟體的哪些地方(哪個階段/層次)被使用。採用分層是有益的,它允許開發人員分別實現系統的不同部分,它們通常由在不同領域的專業人員完成。

OSI模型(Open System Interconnection)

比較基礎也比較有名的OSI七層模型:

基於OSI分層實現的資料封裝 

每一層都有自己的訊息物件概念(協議資料單元,PDU),並且對於上一層(或下一層)的PDU不做解釋(即圖中被當做不透明資料)只管封裝(或拆解)。在每一層,最常見的處理是在獲得的PDU外增加自已的識別符號資訊,有些是增加在頭部,有些協議是增加在尾部。

TCP/IP協議族結構

TCP/IP協議分層 

基於TCP/IP協議分層的資料封裝

傳入的資料經過一層層的剝離,每層分別除去自己層所需的資料報頭部以決定資料報下一步該派發給哪個協議處理、或者做資料報錯誤檢測等,最終成功後剩下資料給應用處理後反饋到使用者。

埠號 

埠號是16位非負整數(0~65535)。每個IP地址有65536個可用的埠號,每個傳輸協議可使用這些埠號 (在大多數情況下),它們被用於確定正確的接收資料的具體服務。標準的埠號由Internet號碼分配機構(IANA)分配:包括熟知埠號(0~1023);註冊埠號(1024~49151);動態/私有埠號(49152~65535)。

熟知埠如安全外殼協議(SSH,埠22)、FTP (埠20和21)、Telnet遠端終端協議(埠23)、電子郵件/簡單郵件傳輸協議(SMTP,埠25)、域名系統(DNS,埠53)、超文字傳輸協議或Web(HTTP和HTTPS,埠80和443)、互動式郵件訪問協議(IMAP和IMAPS,埠143和993)、簡單網路管理協議 (SNMP,埠161和162)、輕量級目錄訪問協議(LDAP,埠389)。

內聯網、外聯網

Internet (因特網)已發展成為由很多網路互聯起來的網路集合。小寫字母開頭的Internet表示使用常見協議族互聯的多個網路;大寫字母開頭的Internet表示可使用 TCP/IP通訊的世界範圍的主機集合。

內聯網(內網):通常由一個商業機構或其他企業來執行。大多數情況下,內聯網提供的訪問資源只供特定企業的成員使用,使用者可使用虛擬專用網(VPN)連線到(例如企業)內聯網,VPN有助於保證內聯網中潛在的敏感資源只供授權使用者訪問,它通常使用隧道概念。

外聯網(外網):一個企業或商業機構可能希望建立一個網路,其中包含可供合作伙伴或其他相關公司通過Internet訪問的伺服器,這種涉及VPN的網路通常被稱為外聯網,由連線在提供服務的企業防火牆之外的計算機組成 。

內網外網的簡單理解:由路由器區分,路由器以內是內網,路由器以外是外網;內網IP是內部自行分配的'身份認證',外網是Internet網中對你的'身份認證'。

設計應用

本文所述的網路概念提供了一個簡單的服務模型:在運行於不同(或相同)計算機上的程式之間傳輸資料。然而提供該服務還需使用網路應用(服務的提供者)。 網路應用最常見的 模式是客戶機/伺服器模式和對等模式。

客戶機/伺服器模式被設計為一端是客戶機,而另一端是伺服器。且伺服器分為兩類:迭代和併發。

對等模式下沒有專門的伺服器。每個應用既是伺服器又是客戶端,有時又同時是兩者。

標準化程序

有了這些協議,也總得了解下是誰來負責各協議的制定和標準,以及它們如何運作。

Internet工程任務組(IETF):據說(書上說的,沒參加過,2333)每年在世界不同地點舉行3次會議,以便開發、討論和通過Internet 的“核心”協議標準。

Internet研究任務組(IRTF):討論那些沒有成熟到足以形成標準的協議、體系結構和程式。

RFC:Internet社會中的每個官方標準都以一個RFC (徵求意見)的形式釋出。不是所有RFC都是標準,只有標準跟蹤類別的RFC被認為是官方標準。其他類別包括當前最佳實踐(BCP)、資訊、實驗和歷史。重要的是,一個檔案成為一個RFC並不意味著IETF已採納它作為標準。許多RFC具有特殊意義:它們總結、澄清或解釋其他一些特殊標準。

其他標準:一些重要的組織包括電氣和電子工程師學會(IEEE)、全球資訊網聯盟(W3C) 以及國際電信聯盟(ITU) 定義的協議同樣值得注意。

小結

在TCP/IP中,網路層和傳輸層之間的區別至關重要:網路層(IP)提供了一個不可靠的資料報服務,必須由Internet中所有可定址的系統來實現,而傳輸層(TCP和UDP)為端主機上執行的應用程式提供了端到端服務。主要的傳輸層協議有根本性的差異:TCP提供了帶流量控制和擁塞控制的有序、可靠的流交付;除了用於多路分解的埠號和錯誤檢測機制之外,UDP提供的功能基本沒有超越IP,但是與TCP不同,UDP支援組播交付。

網際網路絡( intenret)是一個網路集合,其中最常見的基本裝置是路由器,它被用於在IP層連線多個網路。