網(wǎng)絡(luò)中TCP/IP模型

昨天學(xué)習(xí)了網(wǎng)絡(luò)中的OSI模型,但OSI模型并沒有被廣泛應(yīng)用稀颁,反而TCP/IP模型獲得了較大的成功慕蔚,那今天就來(lái)學(xué)習(xí)下TCP/IP模型。

開始瘋狂的十萬(wàn)個(gè)為什么

什么是TCP/IP模型?

TCP/IP參考模型是美國(guó)國(guó)防部高級(jí)研究計(jì)劃局計(jì)算機(jī)網(wǎng)(Advanced Research Projects Agency Network,ARPANET)和其后繼因特網(wǎng)使用的參考模型奠蹬。ARPANET是由美國(guó)國(guó)防部(U.S.Department of Defense,DoD)贊助的研究網(wǎng)絡(luò)绳矩。
最初罩润,它只連接了美國(guó)境內(nèi)的四所大學(xué)。隨后的幾年中翼馆,它通過(guò)租用的電話線連接了數(shù)百所大學(xué)和政府部門。最終ARPANET發(fā)展成為全球規(guī)模最大的互連網(wǎng)絡(luò)-因特網(wǎng)金度。

我是這么記得:美國(guó)國(guó)防部搞得網(wǎng)絡(luò)模型---發(fā)展壯大----最后發(fā)展成了因特網(wǎng)

既然叫TCP/IP模型应媚,什么是TCP和IP?

TCP和IP分別是兩個(gè)協(xié)議

TCP:傳輸控制協(xié)議
IP:互聯(lián)網(wǎng)協(xié)議地址(Internet Protocol Address),縮寫就是IP地址

細(xì)節(jié)我們等等再說(shuō)。

現(xiàn)在我大概知道TCP/IP是怎么來(lái)的了猜极。來(lái)看看它的結(jié)構(gòu)模型中姜。
TCP/IP模型的體系結(jié)構(gòu)

TCP/IP的參考模型將協(xié)議分成四個(gè)層次。對(duì)比OSI模型如圖:


圖片.png

可以看到TCP/IP模型把OSI模型濃縮了一些跟伏,沒有OSI模型那么詳細(xì)丢胚。

應(yīng)用層
表示層 ----- 應(yīng)用層
會(huì)話層

這三層合并為應(yīng)用層:為用戶提供各種服務(wù)。例如:HTTP,HTTPS,TFP,Telnet

TCP/IP中的傳輸層 ----- OSI中的傳輸層

提供了端對(duì)端的通信連接方式受扳,可靠的連接方式:TCP携龟,不可靠的連接方式:UDP

TCP/IP中的網(wǎng)絡(luò)層 ----- OSI中的網(wǎng)絡(luò)層

提供主機(jī)與主機(jī)間的通信,并找到一條好的路徑

網(wǎng)絡(luò)接口層 ----- OSI中的鏈路層,物理層

負(fù)責(zé)監(jiān)視主機(jī)在和網(wǎng)絡(luò)之間的交換

現(xiàn)在來(lái)比較下他們的相同點(diǎn)和不同點(diǎn)

相同點(diǎn):
1.都采用了層級(jí)化結(jié)構(gòu)
2.都提供了無(wú)連接和面向連接兩種通信服務(wù)機(jī)制
不同點(diǎn):
1.TCP/IP模型是四層結(jié)構(gòu)勘高,ISO是七層結(jié)構(gòu)
2.TCP是根據(jù)協(xié)議才制定的模型峡蟋,而ISO模型是協(xié)議開發(fā)前就設(shè)定的坟桅,具有通用性。

接下來(lái)學(xué)習(xí)下TCP的連接和斷開
TCP連接的建立(三次握手)

首先要認(rèn)識(shí)幾個(gè)標(biāo)志位和序號(hào):

SYN:表示建立連接
ACK:表示確認(rèn)序號(hào)有效
FIN:表示關(guān)閉連接
RST:表示連接重置
PSH:表示有 DATA數(shù)據(jù)傳輸

發(fā)送報(bào)文時(shí)蕊蝗,帶上相應(yīng)的標(biāo)志位仅乓,就代表相應(yīng)的意思

1.seq序號(hào),占32位蓬戚,發(fā)起方發(fā)送數(shù)據(jù)時(shí)進(jìn)行標(biāo)記夸楣。
2.ack序號(hào),確認(rèn)序號(hào)子漩,占32位豫喧。

例如:

  • SYN=1,代表建立連接
  • SYN=1,和ACK=1,就代表建立連接和確認(rèn)序號(hào)有效痛单。
  • ACK=1嘿棘,代表確認(rèn)序號(hào)有效
三次握手

第一次握手:客戶端A向服務(wù)器B發(fā)送請(qǐng)求報(bào)文

請(qǐng)求報(bào)文是這樣的

1.標(biāo)志符:SYN=1,代表建立連接
2.隨機(jī)初始化的一個(gè)序號(hào):比如seq=x.
客戶端A進(jìn)入(SYN-SEND)同步已發(fā)送狀態(tài)旭绒。

第二次握手:服務(wù)器B收到后鸟妙,如果同意連接,那么服務(wù)器B就會(huì)向客戶端A發(fā)送一個(gè)確認(rèn)報(bào)文挥吵。

確認(rèn)報(bào)文是這樣的

1.標(biāo)志符:ACK=1重父,表示對(duì)剛剛的SYN包的確認(rèn),SYN=1忽匈,表示B與A建立連接房午。
2.隨機(jī)初始化一個(gè)序號(hào):比如seq=y.
3.確認(rèn)序號(hào)ack:ack是剛剛客戶端A發(fā)送過(guò)來(lái)的序號(hào)+1,也就是x+1。
服務(wù)器B進(jìn)入SYN-RCVD(同步收到)狀態(tài)

第三次握手:客戶端A收到服務(wù)器B的確認(rèn)報(bào)文后丹允,再向服務(wù)器B發(fā)送一個(gè)確認(rèn)報(bào)文郭厌。

這個(gè)確認(rèn)報(bào)文是這樣的:

1.標(biāo)志符:ACK=1,表示對(duì)剛剛的SYN包的確認(rèn)雕蔽。
2.seq是上個(gè)請(qǐng)求的序號(hào)+1,也就是x+1
3.確認(rèn)序號(hào)ack:ack是剛剛客戶端B發(fā)送過(guò)來(lái)的序號(hào)+1折柠,也就是y+1.
客戶端和服務(wù)器進(jìn)入ESTABLISHED(TCP連接成功)狀態(tài)。

單純看標(biāo)志符就是這樣一個(gè)過(guò)程:
  1. (A) –> [SYN] –> (B)
  2. (B) -> [SYN/ACK] -> (A)
  3. (A) –> [ACK] –> (B)
看序號(hào)的話就是這樣的

方向 seq ack
A->B 2000 0
B->A 3000 2001
A->B 2001 3001
A隨機(jī)初始化了一個(gè)序號(hào)seq=2000
B隨機(jī)初始化了一個(gè)序號(hào)seq=3000
A在接著上一個(gè)請(qǐng)求繼續(xù)下去批狐,seq=20001扇售。

服務(wù)器B收到后確認(rèn)seq值和ACK,說(shuō)明連接建立成功嚣艇。
TCP連接的斷開(四次揮手)

四次揮手

假設(shè)客戶端A想要斷開連接


第一次揮手:

客戶端發(fā)送一個(gè) FIN 標(biāo)志位為1的包承冰,表示自己已經(jīng)沒有數(shù)據(jù)可以發(fā)送了,但是仍然可以接受數(shù)據(jù)食零。

發(fā)送完畢后困乒,客戶端進(jìn)入 FIN_WAIT_1 狀態(tài)。
第二次揮手:

服務(wù)器B確認(rèn)客戶端A發(fā)送的 FIN 包慌洪,發(fā)送一個(gè)確認(rèn)包顶燕,表明自己接受到了客戶端關(guān)閉連接的請(qǐng)求凑保,但還沒有準(zhǔn)備好關(guān)閉連接

發(fā)送完畢后涌攻,服務(wù)器端進(jìn)入 CLOSE_WAIT 狀態(tài).
客戶端接收到這個(gè)確認(rèn)包之后欧引,進(jìn)入 FIN_WAIT_2 狀態(tài),等待服務(wù)器端關(guān)閉連接恳谎。

第三次揮手:

服務(wù)器端準(zhǔn)備好關(guān)閉連接時(shí)芝此,向客戶端發(fā)送FIN 為1的結(jié)束連接請(qǐng)求。

發(fā)送完畢后因痛,服務(wù)器端進(jìn)入 LAST_ACK 狀態(tài)婚苹,等待來(lái)自客戶端的最后一個(gè)ACK。
第四次揮手:

  • 客戶端:接收到來(lái)自服務(wù)器端的關(guān)閉請(qǐng)求鸵膏,發(fā)送一個(gè)確認(rèn)包膊升,并進(jìn)入 TIME_WAIT狀態(tài)。等待可能出現(xiàn)的要求重傳的 ACK 包谭企。
  • 服務(wù)器端接收到這個(gè)確認(rèn)包之后廓译,關(guān)閉連接,進(jìn)入 CLOSED 狀態(tài)债查。
  • 客戶端等待了某個(gè)固定時(shí)間(兩個(gè)最大段生命周期非区,2MSL,2 Maximum Segment Lifetime)之后盹廷,沒有收到服務(wù)器端的 ACK 征绸,認(rèn)為服務(wù)器端已經(jīng)正常關(guān)閉連接,于是自己也關(guān)閉連接俄占,進(jìn)入 CLOSED 狀態(tài)管怠。
形象點(diǎn)說(shuō)就像這樣

A說(shuō):"我說(shuō)完了。" A進(jìn)去FIN-WAIT-1狀態(tài)缸榄。
B說(shuō):"我知道你說(shuō)完了排惨,但我還沒說(shuō)完啊,我還沒準(zhǔn)備好,讓我等會(huì)碰凶。"
于是呢A進(jìn)入了FIN-WAIT-2狀態(tài),B進(jìn)去了CLOSE-WAIT狀態(tài)
B說(shuō):"我講完了鹿驼,我也不說(shuō)了"于是B進(jìn)去了LAST-ACK狀態(tài)欲低。
A說(shuō):"好了,我知道你不說(shuō)了"于是A進(jìn)去了TIME-WAIT狀態(tài)畜晰。B進(jìn)去了CLOSED狀態(tài)
最后A在等了一會(huì)砾莱,發(fā)現(xiàn)B沒有理他,于是認(rèn)為B不說(shuō)話了凄鼻,自己也不說(shuō)了腊瑟。A進(jìn)去了CLOSED狀態(tài)聚假。

為什么連接的時(shí)候是三次握手,關(guān)閉的時(shí)候卻是四次揮手闰非?

不同地方就在于:膘格。
關(guān)閉連接時(shí),是分別發(fā)送ACK包和FIN包的财松。
建立連接時(shí)瘪贱,SYN包和ACK包可以一起發(fā)送。
這樣的原因是因?yàn)椋宏P(guān)閉連接時(shí)辆毡,可能客戶端A還在發(fā)送報(bào)文菜秦,只能告訴客戶端,我已經(jīng)收到了舶掖。直到客戶端A發(fā)送完報(bào)文時(shí)球昨,服務(wù)器B才可以發(fā)送FIN報(bào)文。

參考文章:
https://blog.csdn.net/ygm_linux/article/details/79546034
https://blog.csdn.net/diligentkong/article/details/73351278
http://www.imooc.com/article/19345

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末眨攘,一起剝皮案震驚了整個(gè)濱河市主慰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌期犬,老刑警劉巖河哑,帶你破解...
    沈念sama閱讀 223,002評(píng)論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異龟虎,居然都是意外死亡璃谨,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門鲤妥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)佳吞,“玉大人,你說(shuō)我怎么就攤上這事棉安〉装猓” “怎么了?”我有些...
    開封第一講書人閱讀 169,787評(píng)論 0 365
  • 文/不壞的土叔 我叫張陵贡耽,是天一觀的道長(zhǎng)衷模。 經(jīng)常有香客問(wèn)我,道長(zhǎng)蒲赂,這世上最難降的妖魔是什么阱冶? 我笑而不...
    開封第一講書人閱讀 60,237評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮滥嘴,結(jié)果婚禮上木蹬,老公的妹妹穿的比我還像新娘。我一直安慰自己若皱,他們只是感情好镊叁,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,237評(píng)論 6 398
  • 文/花漫 我一把揭開白布尘颓。 她就那樣靜靜地躺著,像睡著了一般晦譬。 火紅的嫁衣襯著肌膚如雪疤苹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,821評(píng)論 1 314
  • 那天蛔添,我揣著相機(jī)與錄音痰催,去河邊找鬼。 笑死迎瞧,一個(gè)胖子當(dāng)著我的面吹牛夸溶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播凶硅,決...
    沈念sama閱讀 41,236評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼缝裁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了足绅?” 一聲冷哼從身側(cè)響起捷绑,我...
    開封第一講書人閱讀 40,196評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎氢妈,沒想到半個(gè)月后粹污,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,716評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡首量,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,794評(píng)論 3 343
  • 正文 我和宋清朗相戀三年壮吩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片加缘。...
    茶點(diǎn)故事閱讀 40,928評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鸭叙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拣宏,到底是詐尸還是另有隱情沈贝,我是刑警寧澤,帶...
    沈念sama閱讀 36,583評(píng)論 5 351
  • 正文 年R本政府宣布勋乾,位于F島的核電站宋下,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏辑莫。R本人自食惡果不足惜杨凑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,264評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望摆昧。 院中可真熱鬧,春花似錦蜒程、人聲如沸绅你。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)忌锯。三九已至伪嫁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間偶垮,已是汗流浹背张咳。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留似舵,地道東北人脚猾。 一個(gè)月前我還...
    沈念sama閱讀 49,378評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像砚哗,于是被迫代替她去往敵國(guó)和親龙助。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,937評(píng)論 2 361

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