国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

《TCP/IP網(wǎng)絡(luò)編程》閱讀筆記--Timewait狀態(tài)和Nagle算法

這篇具有很好參考價值的文章主要介紹了《TCP/IP網(wǎng)絡(luò)編程》閱讀筆記--Timewait狀態(tài)和Nagle算法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1--Timewait狀態(tài)

? ? ? ? 對于服務(wù)器端/客戶端,當一端結(jié)束連接時,會向另一端發(fā)送 FIN 消息;兩端的在經(jīng)過四次揮手過程后,其 Socket 不會馬上消除,而是會處于一個 Time-wait 狀態(tài)的階段,此時 Socket 擁有的端口號并沒有得到釋放,因此不能使用相同的端口號;

? ? ? ? 只有先斷開連接的(先發(fā)送 FIN 消息)的主機才會經(jīng)過 Time-wait 狀態(tài);

? ? ? ? 通過 setsockopt() 函數(shù)來更改 SO_REUSEADDR 的狀態(tài)(設(shè)置為TRUE)可以將處于 Time-wait 狀態(tài)的 Socket?端口號重新分配給新的 Socket,具體代碼參考:代碼實例

《TCP/IP網(wǎng)絡(luò)編程》閱讀筆記--Timewait狀態(tài)和Nagle算法,網(wǎng)絡(luò)編程筆記,tcp/ip

為什么需要 timewait 狀態(tài)?

? ? ? ? ① 對于上圖,當客戶端主動斷開連接,進行四次揮手時,客戶端會進入一個 timewait 狀態(tài),這個狀態(tài)可以確??蛻舳?strong>最后一次發(fā)送的?ACK 信息報可以順利到達服務(wù)器端;

????????因為最后一次發(fā)送的 ACK 信息報可能會在傳輸過程中丟失,導致服務(wù)器端無法順利關(guān)閉連接;這時服務(wù)器端就會以為它第三次揮手傳送的 FIN 信息報沒有送達客戶端,就會啟動超時重傳 FIN 信息報;但如果客戶端直接關(guān)閉了,就會造成永遠收不到服務(wù)器端超時重傳的 FIN 信息報(其實會收到的,但由于客戶端關(guān)閉了,就會將收到的信息報認為是非法信息報,從而返回一個 RST 信息報),同時也無法重新發(fā)送最后一次揮手的 ACK 信息報,從而造成異常。

????????同理,服務(wù)器端不斷超時重傳 FIN 信息報,但一直無法收到 ACK 信息報(只會收到客戶端發(fā)送過來的 RST 信息報),就會無法順利地 close;

? ? ? ? ②?在第四次揮手后,經(jīng)過 2msl 的 timewait 時間足以讓本次連接產(chǎn)生的所有報文段都從網(wǎng)絡(luò)中消失,這樣下一次新的連接中就肯定不會出現(xiàn)舊連接的報文段了;

2--Nagle算法

? ? ? ? Nagle 算法可以防止數(shù)據(jù)包過多而導致的網(wǎng)絡(luò)過載問題,其應(yīng)用于 TCP 層;

? ? ? ? Nagle 算法規(guī)定:只有收到前一數(shù)據(jù)的 ACK 消息時,Nagle 算法才會發(fā)送下一數(shù)據(jù);

? ? ? ? 一般情況下,不使用 Nagle 算法可以提高傳輸速度,當傳輸大文件時可以禁用 Nagle 算法,通過 setsockopt() 函數(shù)來設(shè)置 TCP_NODELAYTrue禁用 Nagle 算法;文章來源地址http://www.zghlxwxcb.cn/news/detail-706251.html

// 禁用 Nagle 算法
int opt_val = 1;
setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (void*)&opt_val, sizeof(opt_val));

// 查看 Nagle 狀態(tài)
int opt_val;
socklen_t opt_len;
opt_len = sizeof(opt_val);
getsockopt(sock, IPPROTO_TCP, TCP_NPDELAY, (void*) &opt_val, &opt_len);

到了這里,關(guān)于《TCP/IP網(wǎng)絡(luò)編程》閱讀筆記--Timewait狀態(tài)和Nagle算法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 《TCP/IP網(wǎng)絡(luò)編程》閱讀筆記--getsockopt和setsockopt的使用

    《TCP/IP網(wǎng)絡(luò)編程》閱讀筆記--getsockopt和setsockopt的使用

    目錄 1--Socket的多種可選項 2--getsocketopt() 3--setsockopt() 4--代碼實例 ? ? ? ? Socket 擁有多種可選項,其可分為 SOL_SOCKET 層,IPPROTO_IP 層和IPPROTO_TCP 層等,一般通過 getsocketopt() 和 setsockopt() 函數(shù)進行獲取和設(shè)置; ① 基于? getsockopt() 函數(shù),利用設(shè)置協(xié)議層為 SOL_SOCKET 和 SO_TYPE 可選項

    2024年02月09日
    瀏覽(47)
  • 《TCP/IP網(wǎng)絡(luò)編程》閱讀筆記--基于TCP的服務(wù)器端/客戶端

    《TCP/IP網(wǎng)絡(luò)編程》閱讀筆記--基于TCP的服務(wù)器端/客戶端

    目錄 1--TCP/IP協(xié)議棧 2--TCP服務(wù)器端默認函數(shù)調(diào)用順序 3--TCP客戶端的默認函數(shù)調(diào)用順序 4--Linux實現(xiàn)迭代回聲服務(wù)器端/客戶端 5--Windows實現(xiàn)迭代回聲服務(wù)器端/客戶端 6--TCP原理 7--Windows實現(xiàn)計算器服務(wù)器端/客戶端 ????????TCP/IP協(xié)議棧共分 4 層,可以理解為數(shù)據(jù)收發(fā)分成了 4 個層

    2024年02月10日
    瀏覽(30)
  • 《TCP/IP網(wǎng)絡(luò)編程》閱讀筆記--基于UDP的服務(wù)器端/客戶端

    《TCP/IP網(wǎng)絡(luò)編程》閱讀筆記--基于UDP的服務(wù)器端/客戶端

    目錄 1--TCP和UDP的主要區(qū)別 2--基于 UDP 的數(shù)據(jù) I/O 函數(shù) 3--基于 UDP 的回聲服務(wù)器端/客戶端 4--UDP客戶端Socket的地址分配 5--UDP存在數(shù)據(jù)邊界 6--UDP已連接與未連接的設(shè)置 ① TCP 提供的是可靠數(shù)據(jù)傳輸服務(wù),而 UDP 提供的是不可靠數(shù)據(jù)傳輸服務(wù); ② UDP 在結(jié)構(gòu)上比 TCP 更簡潔,其不會

    2024年02月09日
    瀏覽(53)
  • 《TCP/IP網(wǎng)絡(luò)編程》閱讀筆記--基于Windows實現(xiàn)Hello Word服務(wù)器端和客戶端

    《TCP/IP網(wǎng)絡(luò)編程》閱讀筆記--基于Windows實現(xiàn)Hello Word服務(wù)器端和客戶端

    目錄 1--Hello Word服務(wù)器端 2--客戶端 3--編譯運行 3-1--編譯服務(wù)器端 3-2--編譯客戶端 3-3--運行 運行結(jié)果:

    2024年02月10日
    瀏覽(63)
  • Linux 網(wǎng)絡(luò)編程學習筆記——一、TCP/IP 協(xié)議族

    Linux 網(wǎng)絡(luò)編程學習筆記——一、TCP/IP 協(xié)議族

    數(shù)據(jù)鏈路層實現(xiàn)了網(wǎng)卡接口的網(wǎng)絡(luò)驅(qū)動程序,以處理數(shù)據(jù)在物理媒介(以太網(wǎng)、令牌環(huán)等)上的傳輸,不同的物理網(wǎng)絡(luò)具有不同的電氣特性,網(wǎng)絡(luò)驅(qū)動程序隱藏了這些細節(jié),為上層協(xié)議提供一個統(tǒng)一的接口。最常用的協(xié)議是 ARP(Address Resolve Protocol,地址解析協(xié)議)和 RARP(

    2024年02月02日
    瀏覽(40)
  • Linux網(wǎng)絡(luò)編程(TCP狀態(tài)轉(zhuǎn)換關(guān)系)

    Linux網(wǎng)絡(luò)編程(TCP狀態(tài)轉(zhuǎn)換關(guān)系)

    本篇文章來講解一下TCP的狀態(tài)轉(zhuǎn)換關(guān)系,學習這個狀態(tài)轉(zhuǎn)換關(guān)系對于我們深入了解網(wǎng)絡(luò)編程是非常有必要的。 客戶端狀態(tài)轉(zhuǎn)換: 1.CLOSED - SYN-SENT:當客戶端嘗試與服務(wù)器建立連接時,客戶端從CLOSED狀態(tài)轉(zhuǎn)換到SYN-SEND狀態(tài)。此時客戶端發(fā)送SYN(同步)包,表示請求建立連接,并

    2024年02月07日
    瀏覽(19)
  • 《TCP IP網(wǎng)絡(luò)編程》

    《TCP IP網(wǎng)絡(luò)編程》

    ? ? ? ? 2023.6.28 正式開始學習網(wǎng)絡(luò)編程。 每一章每一節(jié)的筆記都會記錄在博客中以便復習。 ? ? ? ? 網(wǎng)絡(luò)編程又叫套接字編程。所謂網(wǎng)絡(luò)編程,就是編寫程序使兩臺連網(wǎng)的計算機相互交換數(shù)據(jù)。 為什么叫套接字編程? 我們平常將插頭插入插座上就能從電網(wǎng)中獲取電力,同

    2024年02月11日
    瀏覽(25)
  • TCP/IP網(wǎng)絡(luò)編程(三)

    TCP/IP網(wǎng)絡(luò)編程(三)

    多播(Multicast)方式的數(shù)據(jù)傳輸是 基于 UDP 完成的 。因此 ,與 UDP 服務(wù)器端/客戶端的實現(xiàn)方式非常接近。區(qū)別在于,UDP 數(shù)據(jù)傳輸以單一目標進行,而多播數(shù)據(jù) 同時傳遞到加入(注冊)特定組的大量主機 。換言之, 采用多播方式時,可以同時向多個主機傳遞數(shù)據(jù) 。 14.1.1 多

    2024年02月03日
    瀏覽(36)
  • TCP/IP網(wǎng)絡(luò)編程(一)

    TCP/IP網(wǎng)絡(luò)編程(一)

    1.1.1 構(gòu)建打電話套接字 以電話機打電話的方式來理解套接字。 **調(diào)用 socket 函數(shù)(安裝電話機)時進行的對話:**有了電話機才能安裝電話,于是就要準備一個電話機,下面函數(shù)相當于電話機的套接字。 **調(diào)用 bind 函數(shù)(分配電話號碼)時進行的對話:**套接字同樣如此。就想

    2024年02月03日
    瀏覽(26)
  • TCP/IP網(wǎng)絡(luò)編程(二)

    TCP/IP網(wǎng)絡(luò)編程(二)

    本章將討論如何優(yōu)雅地斷開相互連接的套接字。之前用的方法不夠優(yōu)雅是因為,我們是調(diào)用 close 或 closesocket 函數(shù)單方面斷開連接的。 TCP中的斷開連接過程比建立連接過程更重要,因為連接過程中一般不會出現(xiàn)大的變數(shù),但斷開過程有可能發(fā)生預想不到的情況,因此應(yīng)準確掌

    2024年02月03日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包