https://blog.csdn.net/zhihuiy...
這篇文章寫的也不錯,socket={ip,port}
暫時不理解進程爲何要用ip+協議+port做爲惟一標識linux
目錄編程
ip地址:用來在網絡中標記一臺電腦,好比192.168.1.1;在本地局域網上是惟一的。服務器
每個IP地址包括兩部分:網絡地址和主機地址網絡
一個A類IP地址由1字節的網絡地址和3字節主機地址組成,網絡地址的最高位必須是「0」
地址範圍1.0.0.1-126.255.255.254
二進制表示爲:socket
00000001 00000000 00000000 00000001 - 01111110 11111111 11111111 11111110
可用的A類網絡有126個,每一個網絡能容納1677214個主機tcp
一個B類IP地址由2個字節的網絡地址和2個字節的主機地址組成,網絡地址的最高位必須是「10」
地址範圍128.1.0.1-191.255.255.254
二進制表示爲:函數
10000000 00000001 00000000 00000001 - 10111111 11111111 11111111 11111110
可用的B類網絡有16384個,每一個網絡能容納65534主機工具
一個C類IP地址由3字節的網絡地址和1字節的主機地址組成,網絡地址的最高位必須是「110」
範圍192.0.1.1-223.255.255.254
二進制表示爲:測試
11000000 00000000 00000001 00000001 - 11011111 11111111 11111110 11111110
C類網絡可達2097152個,每一個網絡能容納254個主機ui
D類IP地址第一個字節以「1110」開始,它是一個專門保留的地址。
它並不指向特定的網絡,目前這一類地址被用在多點廣播(Multicast)中
多點廣播地址用來一次尋址一組計算機 s 地址範圍
224.0.0.1-239.255.255.254
以「1111」開始,爲未來使用保留
E類地址保留,僅做實驗和開發用
在這麼多網絡IP中,國際規定有一部分IP地址是用於咱們的局域網使用,也就
是屬於私網IP,不在公網中使用的,它們的範圍是:
10.0.0.0~10.255.255.255 172.16.0.0~172.31.255.255 192.168.0.0~192.168.255.255
注意:
IP地址127.0.0.1~127.255.255.255用於迴路測試,
如:127.0.0.1能夠表明本機IP地址,用 http://127.0.0.1 就能夠測試本機中配置的Web服務器。
端口是經過端口號(一個整數)來標記的,範圍是從0到65535
注意:
端口數不同的*nix系統不同,還能夠手動修改
端口號不是隨意使用的,而是按照必定的規定進行分配。端口的分類標準有好幾種,筆者在這裏不作詳細講解,只介紹一下知名端口和動態端口
知名端口是 衆所周知的端口號,範圍從0到1023
在這裏爲了方便理解,咱們能夠將端口號想象成手機號,一些經常使用的功能使用的號碼是你們都知道的,比如電話號碼1十、1008六、10010同樣,他們在電話中的地位和知名端口在端口的地位是相似的
通常狀況下,若是一個程序須要使用知名端口的須要有root權限
動態端口的範圍是從1024到65535
之因此稱爲動態端口,是由於它通常不固定分配某種服務,而是動態分配。
動態分配是指當一個系統程序或應用程序程序須要網絡通訊時,它向主機申請一個端口,主機從可用的端口號中分配一個供它使用。
當這個程序關閉時,同時也就釋放了所佔用的端口號
注意:
進程:運行的程序以及運行時用到的資源這個總體稱之爲進程
進程間通訊指:運行的程序之間的數據共享
注意:
套接字使用流程 與 文件的使用流程很相似
- 網絡通訊能夠說是在網絡中,知道互相之間的「IP地址(在網絡層)」以肯定相互是誰,再經過知道要進行通訊的「協議+端口號(在傳輸層)」,以肯定通訊雙方進行通訊的工具即進程,而在這過程當中必然涉及到套接口的描述字及其所用的資源的分配(軟件及硬件),當下實現這一功能的多采用socket()函數。
- 詳細的來講,一臺擁有IP地址的主機能夠提供許多服務,好比HTTP(萬維網服務)、FTP(文件傳輸)、SMTP(電子郵件)等,這些服務徹底能夠經過1個IP地址來實現。那麼,主機是怎樣區分不一樣的網絡服務呢?顯然不能只靠IP地址,由於IP地址與網絡服務的關係是一對多的關係。
- 其實是經過「IP地址+端口號」來區分不一樣的服務的。須要注意的是,端口並非一一對應的。好比你的電腦做爲客戶機訪問一臺WWW服務器時,WWW服務器使用「80」端口與你的電腦通訊,但你的電腦則可能使用「3457」這樣的端口。