TCP與UDP挖掘機(jī)(二)套接字選項(xiàng)

上回主要梳理了TCP和UDP的相關(guān)知識點(diǎn),這一篇主要梳理一些套接字選項(xiàng)撮慨,以作備忘。

套接字選項(xiàng)

  • 用于IP層的套接字選項(xiàng)(IPPROTO_IP)

    參數(shù) 解釋
    IP_ADD_MEMBERSHIP 加入組播(廣播)組。<Br>每個套接字最多可以連接一組IP_ADD_MEMBERSHIPS組柏卤。
    IP_ADD_SOURCE_MEMBERSHIP 加入特定于源的組播組省容。
    每個套接字最多可以連接一組IP_MAX_MEMBERSHIPS組抖拴。
    IP_BLOCK_SOURCE 阻止從給定源到給定多播組的數(shù)據(jù)。
    IP_UNBLOCK_SOURCE 取消阻止從給定源到給定多播組的數(shù)據(jù)腥椒。
    IP_DONTFRAG 設(shè)置或重置IP標(biāo)頭中的do not fragment標(biāo)志阿宅。
    IP_DROP_MEMBERSHIP 離開組播(廣播)組。
    IP_DROP_SOURCE_MEMBERSHIP 離開特定于源的組播組笼蛛。
    IP_MULTICAST_IF 設(shè)置應(yīng)發(fā)送傳出多播數(shù)據(jù)報(bào)的接口洒放。
    IP_MULTICAST_IF2 設(shè)置應(yīng)發(fā)送傳出多播數(shù)據(jù)報(bào)的IPV6接口。
    IP_MULTICAST_LOOP 指定應(yīng)將 傳出的多播數(shù)據(jù)報(bào)的副本 回傳到發(fā)送主機(jī)滨砍,只要它是多播組的成員即可往湿。
    IP_MULTICAST_TTL 在傳出的 多播數(shù)據(jù)報(bào)的IP頭中設(shè)置生存時(shí)間(TTL)榨为。
    IP_OPTIONS 設(shè)置IP標(biāo)頭選項(xiàng)。
    IP_RECVLCLIFADDR 指示是否應(yīng)返回要接收的數(shù)據(jù)報(bào)的本地接口煌茴。
    IP_TOS 在IP標(biāo)頭中設(shè)置服務(wù)類型(TOS)和優(yōu)先級随闺。
    IP_TTL 在IP標(biāo)頭中設(shè)置生存時(shí)間(TTL)。
  • 用于TCP層的套接字選項(xiàng)(IPPROTO_TCP

    參數(shù) 解釋
    TCP_KEEPALIVE 指定TCP在將報(bào)文發(fā)送到連接的另一端之前所需要等待的特定于套接字的活動時(shí)間蔓腐。此設(shè)置是特定于套接字矩乐,將用于替代TCP屬性TCOKEEPALV。僅在套接字上啟用了<font color=red>SO_KEEPALIVE</font>時(shí)才會使用它回论。
    TCP_NODELAY 指定TCP是否遵循<font color=#35b998>Nagle算法</font> 決定何時(shí)發(fā)送數(shù)據(jù)散罕。Nagle算法代表通過減少必須發(fā)送包的個數(shù)來增加網(wǎng)絡(luò)軟件系統(tǒng)的效率。即盡可能發(fā)送大塊數(shù)據(jù)避免網(wǎng)絡(luò)中充斥著大量的小數(shù)據(jù)塊傀蓉。如果要追求高實(shí)時(shí)性欧漱,需要設(shè)置關(guān)閉Nagle算法;如果需要追求減少網(wǎng)絡(luò)交互次數(shù)葬燎,則設(shè)置開啟Nagle算法误甚。
  • 用于套接字層的套接字選項(xiàng)(SOL_SOCKET)

    參數(shù) 解釋
    SO_ACCEPTECONNABORTED 啟用偵聽套接字,以便在accept()之前重置偵聽backlog上的連接時(shí)谱净,阻塞的accept() 將會返回ECONNABORTED窑邦。
    SO_BROADCAST 將消息發(fā)送到廣播地址。
    如果目標(biāo)中指定的接口支持廣播數(shù)據(jù)包壕探,則啟用此選項(xiàng)可讓應(yīng)用程序發(fā)送廣播消息冈钦。
    SO_DEBUG 指定低級別調(diào)試是否處于活動狀態(tài)。
    SO_DONTROUTE 繞過標(biāo)準(zhǔn)的路由機(jī)制李请,即不查找路由瞧筛。
    根據(jù)目標(biāo)地址的網(wǎng)絡(luò)部分定向到相應(yīng)的網(wǎng)絡(luò)接口。啟用后导盅,此選項(xiàng)允許將數(shù)據(jù)包發(fā)送到直接連接的網(wǎng)絡(luò)(主機(jī)具有接口的網(wǎng)絡(luò))较幌。
    SO_ERROR 返回套接字上的任何掛起錯誤,并清除錯誤狀態(tài)认轨。
    可以使用它來檢查連接的數(shù)據(jù)報(bào)套接字上的異步錯誤或其他異步錯誤(其中一個套接字調(diào)用未明確返回的錯誤)绅络。
    SO_KEEPALIVE 保持連接月培。
    在空閑套接字上發(fā)送探測嘁字,以驗(yàn)證套接字是否仍處于活動狀態(tài)。
    SO_LINGER 延遲關(guān)閉連接杉畜。
    啟用此選項(xiàng)纪蜒,在調(diào)用close時(shí)如果存在未發(fā)送的數(shù)據(jù)時(shí),在close期間將阻止調(diào)用應(yīng)用程序此叠,直到數(shù)據(jù)被傳輸或連接超時(shí)纯续。
    SO_OOBINLINE 切換帶外數(shù)據(jù)的接收。
    啟用此選項(xiàng)會導(dǎo)致帶外數(shù)據(jù)在接收時(shí)放入正常數(shù)據(jù)輸入隊(duì)列,使其可用于recvfrom和recv猬错,而無需在這些調(diào)用中指定MSG_OOB標(biāo)志窗看。
    禁用此選項(xiàng)會導(dǎo)致帶外數(shù)據(jù)在接收時(shí)放入優(yōu)先級數(shù)據(jù)輸入隊(duì)列,只有通過在這些函數(shù)中指定MSG_OOB標(biāo)志才能使其可用于recvfrom和recv倦炒。
    什么是帶外數(shù)據(jù)
    SO_RCVBUF 獲取接收緩沖區(qū)的大小显沈。
    SO_RCVLOWAT 獲取接收緩沖區(qū)的下限。
    這是在成功完成read逢唤,recv拉讯,recvfrom,activate_on_receipt或activate_on_receipt_with_length函數(shù)之前必須接收的最小數(shù)據(jù)量鳖藕。
    SO_RCVTIMEO 獲取接收超時(shí)值魔慷。
    該值是系統(tǒng)在超時(shí)操作之前等待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函數(shù)成功完成的時(shí)間隧熙。返回值0表示系統(tǒng)不會超時(shí)。
    SO_REUSEADDR 允許本地地址復(fù)用幻林。
    啟用此選項(xiàng)允許綁定已使用的本地地址贞盯。
    SO_SNDBUF 設(shè)置發(fā)送緩沖區(qū)的大小。
    SO_SNDLOWAT 獲取發(fā)送緩沖區(qū)的下限沪饺。
    啟用此選項(xiàng)即代表這是發(fā)送緩沖區(qū)的必須可用最小空間量躏敢。以允許處理select函數(shù)。
    SO_SNDTIMEO 獲取發(fā)送超時(shí)值整葡。
    該值是系統(tǒng)在超時(shí)操作之前等待發(fā)送件余,發(fā)送,寫入或?qū)懭牍δ芡瓿傻臅r(shí)間遭居。
    SO_TCPDELAY 返回獲取TCP延遲確認(rèn)計(jì)時(shí)器值啼器。<Br>該值是z / TPF系統(tǒng)在發(fā)送獨(dú)立確認(rèn)(ACK)以確認(rèn)此TCP套接字上的數(shù)據(jù)之前等待的時(shí)間。
    SO_TCPDUACK 獲取快速重傳值的重復(fù)確認(rèn)(ACK)俱萍。
    SO_TYPE 獲取套接字的類型端壳。
    SO_UDPMPSIZ 獲取套接字的最大數(shù)據(jù)包大小。
    此選項(xiàng)進(jìn)隊(duì)UDP套接字有效枪蘑。

參考文獻(xiàn):getsockopt


Ending......

請關(guān)注微信公眾號:進(jìn)擊的阿黑损谦,謝謝岖免。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市照捡,隨后出現(xiàn)的幾起案子颅湘,更是在濱河造成了極大的恐慌,老刑警劉巖栗精,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件栅炒,死亡現(xiàn)場離奇詭異,居然都是意外死亡术羔,警方通過查閱死者的電腦和手機(jī)赢赊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來级历,“玉大人释移,你說我怎么就攤上這事×戎常” “怎么了玩讳?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長嚼贡。 經(jīng)常有香客問我熏纯,道長,這世上最難降的妖魔是什么粤策? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任樟澜,我火速辦了婚禮,結(jié)果婚禮上叮盘,老公的妹妹穿的比我還像新娘秩贰。我一直安慰自己,他們只是感情好柔吼,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布毒费。 她就那樣靜靜地躺著,像睡著了一般愈魏。 火紅的嫁衣襯著肌膚如雪觅玻。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天培漏,我揣著相機(jī)與錄音溪厘,去河邊找鬼。 笑死北苟,一個胖子當(dāng)著我的面吹牛桩匪,可吹牛的內(nèi)容都是我干的打瘪。 我是一名探鬼主播友鼻,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼傻昙,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了彩扔?” 一聲冷哼從身側(cè)響起妆档,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎虫碉,沒想到半個月后贾惦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡敦捧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年须板,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片兢卵。...
    茶點(diǎn)故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡习瑰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出秽荤,到底是詐尸還是另有隱情甜奄,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布窃款,位于F島的核電站课兄,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏晨继。R本人自食惡果不足惜烟阐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望紊扬。 院中可真熱鬧曲饱,春花似錦、人聲如沸珠月。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽啤挎。三九已至驻谆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間庆聘,已是汗流浹背胜臊。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留伙判,地道東北人象对。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像宴抚,于是被迫代替她去往敵國和親勒魔。 傳聞我的和親對象是個殘疾皇子甫煞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容