網路程式設計(二)

2021-08-10 16:26:57 字數 793 閱讀 3248

在之前的部落格中,介紹了傳輸層的一種重要協議-tcp協議。今天來介紹另外一種傳輸層協議-udp

一、udp

udp:無連線的、不可靠的、資料報服務。

首先看一下udp報頭:

從上圖可以看出,udp協議報頭比tcp協議報頭簡單很多,沒有tcp報頭裡面那麼多的保證機制,所以udp較比tcp簡單。

不可靠:udp報頭里沒有多的保證欄位能保證雙方互相傳送的資料一定能到達,即使資料到達了,也沒有機制可以保證資料一定是準確的。

資料報服務:

與流式服務不同的是,資料報服務是n->n的關係,這裡沒有傳送緩衝區和接收緩衝區,所以傳送端傳送多少資料,接收端就接收多少資料。

二、ip協議(網路層):無連線、不可靠、無狀態

1、ipv4報頭

2、ip 分片:

為什麼會有所謂的ip分片?因為有 mtu 的限制: 網路最大傳輸單元

ip 資料報分片完成後最多攜帶1480 個資料(ip 報頭20 位元組)

網路程式設計(二)

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

網路程式設計(二)

一 流式服務和資料報服務 1 位元組流服務 傳送端send 只是將資料寫到tcp傳送緩衝區中,然後將傳送緩衝區中的資料打包成報文段傳送出去。接收端又將接收到的報文段寫到緩衝區中,最後recv 直接取資料。位元組流服務特點 資料沒有明確分割 由底層做分割 不分一定的報文段,什麼時候想發便可將寫入緩衝區...

網路程式設計(二)

1.掌握伺服器怎麼列印誰來連線的我 connect fd accept sock fd,null,null 阻塞,等待客戶端連線 accept函式 引數1 監聽套接字 2.掌握tcp客戶端怎麼寫的,流程 3.熟悉netstat antp命令 該命令可以檢視所有tcp連線狀態 4.套接字有傳送緩衝區和...