2019-06-11

協(xié)議概述:

1.點(diǎn)對(duì)點(diǎn)(只有一個(gè)發(fā)送方一個(gè)接收方)

2.可靠的畸肆,按序的字節(jié)流

3.流水線機(jī)制:

通過tcp擁塞控制和流量控制機(jī)制動(dòng)態(tài)設(shè)置窗口尺寸

4.發(fā)送方接收方都有緩存機(jī)制

5.全雙工(full—duplex)同一連接中能夠傳輸雙向的數(shù)據(jù)流

6,面向連接:

通信雙方在發(fā)送數(shù)據(jù)之前必須建立連接救斑,連接狀態(tài)只在連接的兩端中維護(hù)皂林,在沿途節(jié)點(diǎn)中并不維護(hù)狀態(tài)蜈七,tcp連接包括:兩臺(tái)主機(jī)上的緩存,連接狀態(tài)變量婿脸,socket等

7.流量控制機(jī)制

TCP段結(jié)構(gòu):

RTT(Round Trip Time,一個(gè)連接的往返時(shí)間)和超時(shí):

如何設(shè)置定時(shí)器的超時(shí)時(shí)間粱胜?

RTT過長(zhǎng)對(duì)段丟失時(shí)間反應(yīng)慢,過短造成不必要的重傳

如何估計(jì)RTT:

SampleRTT:測(cè)量從段發(fā)出去到收到ACK的時(shí)間(忽略重傳)

SampleRTT變換:測(cè)量多個(gè)SampleRTT求平均值

定時(shí)器超時(shí)時(shí)間設(shè)置:

EstimatedRTT+安全邊界

EstimatedRTT變化大->較大的邊界

測(cè)量RTT的變化值:SampleRTT和EstimatedRTT的差值

TCP發(fā)送方事件:

1.從應(yīng)用層收到數(shù)據(jù):

創(chuàng)建Segment

序列號(hào)是Segment第一個(gè)字節(jié)的編號(hào)

開啟計(jì)時(shí)器

設(shè)置超時(shí)時(shí)間:TimeOutInterval

2.超時(shí):

重傳引起超時(shí)的Segment

重啟定時(shí)器

3.收到ACK:

如果確認(rèn)此前未確認(rèn)的Segment:

更新SendBase

如果窗口中還有未被確認(rèn)的分組盖淡,重新啟動(dòng)定時(shí)器

快速重傳機(jī)制:

TCP實(shí)現(xiàn)中年柠,如果發(fā)生超時(shí),超時(shí)時(shí)間間隔將重新設(shè)置,即將超時(shí)時(shí)間間隔加倍冗恨,導(dǎo)致其很大答憔。

重發(fā)丟失的分組之前要等待更長(zhǎng)的時(shí)間。

通過重復(fù)的ack檢測(cè)分組的丟失掀抹。

如果sender收到對(duì)同一數(shù)據(jù)的3個(gè)ack虐拓,則假定該數(shù)據(jù)之后的段已經(jīng)丟失

快速重傳:在定時(shí)器超時(shí)之前即進(jìn)行重傳。

TCP流量控制(速度匹配機(jī)制):

接收方為TCP連接分配bufer

上層應(yīng)用可能處理buffer中數(shù)據(jù)的速度較慢傲武,則發(fā)送方不會(huì)傳輸?shù)奶嗳鼐裕煲灾劣谘蜎]接收方(buffer溢出)

RecWindow=0時(shí)發(fā)送方也會(huì)發(fā)送一小段數(shù)據(jù) 來獲取更新的緩沖大小,防止發(fā)生死鎖現(xiàn)象

TCP連接管理(建立):

TCP sender和receiver在傳輸數(shù)據(jù)前需要建立連接

初始化TCP變量:

初始序列號(hào)揪利,buffer 和流量控制信息等

Client:連接的發(fā)起者

Server:等待客戶連接請(qǐng)求:

三次握手:

1.客戶端主機(jī)向服務(wù)器發(fā)送一個(gè)SYN段(帶著初始序列號(hào)态兴,SYN標(biāo)志位置為1,不包含任何數(shù)據(jù))

2.服務(wù)器主機(jī)收到SYN段疟位,如果同意訪問瞻润,會(huì)返回一個(gè)SYNACK 段(為該連接分配緩存,返回自己的初始序列號(hào))

3.客戶機(jī)收到SYNACK 后返回ACK報(bào)文段(SYN置0甜刻,可能會(huì)包含數(shù)據(jù))

TCP連接管理(關(guān)閉):

客戶機(jī)關(guān)閉連接clientSocket.close()

1.客戶機(jī)向服務(wù)器發(fā)送TCP FIN 控制報(bào)文端(FIN置1)

2服務(wù)器收到FIN 绍撞,回復(fù)ACK,數(shù)據(jù)傳輸完畢后得院,關(guān)閉連接發(fā)送FIN

3.客戶機(jī)收到FIN回復(fù)ACK

進(jìn)入等待傻铣,如果收到FIN會(huì)重新發(fā)送ACK(防止丟包)

4.服務(wù)器收到ACK,連接關(guān)閉

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末祥绞,一起剝皮案震驚了整個(gè)濱河市非洲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌就谜,老刑警劉巖怪蔑,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異丧荐,居然都是意外死亡缆瓣,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門虹统,熙熙樓的掌柜王于貴愁眉苦臉地迎上來弓坞,“玉大人,你說我怎么就攤上這事车荔《啥常” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵忧便,是天一觀的道長(zhǎng)族吻。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么超歌? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任砍艾,我火速辦了婚禮,結(jié)果婚禮上巍举,老公的妹妹穿的比我還像新娘脆荷。我一直安慰自己,他們只是感情好懊悯,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布蜓谋。 她就那樣靜靜地躺著,像睡著了一般炭分。 火紅的嫁衣襯著肌膚如雪桃焕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天捧毛,我揣著相機(jī)與錄音覆旭,去河邊找鬼。 笑死岖妄,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的寂祥。 我是一名探鬼主播荐虐,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼丸凭!你這毒婦竟也來了福扬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤惜犀,失蹤者是張志新(化名)和其女友劉穎铛碑,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體虽界,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡汽烦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了莉御。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撇吞。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖礁叔,靈堂內(nèi)的尸體忽然破棺而出牍颈,到底是詐尸還是另有隱情,我是刑警寧澤琅关,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布煮岁,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏画机。R本人自食惡果不足惜冶伞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望色罚。 院中可真熱鬧碰缔,春花似錦、人聲如沸戳护。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)腌且。三九已至梗肝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間铺董,已是汗流浹背巫击。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留精续,地道東北人坝锰。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像重付,于是被迫代替她去往敵國(guó)和親顷级。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

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

  • 如果對(duì)網(wǎng)絡(luò)工程基礎(chǔ)不牢确垫,建議通讀《細(xì)說OSI七層協(xié)議模型及OSI參考模型中的數(shù)據(jù)封裝過程弓颈?》 下面就是TCP/IP...
    zhoulujun閱讀 3,220評(píng)論 1 10
  • 1、TCP狀態(tài)linux查看tcp的狀態(tài)命令:1)删掀、netstat -nat 查看TCP各個(gè)狀態(tài)的數(shù)量2)翔冀、lso...
    北辰青閱讀 9,398評(píng)論 0 11
  • 首先,我們需要知道TCP在網(wǎng)絡(luò)ISO的七層模型中的第四層——Transport層披泪,IP在第三層——Network層...
    CodeKing2017閱讀 1,093評(píng)論 0 4
  • 個(gè)人認(rèn)為纤子,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,051評(píng)論 0 8
  • 套接字選項(xiàng)SO_RESUEADDR 即使端口處于2MSL狀態(tài)款票,使用該選項(xiàng)计福,仍然能夠在該端口建立連接。服務(wù)器常會(huì)設(shè)置...
    Myth52125閱讀 1,401評(píng)論 0 0