菜鳥面試必知的 http 知識(shí)(一)—— TCP握手協(xié)議

大家好淑履,我是彬彬醬隶垮,目前在騰訊從事Web后端開(kāi)發(fā)。
這個(gè)專題整理了關(guān)于網(wǎng)絡(luò)的基礎(chǔ)知識(shí)秘噪,適合大家進(jìn)行入門級(jí)學(xué)習(xí)狸吞。

由于HTTP協(xié)議是基于TCP/IP協(xié)議的,所以篇1先介紹了TCP指煎,IP蹋偏,DNS的含義和特點(diǎn),為大家學(xué)習(xí)HTTP進(jìn)行基本概念講解贯要,其中TCP的三次/四次握手協(xié)議幾乎是面試必問(wèn)暖侨。

超文本傳輸協(xié)議(HTTP,HyperText Transfer Protocol)是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議崇渗。HTTP 也屬于 TCP/IP 協(xié)議族的子集,想要學(xué)習(xí) HTTP ,先需要了解 TCP/IP宅广。

1 - TCP/IP 的分層管理

TCP/IP 協(xié)議族里重要的一點(diǎn)就是分層葫掉,按層次分為以下4層:應(yīng)用層、傳輸層跟狱、網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層俭厚。層次化的好處是,各層之間的協(xié)議改變可以互不影響驶臊,只需要按照接口規(guī)劃好挪挤。

  • 應(yīng)用層
    應(yīng)用層決定了向用戶提供應(yīng)用服務(wù)時(shí)通信的活動(dòng)。TCP/IP 協(xié)議族內(nèi)預(yù)存了各類通用的應(yīng)用服務(wù)关翎。包括** HTTP扛门,FTP(File Transfer Protocol,文件傳輸協(xié)議)纵寝,DNS**(Domain Name System论寨,域名系統(tǒng))服務(wù)。

  • 傳輸層
    傳輸層提供處于網(wǎng)絡(luò)連接中的兩臺(tái)計(jì)算機(jī)之間的數(shù)據(jù)傳輸爽茴。有兩個(gè)性質(zhì)不同的協(xié)議:TCP(Transmission Control Protocol葬凳,傳輸控制協(xié)議)和UDP(User Data Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)

  • 網(wǎng)絡(luò)層
    網(wǎng)絡(luò)層用來(lái)處理在網(wǎng)絡(luò)上流動(dòng)的數(shù)據(jù)包室奏,數(shù)據(jù)包是網(wǎng)絡(luò)傳輸?shù)淖钚?shù)據(jù)單位火焰。該層規(guī)定了通過(guò)怎樣的路徑到達(dá)對(duì)方計(jì)算機(jī),并把數(shù)據(jù)包傳送給對(duì)方胧沫。與對(duì)方計(jì)算機(jī)之間通過(guò)多臺(tái)計(jì)算機(jī)或網(wǎng)絡(luò)設(shè)備進(jìn)行傳輸時(shí)昌简,網(wǎng)絡(luò)層所起的作用就是在眾多的選項(xiàng)內(nèi)選擇一條傳輸路線。

  • 鏈路層
    用來(lái)處理連接網(wǎng)絡(luò)的硬件部分琳袄。硬件上的范疇均在鏈路層的作用范圍之內(nèi)江场。

2 - TCP/IP 通信傳輸流

如圖1所示,發(fā)送端在層與層之間傳輸數(shù)據(jù)時(shí)窖逗,每經(jīng)過(guò)一層時(shí)必定會(huì)被打上一個(gè)該層所屬的首部信息址否。反之,接收端在層與層傳輸數(shù)據(jù)時(shí)碎紊,每經(jīng)過(guò)一層時(shí)會(huì)把對(duì)應(yīng)的首部消去佑附。
這種把數(shù)據(jù)信息包裝起來(lái)的做法成為封裝。


圖1 - HTTP通信傳輸過(guò)程

3 - 與 HTTP 關(guān)系密切的協(xié)議:IP仗考、TCP 和 DNS

  • 3.1 負(fù)責(zé)傳輸?shù)?IP 協(xié)議
    IP(Internet Protocol)網(wǎng)際協(xié)議位于網(wǎng)絡(luò)層音同。其作用是把各種數(shù)據(jù)包傳送給對(duì)方,需要滿足各類條件,最重要的兩個(gè)條件便是 IP 地址MAC 地址。IP 地址可以和 MAC 地址進(jìn)行配對(duì)庭再,IP 地址可變換柜某,但 MAC 地址基本不會(huì)更改雕欺。
    在網(wǎng)絡(luò)上人芽,通信的雙方在同一局域網(wǎng)(LAN)內(nèi)的情況是很少的裆熙,通常是經(jīng)過(guò)多臺(tái)計(jì)算機(jī)和網(wǎng)絡(luò)設(shè)備中轉(zhuǎn)才能連接到對(duì)方枫攀。而在進(jìn)行中轉(zhuǎn)時(shí)必指,會(huì)利用下一站中轉(zhuǎn)設(shè)備的 MAC 地址來(lái)搜索下一個(gè)中轉(zhuǎn)目標(biāo)囊咏。這時(shí),會(huì)采用 ARP (Address Resolution Protocol)協(xié)議塔橡。 ARP 是一種用以解析地址的協(xié)議梅割,根據(jù)通信方的 IP 地址就可以反查出對(duì)應(yīng)的 MAC 地址。

  • 3.2 確备鸺遥可靠性的 TCP 協(xié)議
    TCP 位于傳輸層户辞,提供可靠的字節(jié)流服務(wù)字節(jié)流服務(wù)是指將大塊數(shù)據(jù)分割成報(bào)文段(segment)為單位的數(shù)據(jù)包進(jìn)行管理
    為了保證準(zhǔn)確性惦银,TCP 協(xié)議采用了三次握手(three-way handshaking)策略咆课。握手過(guò)程中使用了 TCP 的標(biāo)志(flag)—— SYN(synchronize)、ACK(acknowledgement)和 FIN(finish)扯俱。

TCP建立連接—三次握手:發(fā)送端首先發(fā)送一個(gè)帶SYN標(biāo)志的數(shù)據(jù)包給對(duì)方书蚪。接收端收到后,回傳一個(gè)帶有 SYN/ACK 標(biāo)志的數(shù)據(jù)包以示傳達(dá)確認(rèn)信息迅栅。最后殊校,發(fā)送端再回傳一個(gè)帶 ACK 標(biāo)志的數(shù)據(jù)包,代表“握手”結(jié)束读存,過(guò)程見(jiàn)圖2为流。

圖2 - TCP建立連接—三次握手

TCP釋放連接—四次握手:發(fā)送端首先發(fā)送一個(gè)帶 FIN 標(biāo)志的數(shù)據(jù)包給對(duì)方,然后進(jìn)入 FIN-WAIT-1 狀態(tài)让簿。接收端收到后不能立即斷開(kāi)連接(防止數(shù)據(jù)丟失)敬察,先發(fā)送帶 ACK 標(biāo)志的數(shù)據(jù)包,此時(shí)發(fā)送端進(jìn)入 FIN-WAIT-2 狀態(tài)尔当。然后接收端將沒(méi)有傳輸完的數(shù)據(jù)繼續(xù)傳完莲祸,傳完之后發(fā)送一個(gè)帶 ACK 和 FIN 標(biāo)志的數(shù)據(jù)包,通知發(fā)送端椭迎。發(fā)送端發(fā)送 ACK 標(biāo)志的數(shù)據(jù)包給接收端锐帜,并進(jìn)入 TIME-WAIT 狀態(tài),等待 2MSL 后斷開(kāi)連接畜号。

圖3 - TCP釋放連接—四次握手
  • 3.3 負(fù)責(zé)域名解析的 DNS 服務(wù)
    DNS (Domain Name System)服務(wù)是和 HTTP 協(xié)議一樣位于應(yīng)用層的協(xié)議缴阎。它提供域名到 IP 地址之間的解析服務(wù)。用戶通常通過(guò)主機(jī)名或域名來(lái)訪問(wèn)對(duì)方的計(jì)算機(jī)简软,計(jì)算機(jī)則通過(guò) IP 地址查詢服務(wù)器蛮拔。所以 DNS 就提供了域名查找 IP 地址和從 IP 地址反查域名的服務(wù)述暂。

上述三種協(xié)議在 HTTP 通信過(guò)程中的作用可以用一張圖來(lái)表示:

圖4 - HTTP 通信過(guò)程中各協(xié)議的作用

大家好,我是彬彬醬语泽,目前在騰訊從事Web后端開(kāi)發(fā)贸典。
菜鳥必知的 http 知識(shí)專題整理了關(guān)于網(wǎng)絡(luò)的基礎(chǔ)知識(shí)视卢,適合大家進(jìn)行入門級(jí)學(xué)習(xí)踱卵,這個(gè)專題現(xiàn)包含下列文章:
菜鳥必知的 http 知識(shí)(一)—— TCP 握手協(xié)議
菜鳥必知的 http 知識(shí)(二)—— HTTP 協(xié)議特點(diǎn)
菜鳥必知的 http 知識(shí)(三)—— 請(qǐng)求和響應(yīng)報(bào)文
菜鳥必知的 http 知識(shí)(四)—— HTTP 和 HTTPS
菜鳥必知的 http 知識(shí)(五)—— 新技術(shù)的出現(xiàn)
菜鳥必知的 http 知識(shí)(六)—— web的結(jié)構(gòu)組件


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市据过,隨后出現(xiàn)的幾起案子惋砂,更是在濱河造成了極大的恐慌,老刑警劉巖绳锅,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件西饵,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡鳞芙,警方通過(guò)查閱死者的電腦和手機(jī)眷柔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)原朝,“玉大人驯嘱,你說(shuō)我怎么就攤上這事≡梗” “怎么了鞠评?”我有些...
    開(kāi)封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)壕鹉。 經(jīng)常有香客問(wèn)我剃幌,道長(zhǎng),這世上最難降的妖魔是什么晾浴? 我笑而不...
    開(kāi)封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任负乡,我火速辦了婚禮,結(jié)果婚禮上脊凰,老公的妹妹穿的比我還像新娘抖棘。我一直安慰自己,他們只是感情好笙各,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布钉答。 她就那樣靜靜地躺著,像睡著了一般杈抢。 火紅的嫁衣襯著肌膚如雪数尿。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天惶楼,我揣著相機(jī)與錄音右蹦,去河邊找鬼诊杆。 笑死,一個(gè)胖子當(dāng)著我的面吹牛何陆,可吹牛的內(nèi)容都是我干的晨汹。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼贷盲,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼淘这!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起巩剖,我...
    開(kāi)封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤铝穷,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后佳魔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體曙聂,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年鞠鲜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了宁脊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡贤姆,死狀恐怖榆苞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情庐氮,我是刑警寧澤语稠,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站弄砍,受9級(jí)特大地震影響仙畦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜音婶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一慨畸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧衣式,春花似錦寸士、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至住册,卻和暖如春婶博,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背荧飞。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工凡人, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留名党,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓挠轴,卻偏偏與公主長(zhǎng)得像传睹,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子岸晦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

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