如果你會建網站外貿新手怎樣用谷歌找客戶
UDP協(xié)議與TCP協(xié)議都是傳輸層協(xié)議,應用層把數據拷貝到傳輸層,后續(xù)動作由下層自行決定。
UDP協(xié)議端格式

16位 UDP 長度 , 表示整個數據報 (UDP 首部 +UDP 數據 ) 的最大長度 ;(也就是65535字節(jié))如果校驗和出錯 , 就會直接丟棄 ;
UDP的特點(相對于TCP)
無連接 : 知道對端的 IP 和端口號就直接進行傳輸 , 不需要建立連接 ;不可靠 : 沒有確認機制 , 沒有重傳機制 ; 如果因為網絡故障該段無法發(fā)到對方 , UDP 協(xié)議層也不會給應用層返回任何錯誤信息;面向數據報 : 不能夠靈活的控制讀寫數據的次數和數量 ;
面向數據報
應用層交給 UDP 多長的報文 , UDP 原樣發(fā)送 , 既不會拆分 , 也不會合并 ;
用 UDP 傳輸 100 個字節(jié)的數據 :
如果發(fā)送端調用一次 sendto, 發(fā)送 100 個字節(jié) , 那么接收端也必須調用對應的一次 recvfrom, 接收 100 個字節(jié); 而不能循環(huán)調用 10 次 recvfrom, 每次接收 10 個字節(jié) ;
UDP的緩沖區(qū)
UDP 沒有真正意義上的 發(fā)送緩沖區(qū) . 調用 sendto 會直接交給內核 , 由內核將數據傳給網絡層協(xié)議進行后續(xù)的傳輸動作;
UDP 具有接收緩沖區(qū) . 但是這個接收緩沖區(qū)不能保證收到的 UDP 報的順序和發(fā)送 UDP 報的順序一致 ; 如果緩沖區(qū)滿了, 再到達的 UDP 數據就會被丟棄 ;
UDP 的 socket 既能讀 , 也能寫 , 這個概念叫做 全雙工。
UDP使用注意事項
我們注意到 , UDP 協(xié)議首部中有一個 16 位的最大長度 . 也就是說一個 UDP 能傳輸的數據最大長度是 64K( 包含 UDP 首部).
然而 64K 在當今的互聯網環(huán)境下 , 是一個非常小的數字 .
如果我們需要傳輸的數據超過 64K, 就需要在應用層手動的分包 , 多次發(fā)送 , 并在接收端手動拼裝 ;
基于UDP的應用層協(xié)議
NFS: 網絡文件系統(tǒng)
TFTP: 簡單文件傳輸協(xié)議
DHCP: 動態(tài)主機配置協(xié)議
BOOTP: 啟動協(xié)議 ( 用于無盤設備啟動 )
DNS: 域名解析協(xié)議(也可以使用TCP)
當然 , 也包括你自己寫 UDP 程序時自定義的應用層協(xié)議 ;
問題1:報頭和有效載荷如何分離,如何交付?
報頭有16位報文長度,減去8字節(jié)固定報頭長度就是有效載荷。