端口号的理解
端口:一般我們所說的端口都會(huì)與網(wǎng)絡(luò)有關(guān),將其分為物理端口和邏輯端口兩種。
物理端口:指的就是我們的電腦上的物理接口,比如說連接路由器的接口,集線器接口(如果有的話)等等。
邏輯端口:是指電腦中用于區(qū)分網(wǎng)絡(luò)服務(wù)的接口,比如用于瀏覽網(wǎng)頁服務(wù)的80端口,用于FTP服務(wù)的21端口等。由于端口眾多,我們就對(duì)相應(yīng)的端口進(jìn)行了編號(hào),端口號(hào)的范圍從0-65535。如果一個(gè)軟件擁有多于一個(gè)的端口號(hào),說明該軟件的網(wǎng)絡(luò)功能不止一個(gè)。
為了使得網(wǎng)絡(luò)功能更好更快捷,更有針對(duì)性的實(shí)現(xiàn),我們將端口號(hào)進(jìn)行了一些劃分:
0-1023:公認(rèn)端口號(hào),即已經(jīng)公認(rèn)定義或?yàn)閷⒁J(rèn)定義為軟件保留的,例如80端口用于網(wǎng)頁的瀏覽,20和21用于FTP請(qǐng)求等。
1024-65535:是沒有公共定義的端口號(hào),用戶可以自己定義這些端口的作用。
下面舉例說明:
1、當(dāng)一臺(tái)電腦啟動(dòng)微信(或者QQ),那么它就要開啟至少一個(gè)端口號(hào)來讓外界訪問,要不然我們就無法同其他人聯(lián)系。我們可以把沒有開啟端口號(hào)的電腦看作是一個(gè)密封的房間,密封的房間當(dāng)然不可能接受外界的訪問,所以當(dāng)系統(tǒng)開啟了微信程序后它自然需要在房間上開一個(gè)窗口來接受來自外界的訪問,這個(gè)窗口就是端口。
2、為什么要用端口編號(hào)來區(qū)分它們呢,既然一個(gè)程序開了一個(gè)端口,那么是不是外部信息都可以通過這個(gè)開啟的端口來訪問了嗎?答案是不可以。為什么呢?因?yàn)閿?shù)據(jù)是用端口號(hào)來通知傳輸層協(xié)議送給哪個(gè)軟件來處理的,數(shù)據(jù)是沒有智慧的,如果很多軟件共用一個(gè)端口來接受數(shù)據(jù)的話,那么當(dāng)外界的一個(gè)數(shù)據(jù)包送來后傳輸層就不知道該把數(shù)據(jù)返回給誰處理,這樣勢(shì)必將導(dǎo)致混亂。 這就好比去政府部門辦事情,你提交了材料之后,去相應(yīng)的部門等待結(jié)果,不要在政府大門等結(jié)果是一個(gè)道理,因?yàn)槟愕奶幚斫Y(jié)果會(huì)被放在指定的地方(端口)。
總結(jié)
- 上一篇: 如何将本地代码使用Git上传至Githu
- 下一篇: URL(统一资源定位符)