欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
TCP

在闡述TCP連接建立和終止的原理時(shí),課本使用了Telnetdiacard服務(wù)。這里對Telnet作一個(gè)簡(jiǎn)短回顧。

Telnet協(xié)議允許用戶(hù)通過(guò)網(wǎng)絡(luò )登錄遠程的計算機系統。這里所指的計算機系統不僅僅是基于Unix的,只要支持Telnet協(xié)議的系統都可登錄。登錄通常需要賬號,但有些遠程主機允許無(wú)賬號登錄。連接一經(jīng)建立,你在終端的任何按鍵都將傳遞給遠程主機。Telnet服務(wù)的Well-known端口號是23。

telnet命令:
telnet [options] [host [port]]
host
可以是主機域名或者是IP地址
常用的兩個(gè)選項 -a 嘗試自動(dòng)登錄
              
-l
指定登錄用戶(hù)

telnet客戶(hù)端有兩種操作模式:輸入模式(input mode)和命令模式(command mode)。不帶參數直接執行telnet,終端顯示telnet>提示符,這就是命令模式。在與服務(wù)器建立連接之后就進(jìn)入輸入模式。除了^],其他任何輸入模式數據都將通過(guò)服務(wù)器telnet進(jìn)程傳輸給服務(wù)器用作執行命令。^]telnetescape字符:從輸入模式退出到命令模式(Ctrl+]按鍵)。

幾個(gè)telnet命令:
?或help 顯示telnet命令列表
close
quit 關(guān)閉telnet連接
z
掛起telnet會(huì )話(huà),返回本地主機,用fg重啟telnet



    tcpdump是網(wǎng)絡(luò )數據采集分析工具。對tcpdump輸出的簡(jiǎn)單介紹。
09:33:11.723111 IP 192.168.1.100.43136 > 210.32.0.10.telnet: S 470329474:470329474(0) win 5840 <mss 1460,sackOK,timestamp 1366083 0,nop,wscale 2>
09:33:11.723111
時(shí)間,精確到1微秒
IP 192.168.1.100.43136 > 210.32.0.10.telnet:S
IP.端口號>目標IP.端口號:標志
470329474:470329474(0)
順序號:隱含結尾順序號(數據長(cháng)度)。其中隱含的結尾順序號出現在兩種情況下:1TCP段中包含數據字段;2SYN,FINRST至少有一個(gè)打開(kāi)
win 5840
窗口大小5840字節(注若每次都要顯示絕對數序號,需要在tcpdump后加參數-S,否則后續的顯示相對順序號)
mss 1460
最大段大小 1460字節
(后面字段再補充)


    建立TCP連接的步驟:
    1.
請求端(通常稱(chēng)為客戶(hù)端,client)發(fā)出一個(gè)SYN段,該段中指明了它希望連接服務(wù)器的端口號,以及它自己的ISN;
    2.
服務(wù)器用它自己的SYN段響應客戶(hù)端請求,也指明了它的ISN。同時(shí),服務(wù)器用客戶(hù)端的ISN+1確認收到客戶(hù)端SYN;
    3.
客戶(hù)端用服務(wù)器ISN+1確認收到服務(wù)器的SYN。
這通常稱(chēng)為三步握手(three-way handshake

    我們說(shuō)發(fā)出第一個(gè)SYN的那端執行active open,而接收這個(gè)SYN,發(fā)出另一個(gè)SYN的那端執行passive open。

TCP連接終止
    由于TCP提供全雙工的服務(wù),每個(gè)方向的數據流獨立傳輸,因此需要對每個(gè)方向的傳輸進(jìn)行單獨關(guān)閉,這通常引起所謂的TCP半關(guān)閉(half-close)。原則是每一端在發(fā)送完數據后向另一端發(fā)出FIN。當TCP收到一個(gè)FIN后,它就通知應用程序這個(gè)方向的數據流已經(jīng)結束。圖


 

連接通常由客戶(hù)端發(fā)起。但兩端都可以主動(dòng)關(guān)閉(active close)它,一般是由客戶(hù)端來(lái)決定中止連接,因為它受用戶(hù)交互。
    與前文類(lèi)似,稱(chēng)發(fā)出第一個(gè)FIN的那端執行active close,而另一端執行passive close。

在連接建立時(shí)可能超時(shí),需要在若干時(shí)間后重試。 

最大段大?。?span lang="EN-US">MSS)是TCP可以發(fā)送出去的最大數據塊(chunk of data)。在連接建立時(shí),每一端通告它的MSS。如果一端沒(méi)有收到另一端的MSS通告,那么數據塊大小將默認為536字節,IP數據報就是576字節(加20字節的IP頭和20字節的TCP頭)。

一般的,MSS越大越好,但要考慮分段(fragmentation)的因素。為避免分段,連接雙方往往不發(fā)送超過(guò)較小MSS的數據塊。但如果中間網(wǎng)絡(luò )的MSS小于連接兩端較小的MSS,比如兩端MSS都是536,而中間網(wǎng)絡(luò )的MSS296,就將會(huì )發(fā)生分段,具體后續學(xué)習。

半關(guān)閉狀態(tài):連接一端停止了輸出,但仍可以從另一端接收數據。 


 

TCP狀態(tài)遷移圖

 

 

ESTABLISHED狀態(tài),雙方已經(jīng)建立了連接,可以雙向地進(jìn)行數據傳輸。CLOSED實(shí)際上不是一個(gè)狀態(tài),這里假想它是狀態(tài)的起點(diǎn)和終點(diǎn)。

如果狀態(tài)SYN_RCVD是從LISTEN遷移過(guò)來(lái)的,那么它在收到RST(重置連接)后可以從SYN_RCVD返回到LISTEN;如果是從SYN_SENT遷移過(guò)來(lái)的,則不可再遷移到LISTEN狀態(tài)。也就是說(shuō),我們執行被動(dòng)打開(kāi)(進(jìn)入LISTEN狀態(tài)),接收到一個(gè)SYN,并發(fā)送對它的ACK和另一個(gè)SYN,即進(jìn)入SYN_RCVD狀態(tài)。這時(shí)如果收到ACK,將進(jìn)入ESTABLISHED狀態(tài);但要是收到RST,則又回到LISTEN狀態(tài),等待新的連接請求的到來(lái)。

TIME_WAIT狀態(tài)也稱(chēng)為2MSL等待狀態(tài)。在TCP實(shí)現中,必須給段最大生存時(shí)間(maximum segment lifetime ,MSL)指定一個(gè)值。這是TCP段在網(wǎng)絡(luò )中存在而不被丟棄的最大時(shí)間量。但由于TCP段是封裝在IP數據報中的,因此MSL又受TTLIP數據報的存活時(shí)間)限制。在實(shí)際中TTL是基于跳(hop)的數目,而非計時(shí)器。

MSL設置值的原則:TCP執行一個(gè)主動(dòng)關(guān)閉,當它發(fā)送最后一個(gè)ACK后,連接必須在TIME_WAIT狀態(tài)停留2MSL時(shí)間。這是為了在最后一個(gè)ACK丟失的情況下對其重發(fā)。處在TIME_WAIT狀態(tài)的另一個(gè)影響是:在此連接中定義的socket對不能被重用,重用只能在2MSL狀態(tài)結束以后。具體實(shí)例見(jiàn)課本P243-245。

當連接處于2MSL狀態(tài)時(shí),它的任何延遲的TCP段都將被丟棄。連接由socket對來(lái)定義,我們稱(chēng)一個(gè)連接的新的實(shí)例(instance)為該連接的一個(gè)化身(incarnation)。由于在2MSL狀態(tài)時(shí)定義一個(gè)連接的socket對不能被重用,因此該連接前一個(gè)化身的TCP段是不會(huì )被后一個(gè)化身曲解(misinterprete)的。

通常是客戶(hù)端執行主動(dòng)關(guān)閉,進(jìn)入TIME_WAIT狀態(tài),服務(wù)器執行被動(dòng)關(guān)閉,不會(huì )進(jìn)入TIME_WAIT狀態(tài)。言下之意就是如果我們終止一個(gè)客戶(hù)端,并立即重啟一個(gè)相同客戶(hù)端,那么新的客戶(hù)端將不能使用相同的本地端口號。但這不成問(wèn)題,因為客戶(hù)端使用短暫的(ephemeral)端口,我們并不關(guān)心使用的本地端口號是多少。

但這對于服務(wù)器來(lái)說(shuō)就不同了,因為服務(wù)器使用well-known端口號,比如telnet23。如果我們終止一臺已經(jīng)建立連接的服務(wù)器,并立即重啟,那么服務(wù)器將不能立即使用它的well-known端口號,因為這個(gè)端口號還是處在2MSL狀態(tài)的連接的一部分。

考慮一種情況:主機有端口號處于2MSL狀態(tài),但它卻在MSL時(shí)間內崩潰并重啟,而且重啟后使用崩潰前處于2MSL狀態(tài)的端口號建立了新的連接,此時(shí)主機崩潰前連接的延遲TCP段就會(huì )被當前新的連接誤用。為避免這種情況發(fā)生,RFC793規定在重啟后的MSL時(shí)間內不應該建立新的連接,這稱(chēng)為quiet time。


一般來(lái)說(shuō),當一個(gè)到達的TCP段對于某個(gè)指定連接(referenced connection)不正確時(shí),就需要發(fā)出一個(gè)重置段(reset segment)。

發(fā)出重置段的一個(gè)通常情況是:有連接請求到達,但卻沒(méi)有進(jìn)程正在目標端口監聽(tīng)。比如telnet遠程主機時(shí)指定一個(gè)不在使用的端口號,遠程主機將發(fā)回一個(gè)重置段??凑n本上列出的兩個(gè)包:

0.0 bsdi.1087 > svr4.20000: S 297416193:297416193(0) win 4096 <mss 1024> [tos 0x10]

0.003771 (0.0038) svr4.20000 > bsdi.1087: R 0:0(0) ack 297416194 win 0

由于svr4收到的TCP段沒(méi)有打開(kāi)ACK,因此重置段的順序號是0。盡管收到的TCP段不帶實(shí)際數據,但由于SYN位在邏輯上占用了順序號空間的一個(gè)字節,所以本例中重置段的應答號是ISN+數據長(cháng)度(為0+1,即297416194。

 

TCP連接的正常終止的情況:一端在所有排隊數據發(fā)出后才發(fā)送一個(gè)FIN來(lái)終止連接,這也叫做有序釋放(orderly release)。但有的時(shí)候可能用一個(gè)RST代替FIN來(lái)異常終止(abort)某個(gè)連接,有時(shí)也稱(chēng)之為異常釋放(abortive release)。

異常釋放帶給了應用程序兩個(gè)特征:1)任何在排隊的數據都被丟棄(throw away,并立即發(fā)出重置段;2)重置段的接受者能夠區分對方是異常,而非正常關(guān)閉。應用程序使用的API必須提供產(chǎn)生異常而非正常關(guān)閉的方法。示例見(jiàn)P247-248。


 

TCP連接的半打開(kāi)(half-open)狀態(tài):一端已經(jīng)關(guān)閉或者異常終止,卻沒(méi)有把這些通知給另一端。任何一端的主機崩潰(crash)都可能產(chǎn)生半打開(kāi)狀態(tài)。只要不打算在半打開(kāi)的TCP連接上傳輸數據,仍處于連接狀態(tài)的那一端就不會(huì )去檢查另一端已經(jīng)崩潰。

一種通常情況是連接的客戶(hù)端掉電(power off),而服務(wù)器卻不知道這個(gè)客戶(hù)端已經(jīng)消失。當客戶(hù)端重啟時(shí)將新建與服務(wù)器連接,這樣就導致了服務(wù)器上很多的半打開(kāi)TCP連接。

實(shí)踐示例見(jiàn)P249。

兩端的應用程序同時(shí)向對方執行主動(dòng)打開(kāi)的情況是可能的,盡管發(fā)生的概率很小,這稱(chēng)為同時(shí)打開(kāi)(simultaneous open)。

TCP對同時(shí)打開(kāi)進(jìn)行了針對性的設計,遵守的原則是同時(shí)打開(kāi)只建立一個(gè)連接,而非兩個(gè)。

圖:同時(shí)打開(kāi)時(shí)的TCP段交換

 

同樣地,連接兩端同時(shí)執行主動(dòng)關(guān)閉的情況稱(chēng)為同時(shí)關(guān)閉(simultaneous close)。同時(shí)關(guān)閉時(shí)TCP段交換的圖見(jiàn)下:

TCP選項和TCP服務(wù)器設計(略)。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
tcpip詳解筆記(15) TCP協(xié)議連接過(guò)程
TCP連接建立和終止小結
《TCP/IP詳解卷1:協(xié)議》第17、18章 TCP:傳輸控制協(xié)議(2)-讀書(shū)筆記
TCP協(xié)議解析
一組圖帶你讀懂TCP連接的終止——四次揮手的原理~
TCP狀態(tài)知識總結(圖解)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久