圖解IP協議、TCP協議、DNS服務


1、負責傳輸的IP協議(網絡層)

  按層次分,IP網際協議位於網絡層。InternetProtocol 這個名稱可能聽起來有點誇張,但事實正是如此,因為幾乎所有使用網絡的系統都會用到 IP 協議。TCP/IP 協議族中的 IP 指的就是網際協議,協議名稱中占據了一半位置,其重要性可見一斑。可能有人會把“IP”和“IP 地址”搞混,“IP”其實是一種協議的名稱。

   IP 協議的作用是把各種數據包傳送給對方。而要保證確實傳送到對方那里,則需要滿足各類條件。其中兩個重要的條件是 IP 地址和 MAC地址。
 
  IP 地址指明了節點被分配到的地址,MAC 地址是指網卡所屬的固定地址。IP 地址可以和 MAC 地址進行配對。IP 地址可變換,但 MAC地址基本上不會更改。
 
  使用 ARP 協議憑借 MAC 地址進行通信IP 間的通信依賴 MAC 地址。在網絡上,通信的雙方在同一局域網(LAN)內的情況是很少的,通常是經過多台計算機和網絡設備中轉才能連接到對方。而在進行中轉時,會利用下一站中轉設備的 MAC地址來搜索下一個中轉目標。這時,會采用 ARP 協議。ARP 是一種用以 解析地址的協議,根據通信方的 IP 地址就可以反查出對應的 MAC 地址。
 
  沒有人能夠全面掌握互聯網中的傳輸狀況在到達通信目標前的中轉過程中,那些計算機和路由器等網絡設備只能獲悉很粗略的傳輸路線。這種機制稱為 路由選擇,有點像快遞公司的送貨過程。想要寄快遞的人,只要將自己的貨物送到集散中心,就可以知道快遞公司是否肯收件發貨,該快遞公司的集散中心檢查貨物的送達地址,明確下站該送往哪個區域的集散中心。接着,那個區域的集散中心自會判斷是否能送到對方的家中。
 
  

 

 2、確保可靠性的TCP協議(傳輸層)

  按層次分,TCP 位於傳輸層, 提供可靠的字節流服務
 
  所謂的 字節流服務是指,為了方便傳輸,將大塊數據分割成以報文段為單位的數據包進行管理。而 可靠的傳輸服務是指,能夠把數據准確可靠地傳給對方。一言以蔽之,TCP 協議為了更容易傳送大數據才把數據分割,而且 TCP 協議能夠確認數據最終是否送達到對方。確保數據能到達目標。
 
  為了准確無誤地將數據送達目標處,TCP 協議采用了 三次握手(為了提供可靠的傳輸服務)策略。用 TCP 協議把數據包送出去后,TCP不會對傳送后的情況置之不理,它一定會向對方確認是否成功送達。 握手過程中使用了 TCP 的標志(flag) —— SYN 和ACK
 
  發送端首先發送一個帶 SYN 標志的數據包給對方。接收端收到后,回傳一個帶有 SYN/ACK 標志的數據包以示傳達確認信息。最后,發送端再回傳一個帶 ACK 標志的數據包,代表“握手”結束。若在握手過程中某個階段莫名中斷,TCP 協議會再次以相同的順序發送相同的數據包。 
  
   三次握手可以簡化為:A  發起請求連接 B 確認,B也發起連接 A 確認。我們再看看每次握手的作用:
  • 第一次握手:B 只可以確認自己可以接受 A 發送的報文段
  • 第二次握手:A 可以確認 B 收到了自己發送的報文段,並且可以確認 自己可以接受 B 發送的報文段
  • 第三次握手:B 可以確認 A 收到了自己發送的報文段

   

  由於TCP連接是全雙工的,因此每個方向都必須單獨進行關閉。這個原則是當一方完成它的數據發送任務后就能發送一個FIN來終止這個方向的連接。收到一個 FIN只意味着這一方向上沒有數據流動,一個TCP連接在收到一個FIN后仍能發送數據。首先進行關閉的一方將執行主動關閉,而另一方執行被動關閉。

  四次揮手,即斷開 TCP 的連接,過程如下:

  • 第一次揮手:客戶端發送一個FIN,用來關閉客戶端到服務端的數據傳送,客戶端進入FIN_WAIT_1狀態。
  • 第二次揮手:服務端收到FIN后,發送一個ACK給客戶端,確認序號為收到序號+1(與SYN相同,一個FIN占用一個序號),服務端進入CLOSE_WAIT狀態。
  • 第三次揮手:服務端發送一個FIN,用來關閉服務端到客戶端的數據傳送,服務端進入LAST_ACK狀態。
  • 第四次揮手:客戶端收到FIN后,客戶端進入TIME_WAIT狀態,接着發送一個ACK給服務端,確認序號為收到序號+1,服務端進入CLOSED狀態,完成四次揮手。

 

3、負責域名解析的DNS服務(應用層)

  DNS服務是和 HTTP 協議一樣位於應用層的協議。

 它提供域名到 IP 地址之間的解析服務。計算機既可以被賦予 IP 地址,也可以被賦予主機名和域名,比如www.hackr.jp。

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

 但要讓計算機去理解名稱,相對而言就變得困難了。因為計算機更擅長處理一長串數字。

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

   

 

 

 


 

注:本文內容來源自《HTTP圖解》,想詳細了解的同學可以購買本書查閱。  
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM