python網(wǎng)絡(luò)編程基礎(chǔ)(連載)02ip和端口基本知識(shí)

gitbook鏈接:用python帶你進(jìn)入AI中的深度學(xué)習(xí)技術(shù)領(lǐng)域https://www.gitbook.com/book/scrappyzhang/python_to_deeplearn/details

github鏈接:https://github.com/ScrappyZhang/python_web_Crawler_DA_ML_DL

1.1 網(wǎng)絡(luò)與ip的認(rèn)知

在計(jì)算機(jī)領(lǐng)域中,網(wǎng)絡(luò)是信息傳輸、接收、共享的虛擬平臺(tái),通過(guò)它把各個(gè)點(diǎn)、面、體的信息聯(lián)系到一起,從而實(shí)現(xiàn)這些資源的共享。網(wǎng)絡(luò)是人類發(fā)展史來(lái)最重要的發(fā)明,提高了科技和人類社會(huì)的發(fā)展。網(wǎng)絡(luò)會(huì)借助文字閱讀、圖片查看、影音播放、下載傳輸、游戲、聊天等軟件工具從文字、圖片、聲音、視頻等方面給人們帶來(lái)極其豐富的生活和美好的享受。通俗點(diǎn)講,網(wǎng)絡(luò)就像打電話時(shí)的電話線一樣,連接著電話線兩端的人;即一種輔助雙方或者多方能夠連接在一起交流的工具。為了讓在不同的電腦上運(yùn)行的軟件之間能夠互相傳遞數(shù)據(jù),就需要借助于網(wǎng)絡(luò)。

所謂網(wǎng)絡(luò)編程就是,讓在不同的電腦上的軟件之間能夠進(jìn)行數(shù)據(jù)傳遞,即進(jìn)程之間的通信。

和打電話一樣,需要有運(yùn)營(yíng)商座機(jī)終端或者手機(jī)終端通過(guò)特定的電信號(hào)連接,網(wǎng)絡(luò)之間想要進(jìn)行握手通信就需要一種每臺(tái)電腦都遵守的協(xié)議,這就是IP——網(wǎng)絡(luò)之間互聯(lián)的協(xié)議。它是能使連接到網(wǎng)上的所有計(jì)算機(jī)網(wǎng)絡(luò)實(shí)現(xiàn)相互通信的一套規(guī)則,規(guī)定了計(jì)算機(jī)在因特網(wǎng)上進(jìn)行通信時(shí)應(yīng)當(dāng)遵守的規(guī)則。同樣,郵寄快遞時(shí)我們常常需要一個(gè)唯一的收發(fā)地址,網(wǎng)絡(luò)通信也需要網(wǎng)絡(luò)內(nèi)的每臺(tái)設(shè)備有一個(gè)地址,這就是ip地址。IP地址用來(lái)標(biāo)記網(wǎng)絡(luò)中的每一臺(tái)設(shè)備。

如下圖所示,路由器對(duì)應(yīng)于廣域網(wǎng)中的一個(gè)設(shè)備,需要一個(gè)廣域網(wǎng)的ip,電腦主機(jī)屬于路由器建立的局域網(wǎng)內(nèi)設(shè)備,需要一個(gè)局域網(wǎng)ip,同一個(gè)網(wǎng)絡(luò)內(nèi)的設(shè)備ip是不同的。

1.2 ip的分類

ip地址由網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)組成。 網(wǎng)絡(luò)號(hào):用于識(shí)別主機(jī)所在的網(wǎng)絡(luò); 主機(jī)號(hào):用于識(shí)別該網(wǎng)絡(luò)中的主機(jī)。

IP地址分為五類,A類保留給政府機(jī)構(gòu),B類分配給中等規(guī)模的公司,C類分配給任何需要的人,D類用于組播,E類用于實(shí)驗(yàn),各類可容納的地址數(shù)目不同。A、B、C三類IP地址的特征:當(dāng)將IP地址寫成二進(jìn)制形式時(shí),A類地址的第一位總是0,B類地址的前兩位總是10,C類地址的前三位總是110。具體如下:

A類地址

(1)A類地址第1字節(jié)為網(wǎng)絡(luò)地址,其它3個(gè)字節(jié)為主機(jī)地址。它的第1個(gè)字節(jié)的第一位固定為0. (2)A類地址網(wǎng)絡(luò)號(hào)范圍:1.0.0.0---126.0.0.0 (3)A類地址中的私有地址和保留地址: ① 10.X.X.X是私有地址(所謂的私有地址就是在互聯(lián)網(wǎng)上不使用,而被用在局域網(wǎng)絡(luò)中的地址)。 范圍(10.0.0.0---10.255.255.255) ② 127.X.X.X是保留地址,用做循環(huán)測(cè)試用的。

B類地址

(1) B類地址第1字節(jié)和第2字節(jié)為網(wǎng)絡(luò)地址,其它2個(gè)字節(jié)為主機(jī)地址。它的第1個(gè)字節(jié)的前兩位固定為10. (2) B類地址網(wǎng)絡(luò)號(hào)范圍:128.0.0.0---191.255.0.0。 (3) B類地址的私有地址和保留地址 ① 172.16.0.0---172.31.255.255是私有地址 ② 169.254.X.X是保留地址。如果你的IP地址是自動(dòng)獲取IP地址,而你在網(wǎng)絡(luò)上又沒(méi)有找到可用的DHCP服務(wù)器。就會(huì)得到其中一個(gè)IP。?191.255.255.255是廣播地址,不能分配。

C類地址

(1)C類地址第1字節(jié)、第2字節(jié)和第3個(gè)字節(jié)為網(wǎng)絡(luò)地址,第4個(gè)字節(jié)為主機(jī)地址。另外第1個(gè)字節(jié)的前三位固定為110。 (2)C類地址網(wǎng)絡(luò)號(hào)范圍:192.0.0.0---223.255.255.0。 (3) C類地址中的私有地址: 192.168.X.X是私有地址。(192.168.0.0---192.168.255.255)

D類地址

(1) D類地址不分網(wǎng)絡(luò)地址和主機(jī)地址,它的第1個(gè)字節(jié)的前四位固定為1110。 (2) D類地址范圍:224.0.0.0---239.255.255.255

E類地址

(1) E類地址不分網(wǎng)絡(luò)地址和主機(jī)地址,它的第1個(gè)字節(jié)的前五位固定為11110。 (2) E類地址范圍:240.0.0.0---255.255.255.254

每臺(tái)電腦的本地主機(jī)ip為127.0.0.1

1.3 ip查詢與ping測(cè)試

linux中查看ip的命令:ifconfig,windows中查看ip的命令:ipconfig

ping用來(lái)測(cè)試遠(yuǎn)程主機(jī)網(wǎng)絡(luò)連接是否通暢。

1.4 端口port

端口就像房間門一樣,如果想進(jìn)入房間則必須要通過(guò)門。如果一個(gè)程序想要收發(fā)網(wǎng)絡(luò)數(shù)據(jù),那就需要操作系統(tǒng)的一個(gè)端口。而一般操作系統(tǒng)的端口號(hào)很多(linux系統(tǒng)可以達(dá)到65536),為了統(tǒng)一管理,操作系統(tǒng)對(duì)所有的端口進(jìn)行整數(shù)編號(hào)標(biāo)記,即端口號(hào)。根據(jù)協(xié)議,端口號(hào)按照一定規(guī)則進(jìn)行分配:

知名端口(Well Known Ports)

知名端口是眾所周知的端口號(hào),范圍從0到1023。例如,80端口分配給HTTP服務(wù);21端口分配給FTP服務(wù)。 我們可以理解為,一些常用的功能使用的號(hào)碼是固定的,就像重要的公眾電話號(hào)碼110、10086、10010一樣。

動(dòng)態(tài)端口(Dynamic Ports)

動(dòng)態(tài)端口的范圍是從1024到65535。之所以稱為動(dòng)態(tài)端口,是因?yàn)樗话悴还潭ǚ峙淠撤N服務(wù),而是動(dòng)態(tài)分配。動(dòng)態(tài)分配是指當(dāng)一個(gè)系統(tǒng)程序或應(yīng)用程序程序需要網(wǎng)絡(luò)通信時(shí),它向主機(jī)申請(qǐng)一個(gè)端口,主機(jī)從可用的端口號(hào)中分配一個(gè)供它使用。當(dāng)這個(gè)程序關(guān)閉時(shí),同時(shí)也就釋放了所占用的端口號(hào)。

查看端口

用“netstat -an”查看端口狀態(tài)。

1.5 小結(jié)

一臺(tái)擁有IP地址的主機(jī)可以提供許多服務(wù),比如HTTP(萬(wàn)維網(wǎng)服務(wù))、FTP(文件傳輸)、SMTP(電子郵件)等,這些服務(wù)完全可以通過(guò)1個(gè)IP地址來(lái)實(shí)現(xiàn)。那么,主機(jī)是怎樣區(qū)分不同的網(wǎng)絡(luò)服務(wù)呢?顯然不能只靠IP地址,因?yàn)镮P地址與網(wǎng)絡(luò)服務(wù)的關(guān)系是一對(duì)多的關(guān)系。實(shí)際上是通過(guò)“IP地址+端口號(hào)”來(lái)區(qū)分不同的服務(wù)的??偠灾琁P地址標(biāo)識(shí)網(wǎng)絡(luò)中的一臺(tái)主機(jī),端口號(hào)標(biāo)識(shí)這臺(tái)主機(jī)上的一個(gè)服務(wù)(應(yīng)用程序)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容