Provided by: manpages-zh_1.6.3.5-1_all bug

NAME (名字)

       udp - IPv4 上面的 UDP 協議.

SYNOPSIS (總覽)

       #include <sys/socket.h>
       #include <netinet/in.h>
       udp_socket = socket(PF_INET, SOCK_DGRAM, 0);

DESCRIPTION(描述)

       這是一個 RFC768 中的用戶數據報協議的實現.  它實現無連接的, 不可靠的數據報信息包服務.  信息
       包可能在它們傳輸到達之前重新排序或者重複.  UDP 通過生成和檢查校驗和來俘獲傳輸錯誤.

       當創建一個 UDP 套接字時, 它的本地和遠程地址是不確定的.  可以使用帶一個有效目的地址作爲參數
       的 sendto(2) 或者 sendmsg(2) 立即發送數據報.如果套接字上調用了 connect(2) 時, 則設置默認的
       目的地址, 數據報可以使用 send(2) 或者 write(2) 發送而不需要指定目的地址.  也可以通過傳遞一
       個地址給  sendto(2) 或者 sendmsg(2) 來發送到其它目的地址.  爲了接收信息包,套接字必須首先用
       bind(2) 綁定一個本地地址, 如果沒有這麼做, 套接字層在第一個用戶接收請求時將自動分配一個本地
       端口.

       所有接收操作只返回一個信息包.   當信息包小於所傳遞的緩衝區時, 則只返回那些數據, 當信息包大
       於所傳遞的緩衝區時,則截斷信息包並設置 MSG_TRUNC 標誌.

       IP 選項可以使用描述於 ip(7) 中的套接字選項發送或接收.  只有打開了合適的 sysctl 時,  內核才
       處理它們(不過即使關閉了它們, 仍然會傳遞給用戶).  參見 ip(7).

       如果設置了 MSG_DONTROUTE 標誌,則發送時目的地址必須指向一個本地接口地址, 而且信息包只發到該
       接口.

       當 UDP 的總長超過接口 MTU(Maximum Transmission Unit 最大傳輸單元)時, UDP  會對信息包進行分
       段.  一個更爲網絡友好的可選方法是使用 path MTU discovery(路徑MTU發現), 它描述於 ip(7) 中的
       IP_PMTU_DISCOVER 部分.

ADDRESS FORMAT (地址格式)

       UDP 使用 IPv4 的 sockaddr_in 地址格式,其描述於 ip(7) 中.

ERROR HANDLING (錯誤處理)

       所有重大錯誤都會以錯誤返回值的方式傳遞給用戶,  即使套接字沒有連接亦如此.這種處理方式有別於
       許多其它的  BSD 套接字實現方法, 除非套接字連接上, 否則那些方法不會傳遞任何錯誤, Linux 的處
       理方式遵循 RFC1122 的要求.

       爲了與以前的代碼兼容,可以設置 SO_BSDCOMPAT SOL_SOCKET 選項令只在套接字已連接的情況下接收遠
       程錯誤( EPROTOEMSGSIZE) 除外.  最好是修復代碼並適當地處理錯誤, 而不要打開該選項.  本地
       產生的錯誤總是傳遞.

       當打開了 IP_RECVERR 選項時, 所有錯誤可以存儲在套接字錯誤隊列中, 並可以通過帶  MSG_ERRQUEUE
       標識設置的 recvmsg(2) 來接收.

ERRORS (錯誤)

       所有列在 socket(7) 或 ip(7) 中的錯誤都可以在一個 UDP 套接字上收發時收到.

       ECONNREFUSED 沒有與目的地址相關聯的接收者.  這可能由於在前面一個通過該套接字發送的信息包而
       引發.

VERSIONS(版本)

       IP_RECVERR 是 Linux 2.2 中的新功能.

CREDITS(尾註)

       本手冊頁的作者爲 Andi Kleen.

SEE ALSO(另見)

       ip(7), socket(7), raw(7).

       RFC768: 用戶數據報協議.
       RFC1122: 主機需求
       RFC1191: 描述 path MTU discovery (路徑MTU查找).

[中文版維護人]

       riser <boomer@ccidnet.com>

[中文版最新更新]

       2001/07/19

《中國linux論壇man手冊頁翻譯計劃》:

       http://cmpp.linuxforum.net

       本頁面中文版由中文 man 手冊頁計劃提供。
       中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh