TCP IP四層模型

2021-10-04 09:11:55 字數 3464 閱讀 7951

tcp/ip協議族是乙個四層協議系統,自底而上分別是資料鏈路層、網路層、傳輸層和應用層。每一層完成不同的功能,且通過若干協議來實現,上層協議使用下層協議提供的服務。

資料鏈路層實現了網絡卡介面的網路驅動程式,以處理資料在物理媒介(比如乙太網、令牌環等)上的傳輸。

資料鏈路層兩個常用的協議是arp協議(address resolve protocol,位址解析協議)和rarp協議(reverseaddress resolve protocol,逆位址解析協議)。它們實現了ip位址和機器實體地址(通常是mac位址,乙太網、令牌環和802.11無線網路都使用mac位址)之間的相互轉換。

網路層使用ip位址定址一台機器,而資料鏈路層使用實體地址定址一台機器,因此網路層必須先將目標機器的ip位址轉化成其實體地址,才能使用資料鏈路層提供的服務,這就是arp協議的用途。

rarp協議僅用於網路上的某些無盤工作站。因為缺乏儲存裝置,無盤工作站無法記住自己的ip位址,但它們可以利用網絡卡上的實體地址來向網

絡管理者(伺服器或網路管理軟體)查詢自身的ip位址。執行rarp服務的網路管理者通常存有該網路上所有機器的實體地址到ip位址的對映。

網路層實現資料報的選路和**。

wan(wide area network,廣域網)通常使用眾多分級的路由器來連線分散的主機或lan(local area network,區域網),因此,通訊的兩台主機一般不是直接相連的,而是通過多個中間節點(路由器)連線的。網路層的任務就是選擇這些中間節點,以確定兩台主機之間的通訊路徑。同時,網路層對上層協議隱藏了網路拓撲連線的細節,使得在傳輸層和網路應用程式看來,通訊的雙方是直接相連的。

網路層最核心的協議是ip協議(internet protocol,網際網路協議)。ip協議根據資料報的目的ip位址來決定如何投遞它。如果資料報不能直接傳送給目標主機,那麼ip協議就為它尋找乙個合適的下一跳(next hop)路由器,並將資料報交付給該路由器來**。多次重複這一過程,資料報最終到達目標主機,或者由於傳送失敗而被丟棄。可見,ip協議使用逐跳(hop by hop)的方式確定通訊路徑。

網路層另外乙個重要的協議是icmp協議(internet control message protocol,網際網路控制報文協議)。它是ip協議的重要補充,主要用於檢測網路連線。

8位型別字段用於區分報文型別。它將icmp報文分為兩大類

差錯報文,這類報文主要用來回應網路錯誤,比如目標不可到達(型別值為3)和重定向(型別值為5);

查詢報文,這類報文用來查詢網路資訊,比如ping程式就是使用icmp報文檢視目標是否可到達(型別值為8)的。

有的icmp報文還使用8位**欄位來進一步細分不同的條件。比如重定向報文使用**值0表示對網路重定向,**值1表示對主機重定向。

icmp報文使用16位校驗和字段對整個報文(包括頭部和內容部分)進行迴圈冗餘校驗(cyclic redundancy check,crc),以檢驗報文在傳輸過程中是否損壞。不同的icmp報文型別具有不同的正文內容

傳輸層為兩台主機上的應用程式提供端到端(end to end)的通訊。與網路層使用的逐跳通訊方式不同,傳輸層只關心通訊的起始端和目的端,而不在乎資料報的中轉過程。

垂直的實線箭頭表示tcp/ip協議族各層之間的實體通訊(資料報確實是沿著這些線路傳遞的),而水平的虛線箭頭表示邏輯通訊線路。該圖中還附帶描述了不同物理網路的連線方法。可見,

資料鏈路層(驅動程式)封裝了物理網路的電氣細節;網路層封裝了網路連線的細節;傳輸層則為應用程式封裝了一條端到端的邏輯通訊鏈路,它負責資料的收發、鏈路的超時重連等。

傳輸層協議:tcp協議、udp協議。

tcp協議(transmission control protocol,傳輸控制協議)為應用層提供可靠的、面向連線的和基於流(stream)的服務。tcp協議使用超時重傳、資料確認等方式來確保資料報被正確地傳送至目的端,因此tcp服務是可靠的。使用tcp協議通訊的雙方必須先建立tcp連線,並在核心中為該連線維持一些必要的資料結構,比如連線的狀態、讀寫緩衝區,以及諸多定時器等。當通訊結束時,雙方必須關閉連線以釋放這些核心資料。tcp服務是基於流的。基於流的資料沒有邊界(長度)限制,它源源不斷地從通訊的一端流入另一端。傳送端可以逐個位元組地向資料流中寫入資料,接收端也可以逐個位元組地將它們讀出。

udp協議(user datagram protocol,使用者資料報協議)則與tcp協議完全相反,它為應用層提供不可靠、無連線和基於資料報的服務。「不可靠」意味著udp協議無法保證資料從傳送端正確地傳送到目的端。如果資料在中途丟失,或者目的端通過資料校驗發現資料錯誤而將其丟棄,則udp協議只是單地通知應用程式傳送失敗。因此,使用udp協議的應用程式通常要自己處理資料確認、超時重傳等邏輯。udp協議是無連線的,即通訊雙方不保持乙個長久的聯絡,因此應用程式每次傳送資料都要明確指定接收端的位址(ip位址等資訊)。基於資料報的服務,是相對基於流的服務而言的。每個udp資料報都有乙個長度,接收端必須以該長度為最小單位將其所有內容一次性讀出,否則資料將被截斷。

應用層負責處理應用程式的邏輯。

資料鏈路層、網路層和傳輸層負責處理網路通訊細節,這部分必須既穩定又高效,因此它們都在核心空間中實現。而應用層則在使用者空間實現,因為它負責處理眾多邏輯,比如檔案傳輸、名稱查詢和網路管理等。如果應用層也在核心中實現,則會使核心變得非常龐大。當然,也有少數伺服器程式是在核心中實現的,這樣**就無須在使用者空間和核心空間來回切換(主要是資料的複製),極大地提高了工作效率。不過這種**實現起來較複雜,不夠靈活,且不便於移植。

ping是應用程式,而不是協議,前面說過它利用icmp報文檢測網路連線,是除錯網路環境的必備工具。

telnet協議是一種遠端登入協議,它使我們能在本地完成遠端任務。

ospf(open shortest path first,開放最短路徑優先)協議是一種動態路由更新協議,用於路由器之間的通訊,以告知對方各自的路由資訊。

dns(domain name service,網域名稱服務)協議提供機器網域名稱到ip位址的轉換。

應用層協議(或程式)可能跳過傳輸層直接使用網路層提供的服務,比如ping程式和ospf協議。應用層協議(或程式)通常既可以使用tcp服務,又可以使用udp服務,比如dns協議。我們可以通過/etc/services檔案檢視所有知名的應用層協議,以及它們都能使用哪些傳輸層服務。

五層協議背後的思想:上層遮蔽下層細節,只使用其提供的服務。高內聚低耦合,每一層專注於其功能,各層之間的關係依賴不大。

資料報在每層有不同的格式,從上到下依次叫段,資料報,幀,資料從應用層通過協議棧向下傳遞,每經過一層加上對應層協議的報頭,最後封裝成幀傳送到傳輸介質上,到達路由器或者目的主機剝掉頭部,交付給上層需要者。這一過程稱為封裝,傳輸,分離,分用。

TCP IP四層模型

物理層 將資料轉換為可通過物理介質傳送電子訊號。資料鏈路層 決定訪問網路介質的方式,在此層將資料分幀,並處理流控制並提供物理定址。網路層 進行邏輯定址,實現不同節點之間通訊的路徑選擇。還可以進行網路控制。傳輸層 定義傳輸資料的協議埠號,以及流控和差錯校驗。會話層 建立,管理,終止會話。表示層 資料的...

TCP IP四層模型

tcp ip四層模型 1 主機到網路層 能夠提供給其上層 網路互連層乙個訪問介面,以便在其上傳遞ip分組。2 網路互連層 網路互連層是整個tcp ip協議棧的核心。它的功能是把分組發往目標網路或主機。同時,為了盡快地傳送分組,可能需要沿不同的路徑同時進行分組傳遞。因此,分組到達的順序和傳送的順序可能...

TCP IP五層(四層)模型

tcp ip五層 四層 模型中包含的協議有很多,其中典型代表是tcp協議和ip協議。應用層 應用程式直接打交道的協議。在實際開發中涉及最多的部分,甚至需要自己設計應用層協議。傳輸層 負責端到端之間的傳輸。只關注起點和終點 網路層 負責點到點之間的傳輸 需要規劃路徑 資料鏈路層 負責相鄰點之間具體如何...