1. 程式人生 > >King來寫程式碼的專欄

King來寫程式碼的專欄

計算機網路複習(TCP/IP)

計算機網路基礎

  1. 計算機網路的分類(略)

  2. 協議

    協議定義了通訊的方式和進行通訊的時間,主要包括語法、語義和同步3個關鍵要素。
    語法:定義了所交換資料的格式和結構,以及資料出現的順序。
    語義:定義了傳送者或接受者所要完成的操作,包括對協議控制報文組成成分含義的約定。
    同步:定義了事件實現順序以及速度匹配。體現在當兩個實體進行通訊時,資料傳送的事件以及傳送的速率。

這裡寫圖片描述
​ 通常將每個層次稱為一個實體,不同機器上對應層的實體叫做對等體。對等體之間利用協議來實現它們之間的通訊,同時每一層實體使用其下一層實體為它提供的服務來實現本層協議,同時向它的上一層實體提供服務。

  1. OSI參考模型傳輸資料的基本過程

這裡寫圖片描述

  1. TCP/IP體系結構(牢記於心)

    這裡寫圖片描述

  2. 各層關係

    • 鏈路層

      負責接收網路層的IP資料報並通過網路傳送到網路傳輸介質上,或者從網路上接收物理幀,抽出IP資料報,交給網路層。如乙太網、令牌網等。

    • 網路層

    由於該層的主要協議為IP,通常也簡稱為IP層。該層主要負責相鄰計算機之間的通訊,把某主機(信源)上的資料包傳送到因特網中的任何一臺目標主機(信宿)上,即點到點通訊。網路層協議包括IP(網際協議)、ICMP(因特網控制報文協議)和IGMP(因特網組管理協議)。

    • 傳輸層

    傳輸層提供的就是應用程式間的通訊,一般也稱為端到端的通訊。(可靠)

    • 應用層

    主要包括超文字傳輸協議(HTTP),簡單網路管理協議(SNMP),檔案傳輸協議(FTP),簡單郵件傳輸協議(SMTP),域名系統(DNS),遠端登入協議(Telnet)等。

  3. 常見協議示意圖(牢記在心)

這裡寫圖片描述

資料鏈路層

  1. 差錯控制:

    檢錯編碼:奇偶校驗碼,迴圈冗餘碼

    糾錯編碼:海明碼

  2. CSMA/CD協議,是在區域網中被廣泛應用的介質訪問控制協議(暫時省略)

  3. 乙太網

    乙太網採用匯流排拓撲結構,所有計算機都共享一條匯流排,資訊以廣播方式傳送。為了保證資料通訊的方便性和可靠性,乙太網採用CSMA/CD技術對匯流排進行訪問控制。考慮到區域網通道質量好,乙太網採取了以下兩項重要的措施使得通訊更加簡便。(乙太網提供的服務是不可靠的)

    1)採用無連線的工作方式

    2)不對傳送的資料幀進行編號,也不要求對方傳送確認。

  4. 乙太網的MAC幀

    這裡寫圖片描述

    目的地址、源地址都為硬體地址,型別表示上層協議型別,FCS迴圈冗餘校驗,校驗首部和資料。

  5. 網橋和交換機(隔離衝突域,省略)

網路層

IP地址

  1. IP地址分類
類別 類標識 十進位制 選用範圍
A 0 1~126 大型網路
B 10 128~191 中型網路
C 110 192~223 小型網路
D 1110 224~239 多播地址
E 11110 240~247 保留地址

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

  1. 特殊IP地址列表
種類 網路地址 主機地址 範例 說明
網路地址 指定網路地址 全0 157.34.0.0
直接廣播地址 指定網路地址 全1 157.34.255.255
受限廣播地址 全1 全1 255.255.255.255
本網路本主機地址 全0 全0 0.0.0.0
本網路特定主機地址 全0 制定主機地址 0.0.123.24
環回地址 127 任意值 127.0.0.0
私有地址 A類:10.0.0~10.255.255.255 B類:172.16.0.0~172.31.255.255 C類:192.168.0.0~192.168.255.255 只能在內部網路,不能用在因特網上,與因特網地址不衝突

  1. 子網

    針對B類和A類地址可能造成浪費的現象,在兩級地址結構的基礎上提出了3級結構,即把每個網路的主機地址空間根據需要進一步劃分成若干個子網。因此子網內主機的IP地址就由3部分來構成:網路地址、子網地址和主機地址。

    這裡寫圖片描述

  2. CIDR無類別域間路由

    無類地址常常採用斜線表示法,將地址和掩碼一起表示出來,其格式為:W.X.Y.Z/n。

  3. 地址解析協議(ARP)和反向地址解析協議(RARP)

    這裡寫圖片描述

地址解析協議(ARP)工作過程:廣播請求獲取目的主機的實體地址的資料報,目的主機以單播方式向傳送請求實體地址的主機回送解析結果

這裡寫圖片描述

這裡寫圖片描述

ARP直接封裝在鏈路層資料報中

網際協議

網際協議(Internet Protocol,IP)作為TCP/IP協議族中的核心協議,提供了網路資料傳送的最基本服務,同時也是實現網路互連的基本協議。主要特點如下。
IP是一種點對點協議,雖然IP資料報攜帶源IP地址和目的IP地址,但進行資料傳輸時的對等實體一定是同一物理網路中的對等實體。
IP不保證傳輸的可靠性,不對資料進行差錯校驗和跟蹤,當資料報發生損壞時不向傳送方通告,如果要求資料傳輸具有可靠性,則要在IP層的上面使用其他協議加以保證。
IP提供無連線資料報服務,各個資料報獨立傳輸,可能沿著不同的路徑到達目的地,也可能不會按序到達目的地。

  1. IPv4

這裡寫圖片描述

記憶方法:你不要是拿1條首飾(首4)來騙()我吧(8

  1. IPv6

IPv6由當前IPv4的32位擴充到128位,總數3.4*1038

冒號十六進位制表示法,即將128位地址表示位X:X:X:X:X:X:X:X,其中X是8個16位地址段的十六進位制值,如FEDC:BA98:7654:4210:FEDC:BA98:7654:3210。
零壓縮表示法: 用::簡化多個0位的16位組

這裡寫圖片描述

IPv6中地址有3種類型:
單播地址(Unicast) :一個單介面識別符號,送往單播地址的資料包將被傳送到該地址所標識的介面上。
任意播地址(Anycast):一組介面(一般屬於不同節點)的識別符號。送往一個任意播地址的資料包將被傳送到該地址所標識的介面之一(即根據路由協議中的距離的計算方法而確定的“最近”的一個)。
多播地址(Multicast) :一組介面(一般屬於不同節點)的識別符號。送往一個多播地址的資料包將被傳送到該地址標識的所有介面上。

移動IP

概念:移動IP應用於所有基於TCP/IP網路環境中,它為人們提供了無限廣闊的網路漫遊服務。譬如:在使用者離開北京總公司,出差到上海分公司時,只要簡單地將移動節點(例如:膝上型電腦、PDA裝置)連線至上海分公司網路上,那麼使用者就可以享受到跟在北京總公司裡一樣的所有操作。使用者依舊能使用北京總公司的共享印表機,或者可以依舊訪問北京總公司同事電腦裡的share檔案及相關資料庫資源;諸如此類的種種操作,讓使用者感覺不到自己身在外地,同事也感覺不到你已經出差到外地了。

原理:在移動網際網路中如何實現移動IP?首先每個網路中都需要部署代理路由器,每一部本地的終端裝置都會在這個代理路由器上註冊(如同每個手機號碼都在歸屬地註冊),終端裝置會獲得一個歸屬於此網路的IP地址,所有資料包都可以以終端IP地址作為目的地址到達這個終端裝置。這個代理路由器稱為家鄉代理(Home Agent,HA)。其次需要部署外地代理伺服器。當終端裝置漫遊到外地網路時,終端裝置需通知家鄉代理以及所在網路的代理路由器,這個代理路由器稱為外地代理(Foreign Agent,FA)。家鄉代理和外地代理之間將建立一個隧道。(如同手機在漫遊地註冊,然後漫遊地網路通知手機號碼的歸屬地網路)。再次需要使用隧道技術。在通訊的過程中,資料包仍然將終端裝置的原地址作為目的地址,首先到達家鄉代理。家鄉代理根據終端裝置的記錄,通過隧道,將這個資料包轉發給外地代理。外地代理再轉發給處於外地網路中的終端裝置。(如同電話先達到被呼叫號碼的歸屬地網路中,歸屬地網路根據被呼叫號碼的漫遊記錄,把電話轉到漫遊地,再由漫遊地網路互通手機。)

網際控制報文協議

IP是一種不可靠的,無連線的資料報傳輸協議,提供了一種盡力而為的點到點資料傳輸服務,但不能保證所有資料報都可以成功地從信源到達信宿。

為此人們在網路層(也稱為IP層)引入了另外一種協議——網際控制報文協議(InternetControl Message Protocol,ICMP)來實現IP層資料報傳輸過程中的差錯控制。通過ICMP配合IP的使用,提高了資料報傳遞的成功率。

ICMP是IP的補充,用於IP層的差錯報告、擁塞控制、路徑控制以及路由器或主機資訊的獲取。

ICMP報文格式與型別:

這裡寫圖片描述
這裡寫圖片描述

型別:用於定義ICMP報文型別。
程式碼:用於標識傳送這個特定報文型別的原因。
校驗和:用於資料傳輸過程的差錯控制,提供ICMP整個報文的校驗和。
首部其他部分:由報文型別來確定相應內容,大部分差錯報告報文未使用該欄位;
資料:提供了ICMP差錯和狀態報告資訊,內容因報文型別而異

ICMP雖然是IP層的協議,但其報文是以IP資料報形式進行傳遞的,即ICMP報文字身被封裝在IP資料報的資料區中。包含ICMP報文的IP資料報首部的協議型別欄位被設定為1。

這裡寫圖片描述

路由表

這裡寫圖片描述

目的網路:用於定義目的主機(特定主機)地址、目的網路(特定網路)地址或預設路由(0.0.0.0)。
子網掩碼:用於定義網路掩碼值,通過將子網掩碼和IP資料報的目的IP地址進行邏輯與操作,可以獲取目的主機所在的網路地址或子網地址

下一跳地址:用於定義資料報在通往信宿的過程中當前必須走的下一跳IP地址。
輸出介面:用於定義資料報傳送時所對應介面的IP地址。路由器通過該介面將資料送往下一個路由器或信宿網路
度量:用於定義路由的度量值,度量從本節點出發去往信宿的距離。跨越的路由器個數,跳數。

路由器選擇流程:

這裡寫圖片描述

動態路由——距離向量路由演算法(Bellman-Ford演算法)

通過判斷距離來查詢到達遠端網路的最佳路徑。即每個路由器都構造一個包含從本路由器出發去往目的網路的最短距離路由資訊(V,D),其中V代表可到達的信宿,D代表距離;
路由器週期性地將自己的最短距離路由資訊傳送給與它直接相連的所有鄰居;
相鄰的路由器收到該資訊後,將它與自己原來已有的最短距離路由資訊進行組合,進而得到完整的連線到所有可能到達的目的網路的路由資訊。

這裡寫圖片描述
這裡寫圖片描述

距離向量路由演算法雖然簡單、易於實現,理論上能有效工作,但在實際運用中卻存在很大缺陷。

  1. 資訊交換量比較大,有可能收斂時間比較長。
  2. 當網路出現故障時,可能資訊交換一直進行下去,一直到無窮。假設B和E之間出現故障。

解決方法

  1. 限定最大跳數,當路由表中的度量值等於或大於該值時認為該路徑有故障,這樣便加快了收斂速度;

  2. 水平分割技術,即當一個節點把路由表的更新資訊傳送給相鄰節點時,它並不把從各相鄰節點處學到的路由資訊再回送給該節點;

  3. 帶反向抑制的水平分割技術,即允許節點將其從相鄰節點處學到的路由資訊反饋給該節點,但是反饋資訊中加了否定標誌,以確保其相鄰節點不會採用該反饋資訊。

動態路由——鏈路狀態路由演算法(Dijkstra演算法)

系統中的每個路由器通過從其他路由器獲得的資訊,構造出當前網路的拓撲結構。
根據這一拓撲結構,利用Dijkstra演算法形成一棵以本路由器為根節點的最短路徑優先樹,該樹反映了從本路由器出發去往當前網路中其他路由器節點的最短路徑。
鏈路狀態演算法的收斂速度相對較快,並且要比距離向量演算法能更有效地避免路由迴路的出現。
但是其需要佔用更多的CPU處理時間和系統資源,因此比距離向量演算法的實現成本更高。

鏈路狀態選路演算法的工作原理如下:

(1)在參與鏈路狀態選路的路由器集合中,每個路由器都需要通過某種機制來了解自己所連線的鏈路及其狀態。

(2)各路由器都能夠將其所連線的鏈路的狀態資訊通知給網路中的所有其他路由器,這些鏈路資訊包括鏈路狀態、費用以及鏈路兩端的路由器等。

(3)鏈路狀態資訊的通過鏈路狀態分組(LSP)來向整個網路釋出。一個LSP通常包含源路由器的識別符號、相鄰路由器的識別符號,以及而知之間鏈路的費用。每一個LSP都將被網路中的所有的路由器接收,並用於建立網路整體的統一拓撲資料庫。由於網路中所有的路由器都發送LSP,經過一段時間以後,每一個路由器都保持了一張完整的網路拓撲圖,再在這個拓撲圖上,利用最短通路演算法(例如Dijkstra演算法等),路由器就可以計算出從任何源點到任何目的地的最佳通路。

這樣,每一個路由器都能夠利用通路最短的原則建立一個以本路由器為根、分支到所有其他路由器的生成樹,依據這個生成樹就可以很容易地計算出本路由器的路由表。

路由選擇協議

內部閘道器協議IGP(Interior Gateway Protocol),即在一個自治系統內部使用的路由選擇協議。主要包括:

  • 路由資訊協議(Routing Information Protocol, RIP)

  • 開放路徑最短優先協議(Open Shortest Path First,OSPF)。

外部閘道器協議EGP(External Gateway Protocol),即自治系統之間使用的路由選擇協議。

  • 目前使用最多的外部閘道器協議是邊界閘道器協議第4版BGP-4 (Border Gateway Protocol v4) 。

路由資訊協議(RIP)是一個廣泛使用的內部閘道器協議,採用距離向量演算法。

作為基於距離向量演算法的路由選擇協議,RIP把到達目的網路的“距離”作為選擇路由的度量,而“距離”一般指跳數,也就是所經過的路由器數量。每經過一個路由器,跳數就增加1,也就是“距離”增加1。RIP認為一條好的路由就是它所經過的路由器數量最少的路由。
為了避免跳數計數到無窮的問題,最大跳數設為15。

RIP報文的封裝格式:

這裡寫圖片描述
封裝在UDP報文中傳輸,使用UDP的520埠

開放最短路徑優先協議

開放最短路徑優先協議 (Open Shortest Path First, OSPF) 是由IETF IGP工作小組提出的,一種基於SPF演算法的路由協議。
與RIP不同,在OSPF協議中,沒有跳數限制,並且選擇最佳路徑的度量標準可以基於頻寬、延遲、可靠性和負載等服務型別。
因此,OSPF協議是目前因特網和企業網採用最多、應用最廣泛的路由協議之一。
OSPF原理
分層思想,將網路劃分為不同的區域
區域內路由器以泛洪的方式在區域內交換資訊
在區域邊界定義一個邊界路由器,負責彙總該區域的資訊,並將資訊傳遞給其他區域
這裡寫圖片描述

OSPF資料報文的型別有5種

  1. 問候報文(Hello)

  2. 資料描述報文(Database Description,DD)

  3. 鏈路狀態請求報文(Link State Request,LDR)

  4. 鏈路狀態更新報文(Link State Update,LSU)

  5. 鏈路狀態應答報文(Link State Acknowledgment,LSA)

在OSPF報文傳輸的過程中,直接被封裝為IP資料報進行傳遞。

邊界閘道器協議BGP

採用了路徑向量演算法,其與距離向量演算法的主要區別在於:
其一是捨棄了路由度量值,不包含距離或費用的估計值;
其二是每個路由資訊塊列出沿某路由到達目標網路要經過的所有自治系統。
因此在BGP中,路由表包含目的網路、下一跳路由器和去往目的網路的路徑等資訊。其中路徑由一系列按序的自治系統號構成。

這裡寫圖片描述

BGP路由器的資訊交換過程
建立基於TCP的通訊連線,然後BGP路由器之間通過交換BGP報文來開啟連線並確認連線引數。在連線建立過程中,如果鄰站不同意,就傳送出錯通知並關閉連線。
兩個BGP路由器之間建立連線後,首先交換所有的BGP路由資訊;而正常執行後,通常只在網路資訊發生變化時才傳送增量路由更新資訊,以減少交換的資訊量。路由器在接收到鄰站路由器的更新資訊後,將更新自己的路由資訊。BGP路由器並不週期性傳送路由更新,且BGP路由更新只包含到某網路的最佳路徑。
如果沒有路由變化,則BGP路由器將週期性地傳送保活報文來維持BGP連線,預設情況下每60秒傳送一次保活報文。

傳輸層

傳輸控制協議TCP

傳輸控制協議(Transmission Control Protocol,TCP)提供一種面向連線的、可靠的資料傳輸服務,保證了端到端資料傳輸的可靠性。

嚮應用程序提供面向連線的服務,兩個需要通過TCP進行資料傳輸的應用程序之間首先必須建立一個TCP連線,並且在資料傳輸完成後要釋放連線。一般將請求連線的應用程序稱為客戶機程序,而響應連線請求的應用程序稱為伺服器程序,即TCP連線的建立採用的是一種客戶機/伺服器工作模型。

提供全雙工資料傳輸服務,只要建立了TCP連線,就能在兩個應用程序間進行雙向的資料傳輸服務,但是這種傳輸只是端到端的傳輸,不支援廣播和多播。

提供面向位元組流的服務,即TCP的資料傳輸是面向位元組流的,兩個建立了TCP連線的應用程序之間交換的是位元組流。傳送程序以位元組流形式傳送資料,接收程序也把資料作為位元組流來接收。端到端之間不保留資料記錄的邊界,也就是說在傳輸的層面上不存在資料記錄的概念。

TCP報文結構

這裡寫圖片描述

校驗和:用來校驗整個TCP報文段的所有資料的正確性,包括TCP首部和資料。

校驗和計算:

這裡寫圖片描述

TCP流量控制

兩種極端情況:傳送方每傳送一個位元組都要等待接收方確認,通訊效率低;傳送方不關心接收方是否確認,不斷髮送資料,從而可能造成接收方緩衝區溢位,丟失資料。
通過流量控制來定義傳送方在收到接收方的確認報文之前可以傳送的資料量。滑動視窗是TCP實現流量控制的關鍵技術。

這裡寫圖片描述

當傳送應用程序產生資料很慢,或者接收應用程序接收處理資料很慢時,或者兩種情況都存在時,在滑動視窗的操作中有可能出現傳送方每次只發送包含一個位元組(或較小位元組數)的報文段,同時接收方每次也僅對接收到的包含一個位元組(或較小位元組數)的報文段進行確認。
這樣勢必大大降低網路頻寬的使用效率,此時通常也稱為出現了傻瓜視窗綜合症。為此,在TCP中主要引入了3種策略予以改進。

解決辦法:
Nagle演算法:主要針對傳送方產生資料比較慢,而造成傳送報文段包含資料量比較小的情況,其主要思想是強迫傳送方等待,讓它收集傳送資料,以便傳送大塊資料,即通過降低傳送次數來加大每次傳送的資料量。
Clark演算法:主要針對接收方接收處理資料較慢,而造成頻繁傳送確認報文的情況。即只要接收方的接收緩衝區已滿,則每次接收到TCP報文後返回視窗值為0的確認報文,以停止傳送方的資料傳送,直到接收緩衝區的空閒區域已經能容納最大長度的報文段或有一半以上的接收緩衝空間已經空閒,再發送一個視窗值不為0的確認視窗,以重新更新發送方的滑動視窗大小,使傳送方可以繼續傳送報文段。
延遲確認演算法:當接收方收到報文段後,並不馬上回復確認報文,而是等接收緩衝區已經有一定數量的空閒空間後,再回送確認報文段。

TCP擁塞控制

中間路由器或物理鏈路的超載勢必也會引起資料傳輸的嚴重延時,即網路擁塞。如何處理?
在TCP中引入了慢啟動和擁塞避免兩種策略機制來實現對擁塞視窗大小的控制,進而來避免和消除網路擁塞。
傳送方引入擁塞視窗,利用該視窗來控制傳送方傳送資料的速率
擁塞視窗由傳送方指定,實際傳送視窗的大小從擁塞視窗和流量視窗中選擇較小的視窗。

慢啟動演算法
在建立連線時,傳送方將擁塞視窗大小初始化為一個最大報文段的大小MSS,然後每收到一個接收方的對新報文段確認報文,擁塞視窗的大小就增加一個MSS,即對每一個傳送方所傳送的新報文段的確認都將使擁塞視窗的大小增加一個MSS。

擁塞避免演算法
為了避免擁塞視窗過快增長,儘量避免擁塞現象的出現。當擁塞視窗大小達到一個門限值時,便採取擁塞避免演算法來改變擁塞視窗的大小,其方法是每收到一個確認報文,擁塞視窗大小增加一個MSS,即使該確認報文是針對多個報文段的,擁塞視窗也只增加一個MSS。

重傳定時器
由於上述兩種策略都將使擁塞視窗變得很大,進而造成網路擁塞的發生。為此,TCP/IP中引入了重傳定時器。當由於網路擁塞使重傳定時器超時的時候,傳送方則進入擁塞解決階段。
傳送方在進行TCP報文段重傳的同時,將擁塞視窗的門限值調整為擁塞視窗的一半,並將擁塞視窗恢復成一個MSS,然後進入新一輪的調整。

TCP差錯控制

對於丟失或受損的報文段,傳送方將依靠超時確認機制驅動報文段重發來解決。
出現重複報文段時,接收方只是簡單地丟棄重複報文段。
出現報文段失序的情況後,TCP採用了延遲確認的方式予以解決,即當接收方收到失序報文段後不會馬上確認,而是先將其存放在緩衝區中,當被確認報文段之前的所有報文段都已經收到了才回送確認報文。
當接收方的確認報文出現丟失等差錯後,TCP引入了累計確認機制,即當一個確認報文段丟失後,系統可以不予理睬,後面所接收到的確認報文段可以確認,一直到該報文段中的確認號指明的位元組為止的所有位元組都已經收到。

使用者資料報協議UDP

使用者資料報協議(User Datagram Protocol,UDP)是傳輸層的兩個主要協議之一,相對TCP來說,UDP是一種非常簡單的協議,在網路層的基礎上實現了應用程序之間端到端的通訊。
UDP提供的是一種無連線的、不可靠的資料傳輸方式,在資料傳輸過程中沒有流量控制和確認機制,資料報可能會丟失、延遲、亂序到達信宿。
UDP只是提供了利用校驗和檢查資料完整性的簡單差錯控制,屬於一種盡力而為的資料傳輸方式。

這裡寫圖片描述

首部一共8位元組

源埠號:即執行在信源機的應用程序所使用的埠號。
目的埠號:即執行在信宿機的應用程序所使用的埠號。
資料報總長度:定義了使用者資料報的總長度,即UDP資料報的首部和資料的長度和。
校驗和:用於檢驗整個使用者資料報的差錯。

這裡寫圖片描述

UDP使用者資料報傳輸佇列
UDP使用者資料報傳輸佇列與UDP埠相關聯,因此每個使用UDP協議的應用程序都包含一個輸入佇列和一個輸出佇列。
當UDP為某個應用程序臨時分配一個UDP埠號時也同時在記憶體中建立了一個輸出佇列和輸入佇列。
當用戶程序傳送資料報時,將該資料報寫入輸出佇列,UDP逐個將資料報取出,加上UDP首部後封裝為UDP資料報交付給網路層;
而到達信宿的資料報將放在與該資料報的目的埠號對應的輸入佇列中。
輸入輸出佇列都可能溢位,如果輸出佇列溢位,作業系統將要求應用程序降低資料報傳送的速度,而如果輸入佇列溢位,應用程序就丟棄該資料報,並請求向傳送程序傳送“埠不可達”報文。

應用層

DNS

域名系統(Domain Name System, DNS)是一種工作在TCP/IP的應用層的分散式網路目錄服務系統,它通過一個遍佈全球的分散式資料庫,提供主機名稱和IP地址之間的對映。

域名解析
遞迴解析
當一個DNS伺服器接收到請求後,如果它本身就是授權伺服器,則查詢其所儲存的域名空間資訊並給出響應;
如果它不是授權伺服器,則將請求轉發給另一個DNS伺服器;
直到請求最終被響應後,再逐級將響應資訊返回給請求客戶機。
反覆解析
當一個DNS伺服器接收到請求後,如果能給出解析結果則向客戶機返回最終結果,否則應向客戶提供其認為能夠給出解析結果的DNS伺服器的IP地址。
客戶機收到該IP地址後再向該IP地址對應的DNS伺服器發出請求,直到獲得最終結果。

DNS報文
包括請求報文和響應報文
12位元組報文首部和4個長度可變的欄位組成
一般採用UDP傳輸,超過512位元組採用TCP傳輸
UDP和TCP中埠號均為53

遠端登入協議——Telnet

應用Telnet協議能夠把本地使用者所使用的計算機變成遠端主機系統的一個模擬終端,即實現對遠端主機系統的遠端登入,使本地使用者可以訪問遠端資源。
工作在應用層的Telnet以TCP為傳輸層協議,使用的埠號是23,可在本地主機和遠端主機之間以半雙工方式進行通訊。

工作原理
Telnet遠端登入服務可分為4個基本過程
依據遠端主機的IP地址或域名以及埠號,本地系統與遠端主機系統建立TCP連線;
本地系統終端上接收的使用者資訊以NVT(網路虛擬終端)格式傳送到遠端主機系統,並在遠端主機系統中將其轉換為遠端主機系統的資料格式;
遠端主機系統的響應資訊以NVT格式返回給本地主機系統,並在本地主機系統轉換為本地主機系統的資料格式,交付給本地主機系統終端;
最後,本地主機系統終端對遠端主機進行撤銷連線,即撤銷一個TCP連線

這裡寫圖片描述

檔案傳輸協議(FileTransfer Protocol,FTP)

FTP屬於TCP/IP協議族的應用層協議,其傳輸層使用的是TCP,基於客戶機/伺服器模式工作,為資料傳輸提供了可靠保證。

FTP工作原理
FTP的工作過程其實就是客戶機程式根據使用者需要傳送命令,伺服器程式響應命令的過程。
需要建立兩種型別的連線:控制連線和資料連線。控制連線傳送客戶機程式發出的命令和伺服器返回的響應資訊,而資料連線則負責傳輸檔案的內容。

這裡寫圖片描述

啟動FTP伺服器:由於FTP採用了客戶機/伺服器工作模式,因此在建立FTP會話之前,首先必須啟動FTP伺服器,並使其處於等待客戶機程式的FTP請求狀態。
開啟FTP並建立控制連線:啟動FTP客戶機程式,並向FTP伺服器的21埠(控制連線埠)發出主動連線的請求,以期獲得FTP伺服器的相應許可權。伺服器響應請求後便在使用者協議直譯器和伺服器協議直譯器之間建立了一條TCP連線。
建立資料連線並進行檔案傳輸:使用者通過客戶機程式輸入FTP命令,伺服器接收命令。如果命令正確且需要進行檔案傳輸,伺服器使用TCP20埠在雙方之間建立另一條TCP連線,即資料連線,並通過該連線進行檔案傳輸。當本次命令的檔案傳輸完畢,關閉該資料連線。
關閉FTP:使用者執行完其所需的FTP命令後,發出退出FTP命令,控制連線關閉,本次FTP服務結束。

超文字傳輸協議——HTTP

全球資訊網的工作過程
使用者確定要訪問網頁的URL,並將其輸入到瀏覽器的位址列中。
瀏覽器向DNS伺服器發出請求,獲取Web伺服器域名所對應的IP地址。
瀏覽器向指定IP地址的Web伺服器發出與埠80建立一條TCP連線的請求。80埠是Web伺服器提供Web服務的埠。
在得到Web伺服器確認並且TCP連線建立成功後,瀏覽器再向Web伺服器發出一條請求傳輸網頁的HTTP命令。
當Web伺服器收到請求後,向瀏覽器傳送其所需的網頁檔案。
網頁檔案傳送完成後,由Web伺服器主動關閉TCP連線。至此,HTTP的工作過程結束。
瀏覽器顯示所收到的網頁檔案。如果網頁檔案中包含圖片等資訊,還要再次與Web伺服器建立TCP連線下載相應圖片資訊等。

這裡寫圖片描述

HTTP工作原理
首先客戶機程式建立一個套接字,同時向伺服器發出TCP連線請求,並通過伺服器的確認建立TCP連線。
客戶機程式根據需要利用TCP連線向伺服器傳送相應的請求命令。HTTP伺服器也可以由其他型別的閘道器充當代理伺服器,這樣,HTTP便可以允許使用者訪問其他因特網協議,如SMTP、FTP、Gopher等。
伺服器接收到客戶機程式的請求命令後進行相應的處理,然後將處理結果以響應訊息的形式通過TCP連線返回給客戶機程式。
完成本次請求/應答後,客戶機程式和伺服器程式都可以通過關閉套接字來結束本次的TCP連線

請求報文格式
資訊首部
User-Agent:產生請求的瀏覽器型別;
Accept:客戶端可識別的響應內容型別列表;星號 “* ” 用於按範圍將型別分組,用 “ / ” 指示可接受全部型別,用“type/*”指示可接受type型別的所有子型別;
Accept-Language:客戶端可接受的自然語言;
Accept-Encoding:客戶端可接受的編碼壓縮格式;pAccept-Charset:可接受的應答的字符集;
Host:請求的主機名,允許多個域名同處一個IP 地址,即虛擬主機;
Connection:連線方式(close或keepalive);
Cookie:儲存於客戶端擴充套件欄位,向同一域名的服務端傳送屬於該域的cookie

響應報文格式
狀態碼:響應型別,3位10進位制陣列成
1xx:表示伺服器已接收了客戶端請求,客戶端可繼續傳送請求;
2xx:表示伺服器已成功接收到請求並進行處理;
3xx:表示伺服器要求客戶端重定向;
4xx:表示客戶端的請求有非法內容;
5xx:表示伺服器未能正常處理客戶端的請求而出現意外錯誤

郵件傳輸協議

需要傳送者郵件代理、傳送者郵件伺服器、接收者郵件伺服器,接收者代理4個程式的參與。
這裡寫圖片描述
在郵件傳輸過程中,起關鍵作用的是兩個郵件傳輸協議:SMTP和POP3。

SMTP(Simple Mail Transfer Protocol)是簡單郵件傳輸協議的縮寫,是建立在傳輸層協議TCP上的可靠高效的郵件傳輸協議,採用請求/應答方式來實現。整個工作過程包括連線建立、郵件傳送和連線釋放3個階段。
連線建立:SMTP是基於客戶機/伺服器模式工作的,郵件伺服器在TCP的25埠守候客戶機的請求。當需要傳送郵件時,傳送主機的SMTP客戶機向連線主機的SMTP伺服器的TCP埠25發出建立連線請求,得到伺服器確認後連線建立。此後,SMTP客戶機再次向SMTP伺服器傳送HELO命令,並附上傳送方主機名以確認SMTP伺服器是否已經準備好接收郵件。如果SMTP伺服器應答“250 XXXX”表示已準備好接收郵件。

郵件傳送
SMTP客戶機得到SMTP伺服器的肯定回答後,隨即可利用MAIL命令告訴SMTP伺服器新的郵件傳送操作已經開始。如果SMTP伺服器已經準備好接收郵件,則以250應答程式碼應答。
其後SMTP客戶機可以用RCPT命令傳送郵件接收者的目的地址,以便SMTP伺服器把郵件內容最終傳送到收件人的郵箱中。如果命令被接收,則返回250應答碼。
然後SMTP客戶機可利用DATA命令告訴SMTP伺服器下面將要傳送郵件內容。如果命令被接收,則SMTP伺服器以354應答碼應答,並認定以下的各行都是郵件內容。傳送完畢後,再發送

DHCP

DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)是一個區域網的網路協議,使用UDP協議工作, 主要有兩個用途:給內部網路或網路服務供應商自動分配IP地址,給使用者或者內部網路管理員作為對所有計算機作中央管理的手段,在RFC 2131中有詳細的描述。