TCP IP協議Linux系統下地址查詢命令
對于TCP IP協議來說,我們并沒有對它的硬件或者是其它什么設計進行嚴格的規范。它應用太過廣泛,概念上的應用也相對比較模糊。那么我們現在就來對它的linux系統下的地址查詢來做一個介紹。
要讓 TCP IP協議能夠順利與不同類型的硬體進行溝通﹐那么就需要建立起一些標準協定來讓大家共同參考。以我們最常用的乙太網(Ethernet)為例﹐我們無需理會廠商如何設計網路界面的驅動程式﹐一旦它能夠被系統接納﹐網路儲存層(Datalink)就能使用網路界面在實體網路上傳送和接收資料了。
IP 位址和實體位址對應之困擾
我們知道乙太網上面使用的傳送方式叫 CSMA/CD (Carrier-Sensing Multiple Access with Collision Detection)﹕雖然訊框會在整個網段(segment)中用廣播的方式傳遞﹐而且所有節點都會收到訊框﹐然而﹐只有目的位址符合自己實體位址的訊框才會被接收下來。因此,不管上層協定是哪一種(可以是 TCP IP協議也可以是其它),在底層的傳送若是使用 Ethernet 的話,就得使用 MAC (Media Access Control) 實體位址。若要查詢到當前系統目前所有界面的實體位址,我們可在 Linux 系統里面輸入 ifconfig 命令:
- eth0 Link encap:Ethernet HWaddr 00:A0:0C:11:EA:11
- inet addr:203.30.35.134 Bcast:203.30.35.159 Mask:255.255.255.224
- UP BROADcast RUNNING MULTIcast MTU:1500 Metric:1
- RX packets:0 errors:0 dropped:0 overruns:0 frame:0
- TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
- collisions:0 txqueuelen:100
- Interrupt:3 Base address:0x300eth1
- Link encap:Ethernet HWaddr 00:80:C7:47:8C:9A
- inet addr:192.168.0.17 Bcast:192.168.0.255 Mask:255.255.255.0
- UP BROADcast RUNNING MULTIcast MTU:1500 Metric:1
- RX packets:12303 errors:0 dropped:0 overruns:0 frame:0
- TX packets:12694 errors:0 dropped:0 overruns:0 carrier:0
- collisions:0 txqueuelen:100
- Interrupt:10 Base address:0x2e0
從上面的命令結果中可發現:關于每一個界面的***行資訊﹐***的部份就是該界面的實體位址。訊框在實體網路上面傳送的過程中﹐IP 位址(或曰羅輯位址)一點都派不上用場。但問題是:當我們使用TCP IP協議的時侯,上層的協定都是以 IP 位址為傳送依據的。