天天看點

python網絡程式設計基礎(1)ip、端口等基礎知識ip、端口等基礎知識

github連結: https://github.com/ScrappyZhang/python_web_Crawler_DA_ML_DL

ip、端口等基礎知識

1.1 網絡與ip的認知

在計算機領域中,網絡是資訊傳輸、接收、共享的虛拟平台,通過它把各個點、面、體的資訊聯系到一起,進而實作這些資源的共享。網絡是人類發展史來最重要的發明,提高了科技和人類社會的發展。網絡會借助文字閱讀、圖檔檢視、影音播放、下載下傳傳輸、遊戲、聊天等軟體工具從文字、圖檔、聲音、視訊等方面給人們帶來極其豐富的生活和美好的享受。通俗點講,網絡就像打電話時的電話線一樣,連接配接着電話線兩端的人;即一種輔助雙方或者多方能夠連接配接在一起交流的工具。為了讓在不同的電腦上運作的軟體之間能夠互相傳遞資料,就需要借助于網絡。

python網絡程式設計基礎(1)ip、端口等基礎知識ip、端口等基礎知識
python網絡程式設計基礎(1)ip、端口等基礎知識ip、端口等基礎知識

所謂網絡程式設計就是,讓在不同的電腦上的軟體之間能夠進行資料傳遞,即程序之間的通信。

和打電話一樣,需要有營運商座機終端或者手機終端通過特定的電信号連接配接,網絡之間想要進行握手通信就需要一種每台電腦都遵守的協定,這就是IP——網絡之間互聯的協定。它是能使連接配接到網上的所有計算機網絡實作互相通信的一套規則,規定了計算機在網際網路上進行通信時應當遵守的規則。同樣,郵寄快遞時我們常常需要一個唯一的收發位址,網絡通信也需要網絡内的每台裝置有一個位址,這就是ip位址。IP位址用來标記網絡中的每一台裝置。

python網絡程式設計基礎(1)ip、端口等基礎知識ip、端口等基礎知識
python網絡程式設計基礎(1)ip、端口等基礎知識ip、端口等基礎知識

如下圖所示,路由器對應于廣域網中的一個裝置,需要一個廣域網的ip,電腦主機屬于路由器建立的區域網路内裝置,需要一個區域網路ip,同一個網絡内的裝置ip是不同的。

python網絡程式設計基礎(1)ip、端口等基礎知識ip、端口等基礎知識
python網絡程式設計基礎(1)ip、端口等基礎知識ip、端口等基礎知識

1.2 ip的分類

ip位址由網絡号和主機号組成。 網絡号:用于識别主機所在的網絡; 主機号:用于識别該網絡中的主機。

IP位址分為五類,A類保留給政府機構,B類配置設定給中等規模的公司,C類配置設定給任何需要的人,D類用于多點傳播,E類用于實驗,各類可容納的位址數目不同。A、B、C三類IP位址的特征:當将IP位址寫成二進制形式時,A類位址的第一位總是0,B類位址的前兩位總是10,C類位址的前三位總是110。具體如下:

python網絡程式設計基礎(1)ip、端口等基礎知識ip、端口等基礎知識
python網絡程式設計基礎(1)ip、端口等基礎知識ip、端口等基礎知識

A類位址

(1)A類位址第1位元組為網絡位址,其它3個位元組為主機位址。它的第1個位元組的第一位固定為0. (2)A類位址網絡号範圍:1.0.0.0---126.0.0.0 (3)A類位址中的私有位址和保留位址: ① 10.X.X.X是私有位址(所謂的私有位址就是在網際網路上不使用,而被用在區域網路絡中的位址)。 範圍(10.0.0.0---10.255.255.255) ② 127.X.X.X是保留位址,用做循環測試用的。

B類位址

(1) B類位址第1位元組和第2位元組為網絡位址,其它2個位元組為主機位址。它的第1個位元組的前兩位固定為10. (2) B類位址網絡号範圍:128.0.0.0---191.255.0.0。 (3) B類位址的私有位址和保留位址 ① 172.16.0.0---172.31.255.255是私有位址 ② 169.254.X.X是保留位址。如果你的IP位址是自動擷取IP位址,而你在網絡上又沒有找到可用的DHCP伺服器。就會得到其中一個IP。 191.255.255.255是廣播位址,不能配置設定。

C類位址

(1)C類位址第1位元組、第2位元組和第3個位元組為網絡位址,第4個位元組為主機位址。另外第1個位元組的前三位固定為110。 (2)C類位址網絡号範圍: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類位址不分網絡位址和主機位址,它的第1個位元組的前四位固定為1110。 (2) D類位址範圍:224.0.0.0---239.255.255.255

E類位址

(1) E類位址不分網絡位址和主機位址,它的第1個位元組的前五位固定為11110。 (2) E類位址範圍:240.0.0.0---255.255.255.254

每台電腦的本地主機ip為127.0.0.1

1.3 ip查詢與ping測試

linux中檢視ip的指令:ifconfig,windows中檢視ip的指令:ipconfig

python網絡程式設計基礎(1)ip、端口等基礎知識ip、端口等基礎知識
python網絡程式設計基礎(1)ip、端口等基礎知識ip、端口等基礎知識

ping用來測試遠端主機網絡連接配接是否通暢。

python網絡程式設計基礎(1)ip、端口等基礎知識ip、端口等基礎知識
python網絡程式設計基礎(1)ip、端口等基礎知識ip、端口等基礎知識

1.4 端口port

python網絡程式設計基礎(1)ip、端口等基礎知識ip、端口等基礎知識
python網絡程式設計基礎(1)ip、端口等基礎知識ip、端口等基礎知識
python網絡程式設計基礎(1)ip、端口等基礎知識ip、端口等基礎知識

端口就像房間門一樣,如果想進入房間則必須要通過門。如果一個程式想要收發網絡資料,那就需要作業系統的一個端口。而一般作業系統的端口号很多(linux系統可以達到65536),為了統一管理,作業系統對所有的端口進行整數編号标記,即端口号。根據協定,端口号按照一定規則進行配置設定:

知名端口(Well Known Ports)

知名端口是衆所周知的端口号,範圍從0到1023。例如,80端口配置設定給HTTP服務;21端口配置設定給FTP服務。 我們可以了解為,一些常用的功能使用的号碼是固定的,就像重要的公衆電話号碼110、10086、10010一樣。

動态端口(Dynamic Ports)

動态端口的範圍是從1024到65535。之是以稱為動态端口,是因為它一般不固定配置設定某種服務,而是動态配置設定。動态配置設定是指當一個系統程式或應用程式程式需要網絡通信時,它向主機申請一個端口,主機從可用的端口号中配置設定一個供它使用。當這個程式關閉時,同時也就釋放了所占用的端口号。

檢視端口

用“netstat -an”檢視端口狀态。

1.5 小結

一台擁有IP位址的主機可以提供許多服務,比如HTTP(網際網路服務)、FTP(檔案傳輸)、SMTP(電子郵件)等,這些服務完全可以通過1個IP位址來實作。那麼,主機是怎樣區分不同的網絡服務呢?顯然不能隻靠IP位址,因為IP位址與網絡服務的關系是一對多的關系。實際上是通過“IP位址+端口号”來區分不同的服務的。總而言之,IP位址辨別網絡中的一台主機,端口号辨別這台主機上的一個服務(應用程式)。

python網絡程式設計基礎(1)ip、端口等基礎知識ip、端口等基礎知識