tcp/ip參考模型分為哪幾層?
tcp/ip參考模型分為4層,分別為:1、資料鏈結層,實現網卡介面的網路驅動程序,以處理資料在實體媒介上的傳輸;2、網路層,實現資料包的選路與轉送;3、傳輸層,為兩台主機上的應用程式提供端對端的通訊;4、應用層,負責處理應用程式的邏輯。
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參考模型分為哪幾層?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

tcp/ip全名為“Transmission Control Protocol/Internet Protocol”,中文意思是“傳輸控制協定/網際協定”。 TCP/IP協定不只指的是TCP和IP兩個協議,而是指一個由FTP、SMTP、TCP、UDP、IP等協定所構成的協定簇,只是因為在TCP/IP協定中TCP協定和IP協定最具代表性,所以稱為TCP/IP協定。

如何利用PHP與TCP/IP協定進行資料通訊引言:在現代網路時代,資料通訊是非常重要的一個面向。無論是客戶端與伺服器之間的通信,或是不同伺服器之間的通信,TCP/IP協定一直是最常用的通訊協定之一。本文將介紹如何利用PHP語言與TCP/IP協定進行資料通信,並提供相關的程式碼範例。一、TCP/IP協定簡介TCP/IP協定是Internet協定簇的基礎,它定義

區別:1、TCP/IP是一個協定簇,而OSI是一個模型;2、TCP/IP是五層結構,而OSI是七層結構;3、TCP/IP的第三層僅支援IP協議,OSI支援所有的網路層協定。聯繫:1、OSI引入了服務、介面、協議、分層的概念,而TCP/IP借鑒了OSI的概念;2、OSI先有模型,後有協議,先有標準,後進行實踐,而TCP/ IP先有協定和應用再提出了模型,且是參照的OSI模型。

TCP和IP是網際網路中兩個不同的協定:1、TCP是一種運輸層協議,而IP是一種網路層協定;2、TCP提供了資料包的分段、排序、確認和重傳等功能,而IP協定負責為資料包提供來源和目標位址;3、TCP是面向連線的協議,而IP協定是無連線的;4、TCP也提供流量控制和擁塞控制。

應用層協定有:1、Telnet,允許一台機器上的用戶,登入遠端機器上,並進行工作;2、FTP,提供了將檔案從一台機器上移到另一台機器上的方法; 3、SMTP,是一種提供電子郵件傳輸的協定;4、SNMP,是用於在IP網路管理網路節點的一種標準協定;5、DNS,主要用於將人們所熟悉的網址「翻譯」成電腦可以理解的IP位址;6、HTTP,是一個請求-回應協議,用於在WWW上取得主頁。

Go語言是一門不斷發展壯大的程式語言,它被設計得非常適合實現高效能、可靠性和並發性等方面的網頁應用程式。在使用Go編寫TCP/IP協定相關的網路程式時,我們很容易遇到各種錯誤,而一些常見的TCP/IP錯誤也會為程式的偵錯帶來一定的難度。本文將圍繞著如何解決Go語言中的常見TCP/IP錯誤這一主題展開闡述。一、EOF錯誤EOF(EndOfFile)錯誤通常

ip屬於電腦網路體系結構的「網路層」協定。 IP指網路互連協議,是TCP/IP體系中的網路層協議,它可以向傳輸層提供各種協議的訊息,例如TCP、UDP等;對下可將IP資訊包放到鏈路層,透過乙太網路、令牌環網路等各種技術來傳送。

“TCP/IP”協定是internet最基本的協定。 TCP/IP(傳輸控制協定/網路協定)是一種網路通訊協議,它規範了網路上的所有通訊設備,特別是一個主機與另一個主機之間的資料往來格式以及傳送方式;TCP/IP協定是internet最核心也是最基本的協議,它嚴格來說是一個四層的體系結構,應用層、傳輸層、網路層和資料鏈結層都包含其中。