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》一書中的插圖:
傳送端首先傳送一個帶SYN標誌的資料包給對方。接收端收到後,回傳一個帶有SYN/ACK標誌的資料包以示傳達確認資訊。最後,傳送端再回傳一個帶ACK標誌的資料包,代表握手結束。
負責域名解析的DNS服務
使用者通常使用主機名或域名來訪問對方的計算機,而不是直接通過IP地址訪問。因為與IP地址的一組純數字相比,用字母配合數字的表示形式來指定計算機名更符合人類的記憶習慣。
但要讓計算機去理解名稱,也是比較困難的,計算機更擅長理解一長串數字。
為了解決上述問題,DNS服務應運而生。DNS協議提供通過域名查詢IP地址,或逆向從IP地址反查域名的服務。