計(jì)算機(jī)網(wǎng)絡(luò)-TCP

一、目錄

網(wǎng)絡(luò)知識(shí)結(jié)構(gòu)

(最近復(fù)習(xí)了網(wǎng)絡(luò)相關(guān)的知識(shí)吨灭,在這進(jìn)行一次總結(jié),后續(xù)會(huì)有更新刑巧。)

二喧兄、網(wǎng)絡(luò)基礎(chǔ)

OSI七層協(xié)議,從下往上
(1)物理層
(2)數(shù)據(jù)鏈路層
(3)網(wǎng)絡(luò)層
(4)傳輸層
(5)會(huì)話層
(6)表示層
(7)應(yīng)用層

三啊楚、TCP的三次握手

1吠冤、TCP的三次握手
在TCP/IP協(xié)議中,TCP協(xié)議提供可靠的連接服務(wù)恭理,采用三次握手建立一個(gè)連接拯辙。
第一次握手:建立連接時(shí),客戶端發(fā)送SYN包(seq = x)到服務(wù)器颜价,并進(jìn)入SYN_SEND狀態(tài)涯保,等待服務(wù)器確認(rèn)诉濒;
第二次握手:服務(wù)器收到SYN包,必須確認(rèn)客戶的SYN(ack=x+1),同時(shí)自己也發(fā)送一個(gè)SYN包(seq=y),即SYN+ACK包夕春,此時(shí)服務(wù)器進(jìn)入SYN+RECV狀態(tài)未荒;
第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=y+1)撇他,此包發(fā)送完畢茄猫,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完成三次握手困肩。

2划纽、為什么需要三次握手才能建立起連接
為了初始化Sequence Number的初始值。

3锌畸、首次握手的隱患--SYN超時(shí)
(1)勇劣、問題起因分析:
a、Server收到Client的SYN潭枣,回復(fù)SYN-ACK的時(shí)候未收到ACK確認(rèn)比默。
b、Server不斷重試直至超時(shí)盆犁,Linux默認(rèn)等待63秒才斷開連接命咐。(5次)
(2)針對(duì)SYN Flood的防護(hù)措施
a、SYN隊(duì)列滿后谐岁,通過tcp_syncookies參數(shù)回發(fā)SYN Cookie
b醋奠、若為正常連接則Client會(huì)回發(fā)SYN Cookie,直接建立連接

4伊佃、建立連接后窜司,Client出現(xiàn)故障怎么辦
保活機(jī)制
(1)向?qū)Ψ桨l(fā)送焙饺啵活探測(cè)報(bào)文塞祈,如果未收到響應(yīng)則繼續(xù)發(fā)送
(2)嘗試次數(shù)達(dá)到包活探測(cè)數(shù)仍未收到響應(yīng)則中斷連接

四、TCP的四次揮手

TCP采用四次揮手來釋放連接:
第一次揮手:Client發(fā)送一個(gè)FIN帅涂,用來關(guān)閉Client到Server的數(shù)據(jù)傳送议薪,Client進(jìn)入FIN_WAIT_1狀態(tài);
第二次揮手:Server收到FIN后媳友,發(fā)送一個(gè)ACK給Client斯议,確認(rèn)序號(hào)為收到序號(hào)+1(與SYN相同,一個(gè)FIN占用一個(gè)序號(hào))庆锦,Server進(jìn)入CLOSE_WAIT狀態(tài)捅位;
第三次揮手:Server發(fā)送一個(gè)FIN轧葛,用來關(guān)閉Server到Client的數(shù)據(jù)傳送搂抒,Server進(jìn)入LAST_ACK狀態(tài)艇搀;
第四次揮手:Client收到FIN后,Client進(jìn)入TIME_WAIT狀態(tài)求晶,接著發(fā)送一個(gè)ACK給Server焰雕,確認(rèn)序號(hào)為序號(hào)+1,Server進(jìn)入CLOSED狀態(tài)芳杏,完成四次揮手矩屁;

五、TCP和UDP

1爵赵、UDP的特點(diǎn)
(1)面向非連接
傳輸數(shù)據(jù)之前源端和終端不建立連接吝秕,當(dāng)它想傳送時(shí)就簡(jiǎn)單的去抓取來自應(yīng)用程序的數(shù)據(jù),并盡可能快的把它扔到網(wǎng)絡(luò)上空幻,在發(fā)送端UDP傳送數(shù)據(jù)的速度僅僅是受應(yīng)用程序生成數(shù)據(jù)的速度烁峭,計(jì)算機(jī)的能力和傳輸帶寬的限制,在接收端UDP把每個(gè)消息段放在隊(duì)列中秕铛,應(yīng)用程序每次從隊(duì)列中讀取一個(gè)消息段约郁。
(2)不維護(hù)連接狀態(tài),支持同時(shí)向多個(gè)客戶端傳輸相同的消息
(3)數(shù)據(jù)包報(bào)頭只有8個(gè)字節(jié)但两,額外開銷較小
(TCP20個(gè))
(4)吞吐量只受限于數(shù)據(jù)生成速率鬓梅、傳輸速率以及機(jī)器性能
(5)盡最大努力交付,不保證可靠交付谨湘,不需要維持復(fù)雜的鏈接狀態(tài)表
(6)面向報(bào)文绽快,不對(duì)應(yīng)用程序提交的報(bào)文信息進(jìn)行拆分或者合并
2、TCP和UDP的區(qū)別
(1)面向連接 VS 無連接
(2)可靠性
(3)有序性
(4)速度
(5)量級(jí)

六悲关、TCP的滑窗

1谎僻、RTT和RTO
(1)RTT:發(fā)送一個(gè)數(shù)據(jù)包到收到對(duì)應(yīng)的ACK,所花費(fèi)的時(shí)間寓辱;
(2)RTO:(Retransmission timeout)重傳時(shí)間間隔
TCP在發(fā)送一個(gè)數(shù)據(jù)包之后艘绍,會(huì)啟動(dòng)一個(gè)重傳定時(shí)器,而RTO就是這個(gè)定時(shí)器的重傳時(shí)間
2秫筏、TCP的滑動(dòng)窗口
TCP使用滑動(dòng)窗口做流量控制與亂序重排
(1)保證TCP的可靠性
(2)保證TCP的流控特性

七诱鞠、總結(jié)

本文先復(fù)習(xí)了TCP的相關(guān)知識(shí),有關(guān)HTTP和Socket的知識(shí)會(huì)在后面的文章繼續(xù)復(fù)習(xí)这敬。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末航夺,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子崔涂,更是在濱河造成了極大的恐慌阳掐,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異缭保,居然都是意外死亡汛闸,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門艺骂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來诸老,“玉大人,你說我怎么就攤上這事钳恕”鸱” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵忧额,是天一觀的道長厘肮。 經(jīng)常有香客問我,道長睦番,這世上最難降的妖魔是什么轴脐? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮抡砂,結(jié)果婚禮上大咱,老公的妹妹穿的比我還像新娘。我一直安慰自己注益,他們只是感情好碴巾,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著丑搔,像睡著了一般厦瓢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上啤月,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天煮仇,我揣著相機(jī)與錄音,去河邊找鬼谎仲。 笑死浙垫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的郑诺。 我是一名探鬼主播夹姥,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼辙诞!你這毒婦竟也來了辙售?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤飞涂,失蹤者是張志新(化名)和其女友劉穎旦部,沒想到半個(gè)月后祈搜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡士八,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年夭问,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片曹铃。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖捧杉,靈堂內(nèi)的尸體忽然破棺而出陕见,到底是詐尸還是另有隱情,我是刑警寧澤味抖,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布评甜,位于F島的核電站,受9級(jí)特大地震影響仔涩,放射性物質(zhì)發(fā)生泄漏忍坷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一熔脂、第九天 我趴在偏房一處隱蔽的房頂上張望佩研。 院中可真熱鬧,春花似錦霞揉、人聲如沸旬薯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绊序。三九已至,卻和暖如春秽荞,著一層夾襖步出監(jiān)牢的瞬間骤公,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國打工扬跋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阶捆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓钦听,卻偏偏與公主長得像趁猴,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子彪见,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

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

  • 努力工作可以讓我不再去想不好的儡司,可以讓我把這些時(shí)間用來做更多有意義的事情。 然后結(jié)果就是余指,心情很愉悅捕犬,...
    能量女王劉大紅閱讀 155評(píng)論 0 0
  • iOS9內(nèi)置常用的壓縮/解壓縮算法(比如zlib, lzma)跷坝,而且可以在多線程下運(yùn)行, 又可以扔掉一些第三方庫了...
    zero_zql閱讀 1,430評(píng)論 0 0
  • 人生是需要經(jīng)歷一些事情的,經(jīng)一事長一智碉碉,人也會(huì)變得豁達(dá)通透起來柴钻。
    淑真木蘭花閱讀 188評(píng)論 0 0
  • 今天是多事之日,或許是我想太多又或許是我太矯情垢粮,今天和昨天做了很多錯(cuò)事贴届,比如尾數(shù)沒查好,and蜡吧,黃票藏起來差點(diǎn)釀成...
    易朱閱讀 219評(píng)論 0 0