TCP IP協(xié)議Linux系統(tǒng)下地址查詢命令
對(duì)于TCP IP協(xié)議來(lái)說(shuō),我們并沒(méi)有對(duì)它的硬件或者是其它什么設(shè)計(jì)進(jìn)行嚴(yán)格的規(guī)范。它應(yīng)用太過(guò)廣泛,概念上的應(yīng)用也相對(duì)比較模糊。那么我們現(xiàn)在就來(lái)對(duì)它的linux系統(tǒng)下的地址查詢來(lái)做一個(gè)介紹。
要讓 TCP IP協(xié)議能夠順利與不同類(lèi)型的硬體進(jìn)行溝通﹐那么就需要建立起一些標(biāo)準(zhǔn)協(xié)定來(lái)讓大家共同參考。以我們最常用的乙太網(wǎng)(Ethernet)為例﹐我們無(wú)需理會(huì)廠商如何設(shè)計(jì)網(wǎng)路界面的驅(qū)動(dòng)程式﹐一旦它能夠被系統(tǒng)接納﹐網(wǎng)路儲(chǔ)存層(Datalink)就能使用網(wǎng)路界面在實(shí)體網(wǎng)路上傳送和接收資料了。
IP 位址和實(shí)體位址對(duì)應(yīng)之困擾
我們知道乙太網(wǎng)上面使用的傳送方式叫 CSMA/CD (Carrier-Sensing Multiple Access with Collision Detection)﹕雖然訊框會(huì)在整個(gè)網(wǎng)段(segment)中用廣播的方式傳遞﹐而且所有節(jié)點(diǎn)都會(huì)收到訊框﹐然而﹐只有目的位址符合自己實(shí)體位址的訊框才會(huì)被接收下來(lái)。因此,不管上層協(xié)定是哪一種(可以是 TCP IP協(xié)議也可以是其它),在底層的傳送若是使用 Ethernet 的話,就得使用 MAC (Media Access Control) 實(shí)體位址。若要查詢到當(dāng)前系統(tǒng)目前所有界面的實(shí)體位址,我們可在 Linux 系統(tǒng)里面輸入 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
從上面的命令結(jié)果中可發(fā)現(xiàn):關(guān)于每一個(gè)界面的***行資訊﹐***的部份就是該界面的實(shí)體位址。訊框在實(shí)體網(wǎng)路上面?zhèn)魉偷倪^(guò)程中﹐IP 位址(或曰羅輯位址)一點(diǎn)都派不上用場(chǎng)。但問(wèn)題是:當(dāng)我們使用TCP IP協(xié)議的時(shí)侯,上層的協(xié)定都是以 IP 位址為傳送依據(jù)的。