(2)链路层
一、簡介
? ? 鏈路層主要有三個目的:
? ? (1)為IP模塊發送和接受IP數據報;
? ? (2)為ARP模塊發送ARP請求和接受ARP應答;
? ? (3)為RARP發送RARP請求和接受RARP應答。
二、以太網和IEEE 802封裝
? ? 兩種幀都采用48bit(6字節)的目的地址和源地址,也成為硬件地址。ARP和RARP協議對32bit的IP地址和48bit的硬件地址進行映射。兩種封裝格式如下所示:
? ? 其中長度字段不包括CRC校驗碼。
三、SLIP:串行線路IP
? ? SLIP協議定義的格式:
? ? (1)IP數據報以一個END(0xc0)的特殊字符結束。大多數實現在數據報開始處也傳一個END字符,可終止前一個錯誤報文的傳輸;
? ? (2)如果IP數據報中某個字符是END,則要連續傳輸兩個字節的0xdb和0xdc來取代它。0xdb這個字符被稱作SLIP的ESC字符,但它的值與ASCII碼的ESC字符(0x1b)不同。
? ? (3)如果IP報文中某個字符為SLIP的ESC字符,則連續傳輸兩個字節0xdb和0xdd來取代它。
? ? 報文封裝格式如下所示:
? ? SLIP也有缺陷,主要包括:
? ? (1)每一端必須知道對方的IP地址。沒有辦法把本端的IP地址通知給另一端;
? ? (2)數據幀中沒有類型字段。如果一條串行線路用于SLIP,那么它不能同時使用其他協議;
? ? (3)SLIP沒有在數據幀中加上校驗和。
四、壓縮的SLIP
? ? 壓縮的SLIP,即CSLIP,能把40字節壓縮到3~5個字節。它能在每一端維持多達16個TCP鏈接,并知道每個鏈接的首部中的某些字段一般不會發生變化。被壓縮的首部大大縮短了交互響應時間。
五、PPP:點對點協議
? ? 點對點協議修改了SLIP協議中的所有缺陷,主要包括以下三個部分:
? ? (1)在串行鏈路上封裝IP數據報的方法。支持數據為8位和無奇偶校驗的異步模式,還支持面向比特的同步連接。
? ? (2)建立、配合和測試數據鏈路的鏈路控制協議LCP,允許通信雙方進行協商,以確定不同的選項。
? ? (3)針對不同網絡層協議的網絡控制協議NCP體系。
? ? 下圖為PPP數據幀格式:
? ? PPP協議每一幀都以0x7e開始和結束。緊接著是一個地址字節,值始終是0xff,然后是一個值為0x03的控制字節。接下來是協議字段。分別可承載IP數據報、攔路控制數據和網絡控制字段。
? ? CRC字段是一個循環冗余校驗碼,以檢測數據幀中的錯誤。
? ? 當信息字段中出現0x7e時,PPP需要對其進行轉義,過程如下:
? ? (1)當遇到字符0x7e,需要傳遞兩個字符0x7d額0x5e,以實現標志字符的轉義;
? ? (2)當遇到轉義字符0x7d時,需要傳遞兩個字符0x7d和0x5d,以實現轉義字符的轉義;
? ? (3)默認情況下,如果字符值小于0x20,一般都要進行轉義。
? ? 鏈路控制協議可指定是否需要對32個字符中的某些值進行轉義,默認情況下是對所有32個字符都進行轉義。
? ? PPP比SLIP有以下優點:
? ? (1)PPP支持在單根串行線路上運行多種協議,不只是IP協議;
? ? (2)每一幀都有循環冗余檢驗;
? ? (3)通信雙方可以進行IP地址的動態協商(通過IP網絡控制協議);
? ? (4)與CSLIP類似,對TCP和IP報文首部進行壓縮;
? ? (5)鏈路控制協議可以對多個數據鏈路選項進行設置。
六、環回接口
? ? 環回接口loopback interface,允許運行在同一主機上的客戶程序與服務器程序通過TCP/IP進行通信。根據慣例,IP地址127.0.0.1為環回接口,其命名為localhose。
? ? 環回接口處理IP數據報過程如下:
七、最大傳輸單元MTU
? ? 鏈路層對數據幀長度都有一個限制,這個特性稱作最大傳輸單元MTU。
? ? 下圖為不同類型網絡下MTU的值:
? ? 如果需要傳輸的數據長度比鏈路層的MTU還大,那么IP層就要對數據進行分片。
八、路勁MTU
? ? 兩臺通信主機路徑中的最小MTU,稱作路徑MTU。
?
轉載于:https://www.cnblogs.com/riasky/p/3361031.html
總結
- 上一篇: coffeescript 下的构造函数中
- 下一篇: mac 安装cmake