Python網路程式設計(二) TCP IP概念知多少

2021-10-09 05:25:39 字數 1211 閱讀 8843

計算機網路的出現比網際網路(internet)是要早很多的

計算機之間想要實現互聯,必須得規定乙個互相之間通訊的規則(即協議)。而為了將全世界的計算機連線起來,就必須規定一套全球通用的協議,網際網路協議族應運而生。

internet = inter + net
網際網路(internet)即連線網路的網路

任何私有網路只要支援這個協議,就可以進入網際網路

網際網路的協議族包含了成百上千的協議標準,其中最重要的就是tcp/ip協議

例:123.123.123.123

若一台計算機同時接入了多個網路(接入了多個路由器),則該計算機會有很多的ip位址

ip位址對應的實際上是計算機網路的介面,通常是網絡卡

ip協議負責將資料從一台計算機通過網路傳送到另一台計算機。其中資料被分割成一塊一塊的,通過ip資料報傳送出去。由於網際網路鏈路複雜,兩台計算機之間經常有多條線路,因此,路由器就負責決定如何把乙個ip包**出去

ip資料報的特點:

ipv4:是乙個32位整數,數字表示

例:192.168.0.1

ipv6:是乙個128位整數,字串表示

例:2001: 85阿: 0042: 1000: 8a2e: 0370: 7334

tcp協議是建立在ip協議之上的,tcp協議負責在兩台計算機之間建立可靠的連線,保證資料報按順序到達

tcp協議會通過握手建立連線,然後對每乙個ip資料報編號,確保資料報會按順序到達目的地,若中途資料報丟失,則會自動重發

tcp報文除了包含要傳輸的資料之外,還包含了源埠號和目標埠號

因為一台計算機會同時跑許多程式,乙個tcp報文傳輸過來後,需要告知具體是傳送給哪個程式的,要通過程序埠決定

乙個程序也可能同時與多個計算機建立連線,因此會申請很多端

python高階程式設計 網路程式設計(二)

udp 使用者資料報協議,是乙個無連線的簡單的面向資料報的運輸層協議。udp不提供可靠性,它只是把應用程式傳給ip層的資料報傳送出去,但是並 不能保證它們能到達目的地。udp是一種面向無連線的協議,每個資料報都是乙個獨立的資訊,包括完整 的源位址或目的位址,它在網路上以任何可能的路徑傳往目的地,因此...

python網路程式設計 二 使用TCP

1.建立socket 對於乙個客戶端程式來說,建立乙個socket需要兩個步驟。首先,您需要建立乙個實際的socket物件。其次,您需要把它連線到遠端伺服器上。協議家族則定義資料如何被傳輸,通訊型別基本上都是 af inet 和ipv4對應 協議家族表示tcp通訊的sock stream和表示udp...

網路程式設計(二)

網路程式設計基礎 二 struct in addr 這個結構體中儲存的是網路二進位制的ip位址 include struct hostent gethostbyname const char name name 網域名稱 返回值 struct hostent define h addr h addr...