《计算机网络教程 自顶向下方法》 第一章
TCP/IP協議族(Transmission Control Protocol/Internet Protocol,傳輸控制協議/互聯網協議)
?
?
層次化結構
?
路由器只涉及 3 層(網絡層、數據鏈路層、物理層)。
雖然一個路由器總是擁有一個網絡層,但是它涉及 n 個數據鏈路層和物理層的組合,其中 n 為路由器連接的鏈路的數目。其主要原因是每一個鏈路可以使用它自己的數據鏈路或物理層。
例如在圖 1-13中,路由器擁有 3 條鏈接,但是從源 A 發送到目的地 B 的消息涉及兩條鏈接。每一條鏈接可以使用不同的鏈路層和物理層協議;路由器需要從基于一對協議的鏈路 1 接收分組并將它投遞到基于另一對協議的鏈路 2。
在一條鏈路上的鏈路層交換機只涉及兩個層次:數據鏈路層和物理層。
?
?
?
TCP/IP協議族中的層次
?
?
區別:
應用層、傳輸層和網絡層的任務是端到端的(end-to-end)
數據鏈路層和物理層的任務是點到點的(hop-to-hop)
高三層的任務范圍是互聯網,低兩層的任務范圍是鏈路。
高三層,數據單元(分組)不應該被任何路由器或鏈路層交換機改變。
低兩層,主機創建的分組僅僅被路由器改變,鏈路層交換機不改變它們。
?
?
?
?
TCP/IP各層描述
?
應用層
兩個應用層之間的邏輯連接是端到端的
通信需要通過所有層次完成。
應用層的通信處于兩個進程(該層正在運行的兩個程序)之間。
| 協議 | 作用 |
| 超級文本傳輸協議(Hypertext Transfer Protocol,HTTP) | 訪問萬維網(World Wide Web,WWW)的載體 |
| 簡單郵件傳輸協議(Simple Mail Transfer Protocol,SMTP) | 電子郵件(e-mail)服務的主要協議 |
| 文件傳輸協議(File Transfer Protocol,FTP) | 將文件從一臺主機傳輸到另一臺主機 |
| 遠程登錄(Terminal Network,TELNET)和安全外殼(Secure Shell,SSH) | 訪問遠端的站點 |
| 簡單網絡管理協議(Simple Network Management Protocol,SNMP) | 對 Internet全局或局部進行管理 |
| 域名系統(Domain Name System,DNS) | 使其他的協議能夠查詢一臺計算機的網絡層地址 |
| 因特網組管理協議(Internet Group Management Protocol,IGMP) | 管理一個組的成員資格 |
傳輸層
傳輸層的邏輯連接也是端到端的
傳輸層負責向應用層提供服務:從運行于應用層的程序得到信息,并將它投遞到目的主機相應的應用程序。
?
傳輸控制協議(Transmission Control Protocol,TCP)是一個面向連接的協議,它在傳輸數據之前,首先在兩臺主機的傳輸層之間建立一條邏輯連接。TCP 協議在兩個 TCP 層之間創建一個管道,以便傳輸字節流。
TCP 協議提供流量控制(匹配源主機的發送數據速率與目的主機的接收數據速率,以防止目的主機溢出)、差錯控制(保證數據段無差錯到達目的地和重新發送受損的數據段)、擁塞控制(減少由于網絡擁塞造成的數據段丟失)。
UDP 是一種無連接協議,它傳輸用戶數據報之前不需要創建邏輯連接。在 UDP 中,每個用戶數據報是一個獨立的實體,它和前一個或后一個用戶數據報沒有關系(無連接就是這個意思)。
?
網絡層
網絡層的通信是主機到主機的。
路徑上的路由器負責為每個分組選擇最好的路徑。
我們自己為什么需要網絡層
原因之一是在不同的層次之間分割不同的任務。
原因之二是路由器不需要應用層和傳輸層。分割任務允許我們在路由器上加載較少的協議。
Internet 的網絡層包括其主要協議:因特網協議(Internet Protocol,IP),因特網協議定義了在網絡層稱為數據報的分組格式。IP 同時定義了在這一層使用的地址格式和結構。與此同時,IP 負責從源主機把一個分組路由到目的主機。這種功能主要是通過每個路由器都將數據報轉發到路徑上的下一個路由器而實現的。
IP 是一個無連接的協議,不提供流量控制、差錯控制和擁塞控制服務。
?
| 因特網控制報文協議(Internet Control Message Protocol,ICMP) | 幫助 IP 報告遇到的問題 |
| 因特網組管理協議(Internet Group Management Protocol,IGMP) | 協助 IP 進行多任務處理 |
| 動態主機配置協議(Dynamic Host Configuration Protocol,DHCP) | 幫助 IP 獲取一臺主機的網絡層地址 |
| 地址解析協議(Address Resolution Protocol,ARP) | 幫助 IP 尋找一臺主機或一臺路由器的鏈路層地址 |
?
數據鏈路層
我們已經知道一個互聯網是多個鏈路(LAN 和 WAN)通過路由器連接而構成的。從主機傳輸數據報到目的地可能存在多個交疊的鏈路集。
路由器負責選擇最好的鏈路進行傳輸。數據鏈路層都要負責通過鏈路傳輸分組。
數據鏈路層接管一個數據報并將它封裝在一個稱為幀(frame)的分組中。
?
物理層
我們可以說物理層負責攜帶一個幀中單獨的比特穿過鏈路。
盡管物理層位于 TCP/IP 協議簇的最底層,但是由于在物理層之下存在另外一個隱藏的傳輸介質層,因此兩個設備物理層之間的通信仍然是邏輯通信。
兩個設備通過一種傳輸介質(電纜或大氣)連接。我們需要知道傳輸介質不攜帶比特;它攜帶電或光信號。所以,從數據鏈路層接收的一個幀的比特需要被變換,然后通過傳輸介質傳輸。但是我們可以認為兩個設備物理層之間的邏輯單元是一個比特(bit)
?
?
?
封裝和解封裝
?
鏈路層交換機中沒有封裝/解封裝發生
?
源主機的封裝
在源主機端,我們只進行封裝。
1.在應用層,交換的數據稱為消息(message)。
2.傳輸層把這個消息的基礎上增加傳輸層頭部,其結果為一個傳輸層分組。該分組在 TCP 中稱為段(segment),在 UDP 中稱為用戶數據報(user datagram)。
3.網絡層在傳輸層分組上添加自己的頭部。其結果為一個稱為數據報(datagram)的網絡層分組。
4.數據鏈路層在網絡層分組上自己的頭部。該頭部包含主機或下一跳步(路由器)的鏈路層地址。其結果為一個稱為幀(frame)的鏈路層分組。
?
路由器的解封裝與封裝
由于路由器連接兩個或多個鏈路,因此在路由器中我們既需要進行解封裝也需要進行封裝。
1.在比特集被投遞到數據鏈路層后,這一層從幀中解封裝出數據報并將它投遞到網絡層。
2.網絡層只檢查數據報頭部的源地址和目的地址,查閱它的轉發表以尋找該數據報將被投遞到的下一跳步。除非數據報太大以至于不能通過下一鏈路時需要對其進行分片,數據報的內容不應該被網絡層改變。然后,數據報被傳遞到下一鏈路的數據鏈路層。
3.下一鏈路的數據鏈路層將數據報封裝成一個幀,將其傳遞到物理層進行傳輸。
?
目的主機的解封裝
主機中的解封裝包含差錯檢查。
?
?
地址
在 Internet 中,與協議分層相關的另一個概念是地址。正像以前討論的那樣,在這種模型中一對層次之間存在邏輯通信。包含兩方的任意通信都需要兩個地址:源地址和目的地址。盡管看起來我們似乎需要 5 對地址(每層一對),但是由于物理層不需要地址,我們通常只需要 4 對;物理層的數據交換單元是一個比特,它絕對沒有地址。
?
?
多路復用與多路分解
由于 TCP/IP 協議簇在一些層次使用多個協議,因此我們在源端需要進行多路復用(multiplexing),在目的端需要進行多路分解(demultiplexing)。在這種情況下,
多路復用的意思是一個協議能夠封裝來自多個上層協議的分組(一次一個);
多路分解的意思是一個協議能夠進行解封裝,并且將分組投遞到多個上層協議(一次一個)。
?
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的《计算机网络教程 自顶向下方法》 第一章的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 带电可擦写可编程只读存储器(24LC08
- 下一篇: [CF1076E]Vasya and a