TCP/IP協議詳解卷一:Chapter4 Chapter5 筆記

Chapter 4 ARP:地址解析協議

地址解析協議 = Address Resolution Protocol = ARP
ARP爲IP地址到對應的硬件地址之間提供動態映射。這個過程是自動完成的,一般應用程序用戶和系統管理員不必關心。

硬件地址
硬件地址 = 物理地址(Physical Address) = MAC地址(Media Access Control Address) = 局域網地址(LAN Address) = 以太網地址(Ethernet Address);
硬件地址長度爲6個字節,即48bit。通常表示爲12個16進制數,每兩個數之間用冒號隔開。例如08 : 00 : 20 : 0A : 8C : 6D。

ARP高速緩存
每個主機上都有一個ARP高速緩存,存放了最近Internet地址到硬件地址之間的映射記錄。
高速緩存中的每一項的生存時間大概爲20分鐘。可以用 arp -a 命令查看高速緩存中的所有內容。

4.4節 ARP的分組格式

用於以太網的ARP請求或應答分組格式 = 14字節以太網首部 + 28字節ARP請求/應答

以太網首部 = 6字節以太網目的地址 + 6字節以太網源地址 + 2字節幀類型
其中:
目的地址爲全1的是廣播地址;
ARP請求/應答的幀類型是0x0806

ARP請求/應答 = 2字節硬件類型 + 2字節協議類型 + 1字節硬件地址長度 + 1字節協議地址長度 + 2字節op + 6字節發送端以太網地址 + 4字節發送端IP地址 + 6字節目的以太網地址 + 4字節目的IP地址
其中:
硬件類型:以太網地址用值1表示;
協議類型:IP地址用值0x0800表示;
硬件地址長度 = 6個字節,協議地址長度 = 4個字節;
操作字段op:ARP請求 = 1,ARP應答 = 2,RARP請求 = 3,RARP應答 = 4;
發送端(或目的)以太網地址(硬件地址);
發送端(或目的)IP地址(協議地址)。

4.5節 ARP舉例

tcpdump命令
tcpdump第一行是一個ARP請求,其中:
09:11:22.642008 對應輸出的時間戳;
0:0:c0:6f:2d:40 對應源端主機的硬件地址;
ff:ff:ff:ff:ff:ff 對應目的端主機的硬件地址(此處是一個以太網廣播地址);
arp字段說明此數據幀是一個ARP請求或應答。其後的數字60指的是以太網數據幀的長度;
arp who-has svr4 表示作爲ARP請求的這個數據幀中的目的IP地址是主機svr4的地址;
tell bsdi 表示發送端的IP地址是主機bsdi的地址。

第二行是一個ARP應答,其中arp repl 之後打印出了響應者的主機名(svr4)和硬件地址。此時svr4通常已經將ARP請求端(bsdi)的硬件地址和IP地址存入其ARP高速緩存
第三行是一個請求建立連接的TCP段,目的主機是svr4。
第四行是svr4發送第一段TCP報文。

Chapter 5 RARP:逆地址解析協議

逆地址解析協議 = Reverse Address Resolution Protocol = RARP
RARP被那些沒有磁盤驅動器的系統使用(一般是無盤工作站或者X終端),需要系統管理員進行手動設置。

無盤系統的RARP實現過程是從接口卡上讀取唯一的硬件地址,然後發送一份RARP請求(以廣播方式傳送),請求某個主機通過RARP應答(以單播方式傳送)響應該無盤系統的IP地址。

RARP的分組格式與ARP基本一致。主語差別在於RARP請求/應答的幀類型代碼爲0x8035,RARP請求的操作代碼op = 3,應答的操作代碼op = 4。

5.3節 RARP舉例

在主機bsdi上運行RARP程序和tcpdump命令得到的輸出:
RARP第一行目的端硬件地址爲ff:ff:ff:ff:ff:ff 代表RARP請求以廣播方式傳送;
第二行的RARP應答以單播方式傳送,其中at sun字段表示該RARP應答包含主機sun的IP地址;
第三行表示主機sun發送一個TFTP讀請求給文件8CFC0D21.SUN4C。其中十六進制 8C:FC:0D:21 = 140.252.13.33 是主機sun的IP地址,SUN4C = 系統類型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章