TCP與UDP挖掘機(二)套接字選項

套接字選項
用於IP層的套接字選項(IPPROTO_IP)
參數 解釋
IP_ADD_MEMBERSHIP 加入組播(廣播)組。
每個套接字最多可以連接一組IP_ADD_MEMBERSHIPS組。
IP_ADD_SOURCE_MEMBERSHIP 加入特定於源的組播組。
每個套接字最多可以連接一組IP_MAX_MEMBERSHIPS組。
IP_BLOCK_SOURCE 阻止從給定源到給定多播組的數據。
IP_UNBLOCK_SOURCE 取消阻止從給定源到給定多播組的數據。
IP_DONTFRAG 設置或重置IP標頭中的do not fragment標誌。
IP_DROP_MEMBERSHIP 離開組播(廣播)組。
IP_DROP_SOURCE_MEMBERSHIP 離開特定於源的組播組。
IP_MULTICAST_IF 設置應發送傳出多播數據報的接口。
IP_MULTICAST_IF2 設置應發送傳出多播數據報的IPV6接口。
IP_MULTICAST_LOOP 指定應將 傳出的多播數據報的副本 回傳到發送主機,只要它是多播組的成員即可。
IP_MULTICAST_TTL 在傳出的 多播數據報的IP頭中設置生存時間(TTL)。
IP_OPTIONS 設置IP標頭選項。
IP_RECVLCLIFADDR 指示是否應返回要接收的數據報的本地接口。
IP_TOS 在IP標頭中設置服務類型(TOS)和優先級。
IP_TTL 在IP標頭中設置生存時間(TTL)。
用於TCP層的套接字選項(IPPROTO_TCP
參數 解釋
TCP_KEEPALIVE 指定TCP在將報文發送到連接的另一端之前所需要等待的特定於套接字的活動時間。此設置是特定於套接字,將用於替代TCP屬性TCOKEEPALV。僅在套接字上啓用了SO_KEEPALIVE時纔會使用它。
TCP_NODELAY 指定TCP是否遵循Nagle算法 決定何時發送數據。Nagle算法代表通過減少必鬚髮送包的個數來增加網絡軟件系統的效率。即儘可能發送大塊數據避免網絡中充斥着大量的小數據塊。如果要追求高實時性,需要設置關閉Nagle算法;如果需要追求減少網絡交互次數,則設置開啓Nagle算法。
用於套接字層的套接字選項(SOL_SOCKET)
參數 解釋
SO_ACCEPTECONNABORTED 啓用偵聽套接字,以便在accept()之前重置偵聽backlog上的連接時,阻塞的accept() 將會返回ECONNABORTED。
SO_BROADCAST 將消息發送到廣播地址。
如果目標中指定的接口支持廣播數據包,則啓用此選項可讓應用程序發送廣播消息。
SO_DEBUG 指定低級別調試是否處於活動狀態。
SO_DONTROUTE 繞過標準的路由機制,即不查找路由。
根據目標地址的網絡部分定向到相應的網絡接口。啓用後,此選項允許將數據包發送到直接連接的網絡(主機具有接口的網絡)。
SO_ERROR 返回套接字上的任何掛起錯誤,並清除錯誤狀態。
可以使用它來檢查連接的數據報套接字上的異步錯誤或其他異步錯誤(其中一個套接字調用未明確返回的錯誤)。
SO_KEEPALIVE 保持連接。
在空閒套接字上發送探測,以驗證套接字是否仍處於活動狀態。
SO_LINGER 延遲關閉連接。
啓用此選項,在調用close時如果存在未發送的數據時,在close期間將阻止調用應用程序,直到數據被傳輸或連接超時。
SO_OOBINLINE 切換帶外數據的接收。
啓用此選項會導致帶外數據在接收時放入正常數據輸入隊列,使其可用於recvfrom和recv,而無需在這些調用中指定MSG_OOB標誌。
禁用此選項會導致帶外數據在接收時放入優先級數據輸入隊列,只有通過在這些函數中指定MSG_OOB標誌才能使其可用於recvfrom和recv。
什麼是帶外數據
SO_RCVBUF 獲取接收緩衝區的大小。
SO_RCVLOWAT 獲取接收緩衝區的下限。
這是在成功完成read,recv,recvfrom,activate_on_receipt或activate_on_receipt_with_length函數之前必須接收的最小數據量。
SO_RCVTIMEO 獲取接收超時值。
該值是系統在超時操作之前等待read,recv,recvfrom,tpf_read_TCP_message,activate_on_receipt,activate_on_receipt_with_length,activate_on_receipt_of_TCP_message,accept,activate_on_accept或connect函數成功完成的時間。返回值0表示系統不會超時。
SO_REUSEADDR 允許本地地址複用。
啓用此選項允許綁定已使用的本地地址。
SO_SNDBUF 設置發送緩衝區的大小。
SO_SNDLOWAT 獲取發送緩衝區的下限。
啓用此選項即代表這是發送緩衝區的必須可用最小空間量。以允許處理select函數。
SO_SNDTIMEO 獲取發送超時值。
該值是系統在超時操作之前等待發送,發送,寫入或寫入功能完成的時間。
SO_TCPDELAY 返回獲取TCP延遲確認計時器值。
該值是z / TPF系統在發送獨立確認(ACK)以確認此TCP套接字上的數據之前等待的時間。
SO_TCPDUACK 獲取快速重傳值的重複確認(ACK)。
SO_TYPE 獲取套接字的類型。
SO_UDPMPSIZ 獲取套接字的最大數據包大小。
此選項進隊UDP套接字有效。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章