Day25-Linux網(wǎng)絡(luò)TCP協(xié)議及OSI七層模型原理2

TCP/IP

TCP(Transmission Control Protocol 傳輸控制協(xié)議)是一種面向連接的 可靠的常遂、基于字節(jié)流的傳輸層通信協(xié)議

UDP是User Datagram Protocol的簡(jiǎn)稱绍在, 中文名是用戶數(shù)據(jù)報(bào)協(xié)議,是一種無連接的傳輸層協(xié)議

TCP 傳輸控制協(xié)議? 面向連接的協(xié)議(同步傳輸)? 可靠傳輸協(xié)議?? 傳輸效率低 ?na

UDP用戶報(bào)文協(xié)議? 無連接協(xié)議? ? (異步傳輸)? 不可靠傳輸協(xié)議 傳輸效率高

系統(tǒng)中:

異步傳輸數(shù)據(jù): 類似離線傳輸? 不需要進(jìn)行確認(rèn)?

? ? 優(yōu)點(diǎn): 傳輸效率較高

缺點(diǎn): 安全性不高

同步傳輸數(shù)據(jù): 類似在線傳輸? 需要進(jìn)行確認(rèn)

? ? 優(yōu)點(diǎn): 安全性高

缺點(diǎn): 傳輸效率較低

1.TCP協(xié)議中重要原理

1) TCP三次握手過程-- 完成網(wǎng)絡(luò)連接建立

?? TCP報(bào)文結(jié)構(gòu):

?? a 源端口地址? ? 返回?cái)?shù)據(jù)包目標(biāo)端口地址?

?? b 目標(biāo)端口地址? 要和服務(wù)端哪個(gè)網(wǎng)絡(luò)服務(wù)建立連接

?? 端口的數(shù)值范圍: 1-65535 是通過報(bào)文結(jié)構(gòu)獲知的

?? 根據(jù)報(bào)文結(jié)構(gòu) 源端口和目標(biāo)端口各占用16個(gè)bit

?? 公式: 2的n次方 n占用了多少比特

?? 占用了1bit

?? 端口范圍: 0 1? 2種?? 2的1次方=2 0-1? ? ? ?

?? 占用了2bit

?? 端口范圍: 00(0) 01(1) 10(2) 11(3) 4種?? 2的2次方=4 0-3

?? 占用了3bit

?? 端口范圍: 000(0) 001(1) 010(2) 011(3) 100(4) 101(5) 110(6) 111(7)? 8種 2的3次方=8 0-7

?? 占用了16bit

?? 端口范圍: 2的16次方=65536? 0-65535 --- 1-65535

?? PS: 一般0號(hào)端口不被使用

?? c Sequence Number(序列號(hào))

?? d Acknowledgement Number(確認(rèn)號(hào))

?? 特殊6bit作為報(bào)文結(jié)構(gòu)中的控制位:

?? syn(連接)?? --- 請(qǐng)求建立連接控制字段

?? ack(確認(rèn))?? --- 表示確認(rèn)控制字段

?? fin(斷開)?? --- 請(qǐng)求斷開連接控制字段

?? 說明: 控制字段數(shù)值置為1表示控制功能開啟 默認(rèn)為0

?? 三次握手詳細(xì)過程:

?? 第一次握手: 發(fā)送TCP數(shù)據(jù)報(bào)文 客戶端 -- 服務(wù)端

? ? ? ? ? ? ?? a TCP數(shù)據(jù)報(bào)文中,需要將syn控制字段改為1

?????????????? b TCP數(shù)據(jù)報(bào)文中,需要將seq序列號(hào)信息發(fā)出 seq=x

?? 第二次握手: 發(fā)送TCP數(shù)據(jù)報(bào)文 服務(wù)端 -- 客戶端

? ? ? ? ? ? ? ?a TCP數(shù)據(jù)報(bào)文中,需要將ack控制字段改為1

? ? ? ? ? ?????b TCP數(shù)據(jù)報(bào)文中,同時(shí)將syn控制字段改為1

?????????????? c TCP數(shù)據(jù)報(bào)文中,同時(shí)將ack確認(rèn)號(hào)信息發(fā)出 ack=x+1

?????????????? d TCP數(shù)據(jù)報(bào)文中,同時(shí)將seq序列號(hào)信息發(fā)出 seq=y

?? 第三次握手: 發(fā)送TCP數(shù)據(jù)報(bào)文 客戶端 -- 服務(wù)端

? ? ? ? ? ? ?? a TCP數(shù)據(jù)報(bào)文中,需要將ack控制字段改為1

?????????????? b TCP數(shù)據(jù)報(bào)文中,同時(shí)將ack確認(rèn)號(hào)信息發(fā)出 ack=y+1

?????????????? c TCP數(shù)據(jù)報(bào)文中,同時(shí)將seq序列號(hào)信息發(fā)出 seq=x+1

2.TCP四次揮手過程?-- 完成網(wǎng)絡(luò)連接斷開

?? 第一次揮手: 發(fā)送TCP數(shù)據(jù)報(bào)文 客戶端 -- 服務(wù)端

? ? ? ? ? ? ?? a TCP數(shù)據(jù)報(bào)文中, 需要將fin控制字段改為1

?????????????? b TCP數(shù)據(jù)報(bào)文中, 同時(shí)將ack控制字段改為1

? ? ? ? ? ? ? ? ? ? 也包含seq和ack確認(rèn)號(hào)信息

?? 第二次揮手: 發(fā)送TCP數(shù)據(jù)報(bào)文 服務(wù)端 -- 客戶端

? ? ? ? ? ? ? ? ?a TCP數(shù)據(jù)報(bào)文中, 需要將ack控制字段改為1

?? 第三次揮手: 發(fā)送TCP數(shù)據(jù)報(bào)文 服務(wù)端 -- 客戶端

? ? ? ? ? ? ? ? ?? a TCP數(shù)據(jù)報(bào)文中, 需要將ack控制字段改為1 ?

? ? ? ? ? ? ? ? ?? b TCP數(shù)據(jù)報(bào)文中, 同時(shí)將fin控制字段改為1

?? 第四次揮手: 發(fā)送TCP數(shù)據(jù)報(bào)文 客戶端 -- 服務(wù)端

? ? ? ? ? ? ? ? ?? a TCP數(shù)據(jù)報(bào)文中, 需要將ack控制字段改為1

擴(kuò)展: 如何抓取網(wǎng)絡(luò)數(shù)據(jù)包(抓包軟件)?

windows: Wireshark

linux: tcpdump命令

3. TCP 11種狀態(tài)集轉(zhuǎn)換(了解 -- 架構(gòu)層面)

? ? 1) 以后可以更好排查系統(tǒng)網(wǎng)絡(luò)問題

? 2) 以后學(xué)習(xí)網(wǎng)絡(luò)編程會(huì)有幫助

TCP三次握手過程: 服務(wù)端和客戶端狀態(tài)變化(5種狀態(tài)變化)

? ? 第一歷程: 初始狀態(tài)信息

客戶端狀態(tài)為: closed

服務(wù)端狀態(tài)為: closed

第二歷程: 服務(wù)端開啟相應(yīng)服務(wù)

服務(wù)端狀態(tài)為: closed -- LISTEN

第三歷程: 發(fā)送建立連接請(qǐng)求(客戶端) == 三次握手第一次

客戶端發(fā)送syn信息

客戶端狀態(tài)為: closed -- syn_sent

第四歷程: 接收建立連接請(qǐng)求(服務(wù)端) == 三次握手第二次

服務(wù)端接受syn信息, 發(fā)送確認(rèn)以及請(qǐng)求建立連接信息(ack syn)

服務(wù)端狀態(tài)為: LISTEN -- syn_rcvd

? ? 第五歷程: 發(fā)送最后確認(rèn)信息(客戶端) == 三次握手第三次

? ? 客戶端發(fā)送ack信息

? ? 客戶端狀態(tài)為: syn_sent -- established

? ? 第六歷程: 接收最后確認(rèn)信息(服務(wù)端)

? ? 服務(wù)端接收ack信息

? ? 服務(wù)端狀態(tài)為: syn_rcvd -- established

? ? 結(jié)論: 只有服務(wù)端和客戶端都統(tǒng)一處于established連接建立狀態(tài), 才能正常傳輸數(shù)據(jù)信息

TCP四次揮手過程: 服務(wù)端和客戶端狀態(tài)變化(5種狀態(tài)變化)

第一個(gè)歷程: 初始狀態(tài)信息

客戶端狀態(tài)為: established

服務(wù)端狀態(tài)為: established

第二個(gè)歷程: 發(fā)送斷開連接請(qǐng)求(客戶端) == 四次揮手第一次

客戶端發(fā)送fin請(qǐng)求斷開連接字段

客戶端狀態(tài)為: established -- fin_wait1

第三個(gè)歷程: 接收斷開連接請(qǐng)求(服務(wù)端) == 四次揮手第二次

服務(wù)端接受fin請(qǐng)求斷開連接字段 發(fā)出確認(rèn)信息(ack=1)

服務(wù)端狀態(tài)為: established -- close_wait

第四個(gè)歷程: 接收確認(rèn)斷開信息(客戶端)

客戶端接受服務(wù)端發(fā)出的確認(rèn)信息(ack=1)

客戶端狀態(tài)為: fin_wait1 -- fin_wait2

第五個(gè)歷程: 發(fā)送斷開連接請(qǐng)求(服務(wù)端) == 四次揮手第三次

服務(wù)端發(fā)送fin請(qǐng)求斷開連接字段 同時(shí)還會(huì)再次發(fā)送確認(rèn)字段

服務(wù)端狀態(tài)為: close_wait -- last_ack

第六個(gè)歷程: 接收斷開連接請(qǐng)求(客戶端) 發(fā)送最后確認(rèn)信息 == 四次揮手第四次

客戶端接收斷開連接請(qǐng)求 同時(shí)發(fā)送最后確認(rèn)信息ack=1

客戶端狀態(tài)為: fin_wait2? -- time_wait (等時(shí)間 60s 90s 120s???)

第七個(gè)歷程: 接收最后確認(rèn)信息(服務(wù)端)

服務(wù)端狀態(tài)為: last_ack? -- closed

第八個(gè)歷程: 等待時(shí)間結(jié)束

客戶端狀態(tài)為: time_wait -- closed

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末册赛,一起剝皮案震驚了整個(gè)濱河市盒犹,隨后出現(xiàn)的幾起案子牵祟,更是在濱河造成了極大的恐慌痪蝇,老刑警劉巖攻旦,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件喻旷,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡牢屋,警方通過查閱死者的電腦和手機(jī)且预,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來烙无,“玉大人锋谐,你說我怎么就攤上這事〗乜幔” “怎么了涮拗?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)迂苛。 經(jīng)常有香客問我三热,道長(zhǎng),這世上最難降的妖魔是什么三幻? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任就漾,我火速辦了婚禮,結(jié)果婚禮上念搬,老公的妹妹穿的比我還像新娘从藤。我一直安慰自己,他們只是感情好锁蠕,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布夷野。 她就那樣靜靜地躺著,像睡著了一般荣倾。 火紅的嫁衣襯著肌膚如雪悯搔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天舌仍,我揣著相機(jī)與錄音妒貌,去河邊找鬼。 笑死铸豁,一個(gè)胖子當(dāng)著我的面吹牛灌曙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播节芥,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼在刺,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼逆害!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蚣驼,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤魄幕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后颖杏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體纯陨,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年留储,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了翼抠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡获讳,死狀恐怖阴颖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情赔嚎,我是刑警寧澤膘盖,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布胧弛,位于F島的核電站尤误,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏结缚。R本人自食惡果不足惜损晤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望红竭。 院中可真熱鬧尤勋,春花似錦、人聲如沸茵宪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽稀火。三九已至暖哨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間凰狞,已是汗流浹背篇裁。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留赡若,地道東北人达布。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像逾冬,于是被迫代替她去往敵國(guó)和親黍聂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

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

  • 如果對(duì)網(wǎng)絡(luò)工程基礎(chǔ)不牢,建議通讀《細(xì)說OSI七層協(xié)議模型及OSI參考模型中的數(shù)據(jù)封裝過程分冈?》 下面就是TCP/IP...
    zhoulujun閱讀 3,230評(píng)論 1 10
  • 個(gè)人認(rèn)為圾另,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,051評(píng)論 0 8
  • 運(yùn)輸層協(xié)議概述 從通信和信息處理的角度看雕沉,運(yùn)輸層向它上面的應(yīng)用層提供通信服務(wù)集乔,它屬于面向通信部分的最高層,同時(shí)也是...
    srtianxia閱讀 2,399評(píng)論 0 2
  • 18.1 引言 TCP是一個(gè)面向連接的協(xié)議坡椒。無論哪一方向另一方發(fā)送數(shù)據(jù)之前扰路,都必須先在雙方之間建立一條連接。本章將...
    張芳濤閱讀 3,347評(píng)論 0 13
  • 兔子小姐有兩個(gè)姐姐倔叼,大姐姐嫁給了老虎先生汗唱,她覺得他們不會(huì)過的幸福;二姐姐嫁給了大熊先生丈攒,大熊先生對(duì)她非常好哩罪,每...
    北方南先生閱讀 381評(píng)論 0 1