一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

電腦之家 - 專業(yè)計(jì)算機(jī)基礎(chǔ)知識(shí)與電腦技術(shù)學(xué)習(xí)網(wǎng)站
分類導(dǎo)航

路由器|交換機(jī)|網(wǎng)絡(luò)協(xié)議|網(wǎng)絡(luò)知識(shí)|

服務(wù)器之家 - 電腦之家 - 網(wǎng)絡(luò)技術(shù) - 網(wǎng)絡(luò)協(xié)議 - TCP為什么需要三次握手?用最通俗的話解釋給你聽

TCP為什么需要三次握手?用最通俗的話解釋給你聽

2021-09-10 00:47IT技術(shù)管理那些事兒 網(wǎng)絡(luò)協(xié)議

TCP實(shí)現(xiàn)原理和為什么需要三次握手?兩次握手不可以?四次握手不可以?讀者可以帶著疑問,看一遍本篇博客的詳細(xì)講解。

TCP為什么需要三次握手?用最通俗的話解釋給你聽

TCP實(shí)現(xiàn)原理和為什么需要三次握手?兩次握手不可以?四次握手不可以?讀者可以帶著疑問,看一遍本篇博客的詳細(xì)講解

TCP為什么需要三次握手?用最通俗的話解釋給你聽

ok,首先解釋原因之前還是要先復(fù)習(xí)一下TCP的基本知識(shí)和三次握手協(xié)議:

1、什么是TCP協(xié)議?

TCP:Transmission Control Protocol翻譯過來(lái)就是傳輸控制協(xié)議,TCP協(xié)議是一個(gè)面向連接的、可靠的、基于字節(jié)流的傳輸層協(xié)議

RFC 793對(duì)TCP連接的定義:

Connections:

  • The reliability and flow control mechanisms described above require that TCPs initialize and maintain certain status information for each data stream.
  • The combination of this information, including sockets, sequence numbers, and window sizes, is called a connection.

其大致意思是TCP連接是為了用于保證可靠性和流控制機(jī)制的,包括 Socket、序列號(hào)及窗口大小。

其中Socket是由IP加端口組成的,序列號(hào)是用來(lái)解決亂序問題的,而窗口大小則是用來(lái)做流量控制的。

2、TCP協(xié)議的特性

  • 面向連接:是指TCP是通過服務(wù)端和客戶端進(jìn)行連接的協(xié)議
  • 面向字節(jié)流:TCP服務(wù)端和客戶端之間的數(shù)據(jù)通訊是通過字節(jié)流數(shù)據(jù)傳輸?shù)?/li>
  • 可靠的:是指TCP服務(wù)端客戶端之間的數(shù)據(jù)傳輸是很穩(wěn)定的,即使網(wǎng)絡(luò)很差的情況,TCP都能保證將數(shù)據(jù)傳輸?shù)浇邮辗健?/li>

TCP為什么需要三次握手?用最通俗的話解釋給你聽

ps:TCP傳輸?shù)目煽啃缘靡嬗赥CP會(huì)記錄信息的發(fā)送狀態(tài),哪些數(shù)據(jù)收到了,哪些數(shù)據(jù)沒收到,TCP都是會(huì)記錄的,然后哪些丟包的情況,就是發(fā)送不成功的情況,TCP會(huì)重新發(fā)包,所以TCP的可靠性就是這么保證的

3、TCP三次握手執(zhí)行流程

TCP的三次握手執(zhí)行過程是面試中的一個(gè)很常見的問題,因?yàn)檫@個(gè)問題也是計(jì)算機(jī)的一個(gè)很重要的基礎(chǔ),所以需要認(rèn)真學(xué)習(xí)

TCP為什么需要三次握手?用最通俗的話解釋給你聽

關(guān)鍵字說(shuō)明:

  • SYN:Synchronize Sequence Numbers,同步序列編號(hào)
  • ACK:Acknowledge Character,確認(rèn)字符
  • SEQ:Sequence Number,序列號(hào)

TCP三次握手執(zhí)行過程:

  • 首先,服務(wù)端和客戶端都是處于CLOSED狀態(tài)的,然后服務(wù)端啟動(dòng),監(jiān)聽端口,狀態(tài)變?yōu)長(zhǎng)ISTEN(監(jiān)聽)狀態(tài)
  • 客戶端為了請(qǐng)求資源,發(fā)送連接,發(fā)送同步序列號(hào)SYN,此時(shí)客戶端就變成了SYN-SEND狀態(tài)
  • 服務(wù)端接收到客戶端請(qǐng)求之后,發(fā)送SYN和ACK,然后服務(wù)端狀態(tài)就變成SYN-RCVD狀態(tài)
  • 客戶端接收到信息之后,再次發(fā)送ACK,然后變成ESTABLISHED(已確認(rèn))狀態(tài),服務(wù)端接收到返回信息后,狀態(tài)也變成ESTABLISHED(已確認(rèn))狀態(tài)

4、TCP協(xié)議為什么需要三次握手?

ok,知道了TCP的三次握手的基本工作原理之后,就可以解釋為什么TCP需要三次握手?為什么不設(shè)計(jì)成兩次握手就可以?

原因:避免重復(fù)連接

其實(shí)在RFC 793 Transmission Control Protocol里就有指出為什么要三次握手的原因

The principle reason for the three-way handshake is to prevent old duplicate connection initiations from causing confusion.

翻譯為中文大致意思是主要原因是為了防止舊的重復(fù)連接引起連接混亂問題

比如在網(wǎng)絡(luò)環(huán)境比較復(fù)雜的情況,客戶端可能會(huì)連續(xù)發(fā)送多次請(qǐng)求。如果只設(shè)計(jì)成兩次握手的情況,服務(wù)端只能一直接收請(qǐng)求,然后返回請(qǐng)求信息,也不知道客戶端是否請(qǐng)求成功。這些過期請(qǐng)求的話就會(huì)造成網(wǎng)絡(luò)連接的混亂。

所以設(shè)計(jì)成三次握手的情況,客戶端在接收到服務(wù)端SEQ+1的返回消息之后,就會(huì)知道這個(gè)連接是歷史連接,所以會(huì)發(fā)送報(bào)文給服務(wù)端,告訴服務(wù)端。

所以TCP設(shè)計(jì)成三次握手的目的就是為了避免重復(fù)連接。

然后可以設(shè)計(jì)成四次握手?五次握手?不可以?

答案是也是可以的,不過為了節(jié)省資源,三次握手就可以符合實(shí)際情況,所以就沒必要設(shè)計(jì)成四次握手、五次握手等等情況

TCP為什么需要三次握手?用最通俗的話解釋給你聽

原文地址:https://www.toutiao.com/a7002147111685161509/

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲国产精品嫩草影院久久 | 成年女人毛片免费观看97 | 午夜国产理论 | 激情三级hd中文字幕 | 精品一区二区三区免费视频 | 好男人在线观看hd中字 | 成人午夜爽爽爽免费视频 | 草大逼 | 美女张开腿让男人桶的 视频 | 高清欧美videossexo免费 | 深夜国产在线 | 国产精品亚洲精品日韩已满 | 亚洲国产欧美在线人成aaaa20 | 第一次不是你高清在线观看 | 草莓茄子丝瓜番茄小蝌蚪 | www.国产一区二区三区 | 国产精品久久久久aaaa | 波多野结衣在线观看视频 | 91yellow吧字幕网zmff7 | 841995论坛网站2022年 | 好看华人华人经典play | 亚洲精品色综合久久 | 亚洲日本免费 | 亚洲高清在线视频 | 99久久久久国产精品免费 | 91麻豆精品国产片在线观看 | 污黄漫 | 午夜 在线播放 | 香蕉视频久久 | 午夜勾魂曲 | 精品国产成人a区在线观看 精品国产91久久久久久久 | a级毛片毛片免费观看永久 a级黄色片免费 | 亚洲不卡视频在线 | 91香蕉视频导航 | 亚洲天堂免费看 | 精品国产自在现线拍国语 | 草逼视频网址 | 纲手被强喷水羞羞漫画 | 国产99久久九九精品免费 | 99久久综合精品免费 | 日本性漫画|