與HTTP關係密切的協議:IP、TCP、DNS

明易發表於2018-12-05

TCP/IP協議族的協議挺多的,我們精力有限,不可能一個個都瞭如指掌,那就挑一些與HTTP協議關係瞭解吧~

負責傳輸的IP協議

按層次分,IP協議位於網路層。

IP協議的作用是把各種資料包傳送給對方。而要保證確實傳送到對方那裡,則需要滿足各類條件,其中兩個重要的條件是IP地址和MAC地址。

IP地址就像現實世界中的地址,而MAC地址,則更像一個人的身份證號。MAC地址是固定的,IP地址是可變的。

你或許會有疑問,光有MAC沒有IP,或者光有IP沒有MAC,行不行?

答案是不行。

光有MAC地址,就好像某人在上海,你在廣州喊“身份證是XXX的,你站出來”,對方聽不到。

光有IP地址,就像某個人在一棟大廈裡,你到了該大廈,但你不知道對方具體是誰,你一樣找不到對方。

相信你對IP地址跟MAC地址已經有了較深的理解,我們接著往下看~

確保可靠性的TCP協議

網路世界,不確定性才是確定的,無論哪臺計算機、哪臺網路裝置,都無法全面掌握網際網路的細節。

這就很矛盾了,因為我們知道TCP位於傳輸層,提供可靠的位元組流服務。

所謂的位元組流服務,是為了方便傳輸,將大塊資料分割成以報文段為單位的資料包進行管理。

而可靠的傳輸服務是指,能夠把資料準確可靠地傳給對方。

簡言之,TCP協議既要負責分割資料,又要確保資料最終是否送達對方。

為了準確無誤地將資料送達目標處,TCP協議採用三次握手策略。 借用《圖解HTTP》一書中的插圖:

圖解三次握手.png

傳送端首先傳送一個帶SYN標誌的資料包給對方。接收端收到後,回傳一個帶有SYN/ACK標誌的資料包以示傳達確認資訊。最後,傳送端再回傳一個帶ACK標誌的資料包,代表握手結束。

負責域名解析的DNS服務

使用者通常使用主機名或域名來訪問對方的計算機,而不是直接通過IP地址訪問。因為與IP地址的一組純數字相比,用字母配合數字的表示形式來指定計算機名更符合人類的記憶習慣。

但要讓計算機去理解名稱,也是比較困難的,計算機更擅長理解一長串數字。

為了解決上述問題,DNS服務應運而生。DNS協議提供通過域名查詢IP地址,或逆向從IP地址反查域名的服務。

相關文章