端口
在網(wǎng)絡(luò)技術(shù)中,端口(Port)包括邏輯端口和物理端口兩種類型。物理端口指的是物理存在的端口,如ADSL Modem、集線器、交換機(jī)、路由器上用 于連接其他網(wǎng)絡(luò)設(shè)備的接口,如RJ-45端口、SC端口等等。邏輯端口是指邏輯意義上用于區(qū)分服務(wù)的端口,如TCP/IP協(xié)議中的服務(wù)端口,端口號(hào)的范圍從0到65535,比如用于瀏覽網(wǎng)頁服務(wù)的80端口,用于FTP服務(wù)的21端口等。由于物理端口和邏輯端口數(shù)量較多,為了對(duì)端口進(jìn)行區(qū)分,將每個(gè)端口進(jìn)行了編號(hào),這就是端口號(hào)。本文主要講邏輯端口.
邏輯端口
端口有什么用呢?我們知道,一臺(tái)擁有IP地址的主機(jī)可以提供許多服務(wù),比如Web服務(wù)、FTP服務(wù)、SMTP服務(wù)等,這些服務(wù)完全可以通過1個(gè)IP地址來實(shí)現(xiàn)。那么,主機(jī)是怎樣區(qū)分不同的網(wǎng)絡(luò)服務(wù)呢?顯然不能只靠IP地址,因?yàn)镮P 地址與網(wǎng)絡(luò)服務(wù)的關(guān)系是一對(duì)多的關(guān)系。實(shí)際上是通過“IP地址+端口號(hào)”來區(qū) 分不同的服務(wù)的。
服務(wù)器一般都是通過知名端口號(hào)來識(shí)別的。例如,對(duì)于每個(gè)TCP/IP實(shí)現(xiàn)來說,F(xiàn)TP服務(wù)器的TCP端口號(hào)都是21,每個(gè)Telnet服務(wù)器的TCP端口號(hào)都是23,每個(gè)TFTP(簡單文件傳送協(xié)議)服務(wù)器的UDP端口號(hào)都是69。任何TCP/IP實(shí)現(xiàn)所提供的服務(wù)都用知名的1~1023之間的端口號(hào)。這些知名端口號(hào)由Internet 號(hào)分配機(jī)構(gòu)(InternetAssignedNumbersAuthority,IANA)來管理。
到1992年為止,知名端口號(hào)介于1~255之間。256~1023之間的端口號(hào)通常都是由Unix系統(tǒng)占用,以提供一些特定的Unix服務(wù)—也就是說,提供一些只有Unix系統(tǒng)才有的、而其他操作系統(tǒng)可能不提供的服務(wù),IANA管理1~1023之間所有的端口號(hào)。
Internet擴(kuò)展服務(wù)與Unix特定服務(wù)之間的一個(gè)差別就是Telnet和Rlogin。它們二者都允許通過計(jì)算機(jī)網(wǎng)絡(luò)登錄到其他主機(jī)上。Telnet是采用端口號(hào)為23的TCP/IP標(biāo)準(zhǔn)且?guī)缀蹩梢栽谒胁僮飨到y(tǒng)上進(jìn)行實(shí)現(xiàn)。Rlogin只是為Unix系統(tǒng)設(shè)計(jì)的(盡管許多非Unix系統(tǒng)也提供該服務(wù)),它的有名端口號(hào)為513。
客戶端通常對(duì)它所使用的端口號(hào)并不關(guān)心,只需保證該端口號(hào)在本機(jī)上是唯一的就可以了。客戶端口號(hào)又稱作臨時(shí)端口號(hào)(即存在時(shí)間很短暫)。這是因?yàn)樗ǔV皇窃谟脩暨\(yùn)行該客戶程序時(shí)才存在,而服務(wù)器則只要主機(jī)開著的,其服務(wù)就運(yùn)行。
大多數(shù)TCP/IP實(shí)現(xiàn)給臨時(shí)端口分配1024~5000之間的端口號(hào)。大于5000的端口號(hào)是為其他服務(wù)器預(yù)留的(Internet上并不常用的服務(wù))。我們可以在后面看見許多這樣的給臨時(shí)端口分配端口號(hào)的例子。
Solaris2.2是一個(gè)很有名的例外。通常TCP和UDP的缺省臨時(shí)端口號(hào)從32768開始。
phper中的端口
在php開發(fā)者中,最常見的就是80 http默認(rèn)端口了,在通常情況下,我們?cè)L問 www.jrrswxmm.cn ,其實(shí)是請(qǐng)求的 www.jrrswxmm.cn:80 ,在沒有指定端口的情況下,訪問網(wǎng)站都是默認(rèn)為80端口,如果你web服務(wù)器監(jiān)聽的是8080端口,訪問時(shí)就必須 www.jrrswxmm.cn:8080 帶上端口才能訪問