日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【转】TCP的SEQ和ACK的生成

發(fā)布時間:2025/4/16 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】TCP的SEQ和ACK的生成 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

TCP序列號和確認(rèn)號詳解

完整的PDF下載:

在網(wǎng)絡(luò)分析中,讀懂TCP序列號和確認(rèn)號在的變化趨勢,可以幫助我們學(xué)習(xí)TCP協(xié)議以及排查通訊故障,如通過查看序列號和確認(rèn)號可以確定數(shù)據(jù)傳輸是否亂序。但我在查閱了當(dāng)前很多資料后發(fā)現(xiàn),它們大多只簡單介紹了TCP通訊的過程,并沒有對序列號和確認(rèn)號進(jìn)行詳細(xì)介紹,結(jié)合實(shí)例的講解就更沒有了。近段時間由于工作的原因,需要對TCP的序列號和確認(rèn)號進(jìn)行深入學(xué)習(xí),下面便是我學(xué)習(xí)后的一些知識點(diǎn)總結(jié),希望對TCP序列號和確認(rèn)號感興趣的朋友有一定幫助。

1.?? 序列號和確認(rèn)號的簡介及作用

TCP協(xié)議工作在OSI的傳輸層,是一種可靠的面向連接的數(shù)據(jù)流協(xié)議,TCP之所以可靠,是因?yàn)樗WC了傳送數(shù)據(jù)包的順序。順序是用一個序列號來保證的。響應(yīng)包內(nèi)也包括一個序列號,表示接收方準(zhǔn)備好這個序列號的包。在TCP傳送一個數(shù)據(jù)包時,它會把這個數(shù)據(jù)包放入重發(fā)隊(duì)列中,同時啟動計(jì)時器,如果收到了關(guān)于這個包的確認(rèn)信息,便將此數(shù)據(jù)包從隊(duì)列中刪除,如果在計(jì)時器超時的時候仍然沒有收到確認(rèn)信息,則需要重新發(fā)送該數(shù)據(jù)包。另外,TCP通過數(shù)據(jù)分段中的序列號來保證所有傳輸?shù)臄?shù)據(jù)可以按照正常的順序進(jìn)行重組,從而保障數(shù)據(jù)傳輸?shù)耐暾?br />
2.?? TCP的通訊過程

在TCP通訊中主要有連接的建立、數(shù)據(jù)的傳輸、連接的關(guān)閉三個過程!每個過程完成不同的工作,而且序列號和確認(rèn)號在每個過程中的變化都是不同的。

2.1 TCP建立連接

TCP建立連接,也就是我們常說的三次握手,它需要三步完成。在TCP的三次握手中,發(fā)送第一個SYN的一端執(zhí)行的是主動打開。而接收這個SYN并發(fā)回下一個SYN的另一端執(zhí)行的是被動打開。

這里以客戶端向服務(wù)器發(fā)起連接來說明。

1)?? 第1步:客戶端向服務(wù)器發(fā)送一個同步數(shù)據(jù)包請求建立連接,該數(shù)據(jù)包中,初始序列號(ISN)是客戶端隨機(jī)產(chǎn)生的一個值,確認(rèn)號是0;

2)?? 第2步:服務(wù)器收到這個同步請求數(shù)據(jù)包后,會對客戶端進(jìn)行一個同步確認(rèn)。這個數(shù)據(jù)包中,序列號(ISN)是服務(wù)器隨機(jī)產(chǎn)生的一個值,確認(rèn)號是客戶端的初始序列號+1;

3)?? 第3步:客戶端收到這個同步確認(rèn)數(shù)據(jù)包后,再對服務(wù)器進(jìn)行一個確認(rèn)。該數(shù)據(jù)包中,序列號是上一個同步請求數(shù)據(jù)包中的確認(rèn)號值,確認(rèn)號是服務(wù)器的初始序列號+1。

注意:因?yàn)橐粋€SYN將占用一個序號,所以要加1。

初始序列號(ISN)隨時間而變化的,而且不同的操作系統(tǒng)也會有不同的實(shí)現(xiàn)方式,所以每個連接的初始序列號是不同的。TCP連接兩端會在建立連接時,交互一些信息,如窗口大小、MSS等,以便為接著的數(shù)據(jù)傳輸做準(zhǔn)備。

RFC793指出ISN可以看作是一個32bit的計(jì)數(shù)器,每4ms加1,這樣選擇序號的目的在于防止在網(wǎng)絡(luò)中被延遲的分組在以后被重復(fù)傳輸,而導(dǎo)致某個連接的一端對它作錯誤的判斷。

2.2 TCP傳輸數(shù)據(jù)

在TCP建立連接后,就可以開始傳輸數(shù)據(jù)了。TCP工作在全雙工模式,它可以同時進(jìn)行雙向數(shù)據(jù)傳輸。這里為了簡化,我們只談服務(wù)器向客戶端發(fā)送數(shù)據(jù)的情況,而客戶端向服務(wù)器發(fā)送數(shù)據(jù)的原理和它是類似的,這里便不重復(fù)說明。
服務(wù)器向客戶端發(fā)送一個數(shù)據(jù)包后,客戶端收到這個數(shù)據(jù)包后,會向服務(wù)器發(fā)送一個確認(rèn)數(shù)據(jù)包。

傳輸數(shù)據(jù)的簡要過程如下:

1)?? 發(fā)送數(shù)據(jù):服務(wù)器向客戶端發(fā)送一個帶有數(shù)據(jù)的數(shù)據(jù)包,該數(shù)據(jù)包中的序列號和確認(rèn)號與建立連接第三步的數(shù)據(jù)包中的序列號和確認(rèn)號相同;

2)?? 確認(rèn)收到:客戶端收到該數(shù)據(jù)包,向服務(wù)器發(fā)送一個確認(rèn)數(shù)據(jù)包,該數(shù)據(jù)包中,序列號是為上一個數(shù)據(jù)包中的確認(rèn)號值,而確認(rèn)號為服務(wù)器發(fā)送的上一個數(shù)據(jù)包中的序列號+所該數(shù)據(jù)包中所帶數(shù)據(jù)的大小。
數(shù)據(jù)分段中的序列號可以保證所有傳輸?shù)臄?shù)據(jù)按照正常的次序進(jìn)行重組,而且通過確認(rèn)保證數(shù)據(jù)傳輸?shù)耐暾浴?br />
2.3 TCP關(guān)閉連接

前面我們提到,建立一個連接需要3個步驟,但是關(guān)閉一個連接需要經(jīng)過4個步驟。因?yàn)門CP連接是全雙工的工作模式,所以每個方向上需要單獨(dú)關(guān)閉。在TCP關(guān)閉連接時,首先關(guān)閉的一方(即發(fā)送第一個終止數(shù)據(jù)包的)將執(zhí)行主動關(guān)閉,而另一方(收到這個終止數(shù)據(jù)包的)再執(zhí)行被動關(guān)閉。

關(guān)閉連接的4個步驟如下:?

1)?? 第1步:服務(wù)器完成它的數(shù)據(jù)發(fā)送任務(wù)后,會主動向客戶端發(fā)送一個終止數(shù)據(jù)包,以關(guān)閉在這個方向上的TCP連接。該數(shù)據(jù)包中,序列號為客戶端發(fā)送的上一個數(shù)據(jù)包中的確認(rèn)號值,而確認(rèn)號為服務(wù)器發(fā)送的上一個數(shù)據(jù)包中的序列號+該數(shù)據(jù)包所帶的數(shù)據(jù)的大小;

2)?? 第2步:客戶端收到服務(wù)器發(fā)送的終止數(shù)據(jù)包后,將對服務(wù)器發(fā)送確認(rèn)信息,以關(guān)閉該方向上的TCP連接。這時的數(shù)據(jù)包中,序列號為第1步中的確認(rèn)號值,而確認(rèn)號為第1步的數(shù)據(jù)包中的序列號+1;

3)?? 第3步:同理,客戶端完成它的數(shù)據(jù)發(fā)送任務(wù)后,就也會向服務(wù)器發(fā)送一個終止數(shù)據(jù)包,以關(guān)閉在這個方向上的TCP連接,該數(shù)據(jù)包中,序列號為服務(wù)器發(fā)送的上一個數(shù)據(jù)包中的確認(rèn)號值,而確認(rèn)號為客戶端發(fā)送的上一個數(shù)據(jù)包中的序列號+該數(shù)據(jù)包所帶數(shù)據(jù)的大小;

4)?? 第4步:服務(wù)器收到客戶端發(fā)送的終止數(shù)據(jù)包后,將對客戶端發(fā)送確認(rèn)信息,以關(guān)閉該方向上的TCP連接。這時在數(shù)據(jù)包中,序列號為第3步中的確認(rèn)號值,而確認(rèn)號為第3步數(shù)據(jù)包中的序列號+1;

注意:因?yàn)镕IN和SYN一樣,也要占一個序號。理論上服務(wù)器在TCP連接關(guān)閉時發(fā)送的終止數(shù)據(jù)包中,只有終止位是置1,然后客戶端進(jìn)行確認(rèn)。但是在實(shí)際的TCP實(shí)現(xiàn)中,在終止數(shù)據(jù)包中,確認(rèn)位和終止位是同時置為1的,確認(rèn)位置為1表示對最后一次傳輸?shù)臄?shù)據(jù)進(jìn)行確認(rèn),終止位置為1表示關(guān)閉該方向的TCP連接。

3.?? 實(shí)際數(shù)據(jù)包分析

結(jié)合上面的理論,下面我們訪問網(wǎng)頁來捕獲數(shù)據(jù)包,通過實(shí)際的數(shù)據(jù)包來驗(yàn)證序列號和確認(rèn)號在TCP連接建立、傳輸數(shù)據(jù)以及關(guān)閉連接時的變化。

打開科來網(wǎng)絡(luò)分析系統(tǒng),首先為減少數(shù)據(jù)干擾,在過濾器中設(shè)置只捕獲TCP協(xié)議的數(shù)據(jù),然后開始捕獲,同時,訪問,待頁面下載完成后,停止捕獲。

此次環(huán)境中,客戶端為192.168.0.92,服務(wù)器為:222.77.187.23。

3.1 TCP建立連接

在捕獲的數(shù)據(jù)包中,首先我們來查看建立連接的三次握手信息,并且觀察數(shù)據(jù)包中序列號和確認(rèn)號的變化。為了讓大家看的更加明白,我在這里使用了“添加數(shù)據(jù)包注釋”的功能。

( 建立連接第一步)

客戶端向服務(wù)器發(fā)起一個同步請求數(shù)據(jù)包,請求連接服務(wù)器的80端口,客戶端隨機(jī)產(chǎn)生一個初始序列號(ISN)為2712239078,確認(rèn)號為0。

注意:在實(shí)際情況中,我們訪問網(wǎng)站首先進(jìn)行的是域名解析,這里我們設(shè)置了過濾器所以沒有捕獲到DNS數(shù)據(jù)包。?

( 建立連接第二步)

服務(wù)器收到客戶的同步請求數(shù)據(jù)包后,并向客戶端發(fā)送一個同步確認(rèn)數(shù)據(jù)。這個數(shù)據(jù)包中,服務(wù)器隨機(jī)產(chǎn)生一個初始序列號(1288781508),同時,將客戶端發(fā)送的初始序列號(ISN)加1(2712239078+1=2712239079)以作為確認(rèn)號發(fā)回給客戶段進(jìn)行確認(rèn)。


( 建立連接第三步)

客戶端收到這個同步確認(rèn)數(shù)據(jù)包后,再次對服務(wù)器進(jìn)行一次確認(rèn)。在這個數(shù)據(jù)包中,序列號為上一個數(shù)據(jù)包的確認(rèn)號(2712239079),確認(rèn)號為服務(wù)器的初始序列號(ISN)加1(1288781508+1=1288781509),以對服務(wù)器的同步確認(rèn)數(shù)據(jù)包進(jìn)行確認(rèn),這樣TCP連接就建立了。

3.2 TCP傳輸數(shù)據(jù)

TCP連接建立后,馬上就開始傳輸數(shù)據(jù),這里客戶端主動向服務(wù)器發(fā)送一個GET請求,來提交自己的請求信息。

(?? 傳輸數(shù)據(jù))

圖4中的是客戶端向服務(wù)器發(fā)送的GET請求據(jù)數(shù)據(jù)包,我們注意看序列號和確認(rèn)號的值!該數(shù)據(jù)包中,序列號為2712239079,確認(rèn)號為1288781509,這和三次握手的第三步的數(shù)據(jù)包中的序列號和確認(rèn)號相同。
從圖4中看出這個數(shù)據(jù)包的大小為1018字節(jié),其中減去14字節(jié)Ethernet報頭,20字節(jié)的IP報頭,20字節(jié)的TCP報頭和4字節(jié)的FCS(1018-14-20-20-4=960),得到傳輸?shù)臄?shù)據(jù)大小為1432。我們將該數(shù)據(jù)包中的序列號加上該數(shù)據(jù)大小(即2712239079+960=2712240039),發(fā)現(xiàn)與“下一個序列號”的值完全吻合,也就是下一個數(shù)據(jù)包中服務(wù)器發(fā)送給客戶端的數(shù)據(jù)包中的確認(rèn)號。

( 確認(rèn)收到)

注意:“下一個序列號”是科來網(wǎng)絡(luò)分析系統(tǒng)為了方便用戶查找下一個連續(xù)數(shù)據(jù)包,而根據(jù)數(shù)據(jù)包序列號和確認(rèn)號自動計(jì)算得出,該字段在實(shí)際數(shù)據(jù)包中是不存在的。

3.3 TCP關(guān)閉連接

在傳輸數(shù)據(jù)完成之后,TCP會關(guān)閉連接,這里是服務(wù)器主動關(guān)閉該方向上的TCP連接。我們繼續(xù)來觀察捕獲的數(shù)據(jù)包,先來看關(guān)閉連接的第一步,這里是服務(wù)器主動發(fā)起關(guān)閉

(?? 關(guān)閉連接第一步)

服務(wù)器向客戶端主動發(fā)起確認(rèn)位和終止位同時置為1的數(shù)據(jù)包,確認(rèn)位置1表示對最后一次傳輸?shù)臄?shù)據(jù)進(jìn)行確認(rèn),終止位置1表示關(guān)閉該方向的TCP連接,關(guān)閉服務(wù)器和客戶端的TCP連接。在這個數(shù)據(jù)包中,序列號為客戶端發(fā)送的上一個數(shù)據(jù)包中所帶的確認(rèn)號值(1288781777),而確認(rèn)號為服務(wù)器發(fā)送的上一個數(shù)據(jù)包中的序列號+該數(shù)據(jù)包所帶的數(shù)據(jù)的大小(2712238597+1432=2712240039);

然后客戶端收到該終止數(shù)據(jù)包,會對服務(wù)器發(fā)送一個確認(rèn)數(shù)據(jù)包,該數(shù)據(jù)包中,序列號為第1步中的確認(rèn)號值(2712240039),而確認(rèn)號為第1步的數(shù)據(jù)包中的序列號+1(1288781777+1=1288781778);
我們注意觀察序列號和確認(rèn)號的變化情況。

( 關(guān)閉連接第二步)

隨后,就是來自客戶端被動發(fā)起的關(guān)閉,它與服務(wù)器主動發(fā)起的關(guān)閉同理,只不過這次是被動關(guān)閉客戶端方向上的TCP連接,我們就不重復(fù)說明。


我們根據(jù)以上對TCP的建立連接、傳輸數(shù)據(jù)和關(guān)閉連接三個過程的抓包分析,成功的驗(yàn)證了前面所說的理論。

轉(zhuǎn)載于:https://www.cnblogs.com/ynxs/p/3655944.html

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的【转】TCP的SEQ和ACK的生成的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲成av人片一区二区梦乃 | 少妇高潮一区二区三区69 | 伊人夜夜 | 欧美日韩亚洲国产精品 | 欧美日韩大片在线观看 | 精品一区二区三区视频日产 | 亚洲av无码乱码在线观看富二代 | 国产精品高潮呻吟久久久久久 | 欢乐谷在线观看免费播放高清 | 一区二区日韩 | 日韩精品视频网 | 久久一区国产 | 伊人中文字幕 | 成av人在线 | 免费在线日韩 | 性xxxfllreexxx少妇 | 亚洲成熟少妇视频在线观看 | 五月天伊人网 | 国产cao | 9i免费看片黄 | 中文字幕免费在线 | 天天艹夜夜 | 国产精品久久一区二区三区 | 国产亚洲精品美女久久久久 | 精品一区二区久久久久久久网站 | 国产乱码精品一区二区三区中文 | 国产吧在线| 久久精品2019中文字幕 | 污污视频在线观看免费 | 欧美字幕 | jizz免费观看| 鲁大师私人影院在线观看 | 一本色道久久综合亚洲精品酒店 | 成人免费一级视频 | h网站在线播放 | 欧美黄视频在线观看 | 波多野结衣一本一道 | 69av视频在线 | 五月天天 | 欧美福利在线 | 二十四小时在线更新观看 | 亚洲午夜精品一区二区三区 | 天堂最新资源在线 | 精品在线你懂的 | 青青国产在线视频 | 91精品久久人妻一区二区夜夜夜 | 午夜三级视频 | 高清二区 | 中国一区二区三区 | 天天摸天天操天天干 | 日本黄视频在线观看 | 久久久久久久久久久久久久久 | 国产老妇伦国产熟女老妇视频 | 91嫩草精品 | 91极品蜜桃臀 | 人妻熟妇又伦精品视频a | 国产手机av在线 | 免费视频精品 | 国产精品一区二区av | 国产高清一级 | 欧美黄色录像带 | 亚洲69视频| 女人色极品影院 | 精品在线免费播放 | 超碰在线公开 | 四虎色网 | 韩国一区二区视频 | 亚洲高清无码久久久 | 六月丁香综合网 | 人人狠狠 | 欧美一区二区免费在线观看 | 在线看三级 | 亚洲欧美激情另类 | 日本精品视频一区 | 一区二区三区在线不卡 | 成人福利网站在线观看 | 日本不卡一区二区在线观看 | 免费亚洲婷婷 | 美女屁股无遮挡 | 稀缺小u女呦精品呦 | 亚洲无打码 | 国产精品一区二区三区四区视频 | youjizz.com国产| 国产网红女主播精品视频 | 亚洲精品喷潮一区二区三区 | 免费日韩一区 | 97神马影院 | www中文字幕在线观看 | 成人黄色短视频在线观看 | 国产精品高潮呻吟av | 欧美一区二区三区爱爱 | 色偷偷免费费视频在线 | www,jizz,com| 婷婷玖玖 | 国产一区二区三区视频 | 天天操天天干天天摸 | 欧美大片视频在线观看 | 欧美成人a交片免费看 | h片在线观看网站 |