傳輸層協議之UDP

2021-08-21 03:48:19 字數 1358 閱讀 6463

埠號的範圍劃分:

範圍0~1023

知名埠號:一些著名的協議,它們的埠號都是固定的.

1024~65535

普通埠號:作業系統動態分配的埠號.例如:客戶端程式的埠號,就是由作業系統從這個範圍分配的

常見的著名埠號:

檢視網路狀態的指令:

netstat + [選項]

常用選項:

-a(all)顯示所有選項

-u(udp)僅顯示與udp相關的選項

-t(tcp)僅顯示與tcp相關的資訊

-p顯示建立相關鏈結的程式名

-l僅顯示在listen(監聽)的服務狀態

-n拒絕顯示別名,把能顯示的數字全部轉化為數字

由程序名檢視程序的方法:

語法:pidof

[程序名]

功能:通過程序名檢視程序id

udp協議

udp協議端格式:如下圖所示

圖中:

在udp首部中有乙個16位的udp長度:表示udp的首部+udp的資料的最大長度(對於當今世界的網際網路環境而言,64k是乙個很小的數字.那麼如果有乙個很大的業務需要使用udp協議時,就需要在應用層將業務手動分包,多次傳送,並在接收端拼接).

16位udp的校驗和:在這兒只用的是crc迴圈冗餘校驗法.(注意:在linux作業系統中可以使用md5sum來生成檔案的校驗和)

udp協議的特點:

1.無連線:只要知道對端的ip和埠號就可以直接進行傳輸而不需要建立連線.(例如:生活中我們發簡訊,在發簡訊時,不管對方會不會收到直接傳送簡訊)

2.不可靠:沒有確認機制,沒有重傳機制;例如:如果因為網路故障而無法傳送到達對方,但是udp協議也不會給應用層傳送任何錯誤的訊息.

3.面向資料報:不能夠靈活的控制讀寫的次數和數量.應用層交給udp多長的報文,udp會原樣傳送而不會做出任何合併和拆分.

4.全雙工:udp的socket既可以讀也可以寫.

對於udp協議的緩衝區:

其實udp沒有真正的緩衝區,呼叫sendto函式時會直接將資料交給核心,有核心將資料傳送給網路層協議進行後續的傳輸.

但是udp具有接收緩衝區,但是這個緩衝區不能保證收到的udp的順序和傳送udp的順序一致.如果udp的接受緩衝區滿了,那麼就會將再收到的資料丟棄.

一些常見的基於udp的應用層協議有:

傳輸層 UDP協議

資料單位 特點具體實現 要求udp首部格式 傳送udp請求的客戶端圖釋 udp 傳送的資料單位協議是 udp 報文或使用者資料報 udp 是無連線的,即傳送資料之前不需要建立連線 udp 使用盡最大努力交付,即不保證可靠交付,同時也不使用擁塞控制 udp 是面向報文的.udp 沒有擁塞控制,很適合多...

傳輸層 UDP協議

傳輸層 udp協議 資料單位 特點具體實現 要求udp首部格式 傳送udp請求的客戶端圖釋 udp 傳送的資料單位協議是 udp 報文或使用者資料報 udp 是無連線的,即傳送資料之前不需要建立連線 udp 使用盡最大努力交付,即不保證可靠交付,同時也不使用擁塞控制 udp 是面向報文的.udp 沒...

傳輸層 UDP協議

資料單位 特點具體實現 要求udp首部格式 傳送udp請求的客戶端圖釋 udp 傳送的資料單位協議是 udp 報文或使用者資料報 udp 是無連線的,即傳送資料之前不需要建立連線 udp 使用盡最大努力交付,即不保證可靠交付,同時也不使用擁塞控制 udp 是面向報文的.udp 沒有擁塞控制,很適合多...