《TCP/IP详解》学习笔记(二):数据链路层
數據鏈路層有三個目的:
?
- 為IP模塊發送和 接收IP數據報。
- 為ARP模塊發送ARP請求和接收ARP應答。
- 為RARP發送RARP請 求和接收RARP應答
ip大家都聽說過。至于ARP和RARP,ARP叫做地址解析協議,是用IP地址換MAC地址的一種協議,而RARP則叫做逆地址解析協議,在tcp/ip協議的后面章節會介紹它們(在局域網里面用ARP協議可以很容易的搞癱瘓網絡哦)
數據鏈路層的協議還是很多的,有我們最常用的以太網(就是平時我們用的網卡)協議,也有不太常見的令牌環,還有FDDI,當然,還有國內現在相當普及的PPP協議(就是adsl寬帶),以及一個loopback協議。
聯系linux里面的ifconfig -a命令,這個命令通常會得到如下的結果:
?
其中,eth0就是以太網接口,而 lo 則是 loopback 接口。這也說明這個主機在網絡鏈路層上至少支持 loopback 協議和以太網協議。
以太網(Ether-net)的是指數字設備公司( Digital Equipment Corp.)、英特爾公司(Intel Corp.)和 Xerox 公司在1982年聯合公 布的一個標準,這個標準里面使用了一種稱作 CSMA/CD 的接入方法。而 IEEE802提供的標準集 802.3(還有一部分定義到了802.2中) 也提供了一個 CSMA/CD 的標準。
這兩個標準稍有同,TCP/IP 協議對這種情況的處理方式如下:
?
- ?以太網的 IP 數據報封裝在 RFC894中定義,而 IEEE802網絡的 IP 數據報封裝在 RFC1042中定義。
- 一臺主機一定要能發送和接收 RFC894定義的數據報。
- 一臺主機可以接收 RFC894和 RFC1042的封裝格式的混合數據報。
- ?一臺主機也許能夠發送 RFC1042數據報。如果主機能同時發送兩種類型的分組數 據,那么發送的分組必須是可以設置的,而且默認條件下必須是 RFC 894分組。
可見,RFC1042在 TCP/IP 里面處于一個配角的地位。這兩種不同的數據報格式請參考教材。
ppp(點對點協議)是從 SLIP 的替代品。他們都提供了一種低速接入的解決方案。而每一種數據鏈路層協議,都有一個 MTU(最大傳輸單元)定義, 在這個定義下面,如果 IP 數據報過大,則要進行分片(fragmentation),使得每片都小于 MTU,注意 PPP 的 MTU 并 不是一個物理定義,而是 指一個邏輯定義(個人認為就是用程序控制)。
可以用 netstat 來打印出 MTU 的結果,比如鍵入 netstat -in:
?
就可以觀察到 eth0的 MTU 是1500。而 lo(環回接口)的 MTU 則是16436。?
最后說說那個環回接口(loopback)。平時我們用127.0.0.1來嘗試自己的機器服務器好使不好使。走的就是這個 loopback 接口。
對于環回接口,有如下三點值得注意:
?
- 傳給環回地址(一般是127.0.0.1)的任何數據均作為 I P 輸入。
- 傳給廣播地址或多播地址的數據報復制一份傳給環回接口,然后送到以太網上。這是 因為廣播傳送和多播傳送的定義包含主 機本身。
- 任何傳給該主機 IP 地址的數據均送到環回接口。
這一章還是很簡單的,一般作為了解知識也就足夠了,沒必要摳的那么詳細。
總結
以上是生活随笔為你收集整理的《TCP/IP详解》学习笔记(二):数据链路层的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PQV2ISECURITY.EXE -
- 下一篇: Angular相关的有价值的问题集锦