本文內容來自《圖解HTTP》,作者: [日] 上野宣,人民郵電出版社
一、負責傳輸?shù)腎P協(xié)議
按層次分,IP ( Internet Protocol)網際協(xié)議位于網絡層。Internet Protocol這個名稱可能聽起來有點夸張,但事實正是如此,因為幾乎所有使用網絡的系統(tǒng)都會用到IP協(xié)議。TCP/IP協(xié)議族中的IP指的就是網際協(xié)議,協(xié)議名稱中占據(jù)了一半位置,其重要性可見一斑??赡苡腥藭选癐P”和“IP地址”搞混,“IP”其實是一種協(xié)議的名稱。
IP協(xié)議的作用是把各種數(shù)據(jù)包傳送給對方。而要保證確實傳送到對方那里,則需要滿足各類條件。其中兩個重要的條件是IP地址和MAC地址( Media Access Control Address )。
IP地址指明了節(jié)點被分配到的地址,MAC地址是指網卡所屬的固定地址。IP 地址可以和MAC地址進行配對。IP 地址可變換,但MAC地址基本上不會更改。
使用ARP協(xié)議憑借MAC地址進行通信
IP間的通信依賴MAC地址。在網絡上,通信的雙方在同一局域網( LAN)內的情況是很少的,通常是經過多臺計算機和網絡設備中轉才能連接到對方。而在進行中轉時,會利用下一站中轉設備的MAC地址來搜索下一個中轉目標。這時,會采用ARP協(xié)議( Address Resolution Protocol)。ARP是一種用以解析地址的協(xié)議,根據(jù)通信方的IP地址就可以反查出對應的MAC地址。
沒有人能夠全面掌握互聯(lián)網中的傳輸狀況
在到達通信目標前的中轉過程中,那些計算機和路由器等網絡設備只能獲悉很粗略的傳輸路線。
這種機制稱為路由選擇(routing),有點像快遞公司的送貨過程。想要寄快遞的人,只要將自己的貨物送到集散中心,就可以知道快遞公司是否肯收件發(fā)貨,該快遞公司的集散中心檢查貨物的送達地址,明確下站該送往哪個區(qū)域的集散中心。接著,那個區(qū)域的集散中心自會判斷是否能送到對方家中。
二、確保可靠性的TCP協(xié)議
按層次分,TCP位于傳輸層,提供可靠的字節(jié)流服務。
所謂的字節(jié)流服務(Byte Stream Service)是指,為了方便傳輸,將大塊數(shù)據(jù)分割成以報文段(segment)為單位的數(shù)據(jù)包進行管理。而可靠的傳輸服務是指,能夠把數(shù)據(jù)準確可靠地傳給對方。一言以蔽之,TCP協(xié)議為了更容易傳送大數(shù)據(jù)才把數(shù)據(jù)分割,而且TCP協(xié)議能夠確認數(shù)據(jù)最終是否送達到對方。
確保數(shù)據(jù)能到達目標
為了準確無誤地將數(shù)據(jù)送達目標處,TCP協(xié)議采用了三次握手(three-way handshaking)策略。用TCP協(xié)議把數(shù)據(jù)包送出去后,TCP不會對傳送后的情況置之不理,它一定會向對方確認是否成功送達。握手過程中使用了TCP的標志(flag)——SYN(synchronize)和ACK(acknowledgement)。
發(fā)送端首先發(fā)送一個帶SYN標志的數(shù)據(jù)包給對方。
接收端收到后,回傳一個帶有SYN/ACK標志的數(shù)據(jù)包以示傳達確認信息。
最后,發(fā)送端再回傳一個帶ACK標志的數(shù)據(jù)包,代表“握手”結束。
若在握手過程中某個階段莫名中斷,TCP協(xié)議會再次以相同的順序發(fā)送相同的數(shù)據(jù)包。
TCP.JPG
三、負責域名解析的DNS服務
DNS(Domain Name System)服務是和HTTP協(xié)議一樣位于應用層的協(xié)議。它提供域名到IP地址之間的解析服務。
計算機既可以被賦予IP地址,也可以被賦予主機名和域名。比如www.hackr.jp。
用戶通常使用主機名或域名來訪問對方的計算機,而不是直接通過IP地址訪問。因為與IP地址的一組純數(shù)字相比,用字母配合數(shù)字的表示形式來指定計算機名更符合人類的記憶習慣。
但要讓計算機去理解名稱,相對而言就變得困難了。因為計算機更擅長處理一長串數(shù)字。
為了解決上述的問題,DNS服務應運而生。DNS協(xié)議提供通過域名查找IP地址,或逆向從IP地址反查域名的服務。