網絡是由節點和連線構成,表示諸多對象及其相互聯繫。linux
一我的玩:編程
兩我的玩:服務器
多我的玩:網絡
說明socket
單機
的世界是多麼的孤單使用網絡的目的tcp
1. 什麼是協議函數
有的說英語,有的說中文,有的說德語,說同一種語言的人能夠交流,不一樣的語言之間就不行了工具
爲了解決不一樣種族人之間的語言溝通障礙,現規定國際通用語言是英語,這就是一個規定,這就是協議學習
2. 計算機網絡溝通用什麼測試
如今的生活中,不一樣的計算機只須要可以聯網(有線無線均可以)那麼就能夠相互進行傳遞數據,那麼不一樣種類之間的計算機究竟是怎麼進行數據傳遞的呢?就像說不一樣語言的人溝通同樣,只要有一種你們都承認都遵照的協議便可,那麼這個計算機都遵照的網絡通訊協議叫作TCP/IP協議
3. TCP/IP協議(族)
早期的計算機網絡,都是由各廠商本身規定一套協議,IBM、Apple和Microsoft都有各自的網絡協議,互不兼容
爲了把全世界的全部不一樣類型的計算機都鏈接起來,就必須規定一套全球通用的協議,爲了實現互聯網這個目標,互聯網協議簇(Internet Protocol Suite)就是通用協議標準。
由於互聯網協議包含了上百種協議標準,可是最重要的兩個協議是TCP和IP協議,因此,你們把互聯網的協議簡稱TCP/IP協議
經常使用的網絡協議以下圖所示:
說明:
網際層也稱爲:網絡層
網絡接口層也稱爲:鏈路層
那麼TCP/IP協議中的端口指的是什麼呢?端口就好一個房子的門,是出入這間房子的必經之路。
若是一個進程須要收發網絡數據,那麼就須要有這樣的端口
在linux系統中,端口能夠有65536(2的16次方)個之多!
既然有這麼多,操做系統爲了統一管理,因此進行了編號,這就是端口號
2. 端口號
端口是經過端口號來標記的,端口號只有整數,範圍是從0到65535
3. 端口是怎樣分配的
4.知名端口(Well Known Ports)
知名端口是衆所周知的端口號,範圍從0到1023
80端口分配給HTTP服務
21端口分配給FTP服務
能夠理解爲,一些經常使用的功能使用的號碼比如:電話號碼1十、1008六、10010同樣
通常狀況下,若是一個程序須要使用知名端口的須要有root權限
5.動態端口(Dynamic Ports)
六、端口總結
端口有什麼用呢 ? 咱們知道,一臺擁有IP地址的主機能夠提供許多服務,好比HTTP(萬維網服務)、FTP(文件傳輸)、SMTP(電子郵件)等,這些服務徹底能夠經過1個IP地址來實現。那麼,主機是怎樣區分不一樣的網絡服務呢?顯然不能只靠IP地址,由於IP地址與網絡服務的關係是一對多的關係。其實是經過「IP地址+端口號」來區分不一樣的服務的。 須要注意的是,端口並非一一對應的。好比你的電腦做爲客戶機訪問一臺WWW服務器時,WWW服務器使用「80」端口與你的電腦通訊,但你的電腦則可能使用「3457」這樣的端口。
IP地址就像是咱們的家庭住址同樣,若是你要寫信給一我的,你就要知道他(她)的地址,這樣郵遞員才能把信送到。計算機發送信息就比如是郵遞員,它必須知道惟一的「家庭地址」才能不至於把信送錯人家。只不過咱們的地址使用文字來表示的,計算機的地址用二進制數字表示。
IP地址是一個32位的二進制數,一般被分割爲4個「8位二進制數」(也就是4個字節)。IP地址一般用「點分十進制」表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之間的十進制整數。例:點分十進IP地址(100.4.5.6),其實是32位二進制數(01100100.00000100.00000101.00000110)。
ip地址的分類
A類IP地址
B類IP地址
C類IP地址
D類地址用於多點廣播
E類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
http://127.0.0.1
就能夠測試本機中配置的Web服務器。
要想理解什麼是子網掩碼,就不能不瞭解IP地址的構成。互聯網是由許多小型網絡構成的,每一個網絡上都有許多主機,這樣便構成了一個有層次的結構。IP地址在設計時就考慮到地址分配的層次特色,將每一個IP地址都分割成網絡號和主機號兩部分,以便於IP地址的尋址操做。
IP地址的網絡號和主機號各是多少位呢?
若是不指定,就不知道哪些位是網絡號、哪些是主機號,這就須要經過子網掩碼來實現。
子網掩碼不能單獨存在,它必須結合IP地址一塊兒使用。
子網掩碼只有一個做用,就是將某個IP地址劃分紅網絡地址和主機地址兩部分子網掩碼的設定必須遵循必定的規則。
與IP地址相同,子網掩碼的長度也是32位,
假設IP地址爲「192.168.1.1」子網掩碼爲「255.255.255.0」,子網掩碼裝換二進制位:11111111 11111111 11111111 00000000
其中,「1」有24個,表明與此相對應的IP地址左邊24位是網絡號;
「0」有8個,表明與此相對應的IP地址右邊8位是主機號。
這樣,子網掩碼就肯定了一個IP地址的32位二進制數字中哪些是網絡號、哪些是主機號。
這對於採用TCP/IP協議的網絡來講很是重要,只有經過子網掩碼,才能代表一臺主機所在的子網與其餘子網的關係,使網絡正常工做。
最經常使用的子網掩碼是「255.255.255.0」的網絡:
可是實際可用的IP地址數量是256-2,即254個,由於主機號不能全是「0」或全是「1」。
1.本地的進程間通訊(IPC)有不少種方式,例如
以上通訊方式都是在一臺機器上不一樣進程之間的通訊方式,那麼問題來了,網絡中進程之間如何通訊?
2. 網絡中進程之間如何通訊
ip地址,協議,端口
就能夠標識網絡的進程了,網絡中的進程通訊就能夠利用這個標誌與其它進程進行交互3. 什麼是socket
套接字
) 是進程間通訊的一種方式,它與其餘進程間通訊的一個主要不一樣是:4. 建立socket
在 Python 中 使用socket 模塊的函數 socket 就能夠完成:
socket.socket(AddressFamily, Type)
說明:
函數 socket.socket 建立一個 socket,返回該 socket 的描述符,該函數帶有兩個參數:
建立一個tcp socket(tcp套接字)
import socket
s = socket.socket(socket.AF_INET, SOCK_STREAM) print 'Socket Created'
建立一個udp socket(udp套接字)
import socket
s = socket.socket(socket.AF_INET, SOCK_DGRAM) print 'Socket Created'