TCP/IP协议模型
1. 數據鏈路層
- 作用
??(1) 實現網卡接口的網絡驅動,以處理數據在以太網線等物理媒介上的傳輸
??(2) 網絡驅動程序隱藏了不同物理網絡的不同電氣特性,為上層協議提供一個統一的接口
- 應用
??ARP和RARP(Reverse Address Resolve Protocol)即逆地址解析協議,該協議實現了IP地址和物理地址(MAC地址)之間的轉換
2. 網絡層
- 作用
??網絡有分局域網(LAN, Local Area Network)和廣域網(WAN, Wide Area Network)。對于后者通常需要使用眾多分級的路由器來連接分散的主機或者LAN,即通訊的兩臺主機一般不是直接連接,而是通過多個中間節點(路由器)連接的,從而形成網絡拓撲連接。
??(1) 網絡層的任務之一就是選擇這些中間節點,以確定兩臺主機間的通訊路徑。
??(2) 其次網絡層對上層協議隱藏了網絡拓撲連接的細節,在使得傳輸層看來通訊雙方是直接連接的
- 應用
??(1) IP協議: IP協議(Internet Protocol)是網絡層最核心的協議,它根據數據包的目的IP地址來決定如何投遞該數據包。若數據包不可直接發送給目標主機,那么IP協議就為它尋找一個合適的下一跳路由器,并將數據包交付給該路由器去轉發,如此循環直至到達目標主機或者發送失敗而丟棄該數據包。
??(2) ICMP協議: ICMP協議(Internet Control Message Protocol,因特網控制報文協議)是IP協議的補充,用于檢測網絡的連接狀態,如ping應用程序就是ICMP協議的使用。ICMP包發送是不可靠的,所以不能依靠接收ICMP包解決網絡問題;ICMP與TCP/UDP不同,它們是傳輸層協議,雖然都具有類型域和代碼域,但是前者和后者不同,ping用到的ICMP協議,不是端口。ICMP協議使用的是IP協議而非使用下層協議提供的的服務,嚴格來講它并非網絡層協議,而是網絡層程序。注意,ping是應用程序而非協議,它利用網絡層的ICMP協議監測網絡連接
3. 傳輸層
- 作用
??為應用程序提供端對端通訊的”錯覺”,即為應用程序隱藏了數據包跳轉的細節,負責數據包的收發、鏈路超時重連等。
- 應用
??(1) TCP協議: TCP協議(Transmission Control Protocol, 傳輸控制協議)為應用程序提供可靠的、面向連接的、基于流的服務,具有超時重傳、數據確認等方式來確保數據包被正確發送到目的端。因此TCP服務是可靠的,使用TCP協議通訊的雙方必須先建立起TCP連接,并在系統內核中為該連接維持一些必要的數據結構,比如連接的狀態,讀寫緩沖區,多個定時器等。當通訊結束時雙方必須關閉連接以釋放這些內核數據。基于流發送意思是數據是沒有長度限制,它可源源不斷地從通訊的一段流入另一端。
??(2) UDP協議: UDP協議(User Datagram Protocol, 用戶數據報協議)與TCP協議相反,它為應用程序提供的是不可靠的、無連接的基于數據報的服務。
??無連接: 通訊雙方不保持一個長久的聯系,因此應用程序每次發送數據都要明確指定接收方的地址;
??基于數據報的服務: 這是相對于數據流而言的,每個UDP數據報都有一個長度,接收端必須以該長度為最小單位將其內容一次性讀出,否則數據將被截斷。
??UDP不具有發送時是被重發功能,所以UDP協議在內核實現中無需為應用程序的數據保存副本,當UDP數據報被成功發送之后,UDP內核緩沖區中該數據報就被丟棄了。
??(3) SCTP協議: SCTP(Stream Control Transmission Protocol, 流控制傳輸協議)是為了在因特網上傳輸電話信號而設計的。
4. 應用層
- ?作用
??前面三層負責處理網絡通訊,需要穩定高效,因此它們是在操作系統的內核空間中,而應用層是在用戶空間實現的,負責處理眾多業務邏輯,如文件傳輸、網絡管理。
- 應用
??(1) telne協議: 遠程登錄協議,可以在本地完成遠程任務
??(2) OSPF協議: OSPF協議(Open Shorttest Path First, 開放最短路徑優先)是一種動態路由更新協議,用于路由器之間的通訊,以告知對方自身的路由信息
??(3) DNS協議: DNS協議(Domain Name Service, 域名服務)提供機器域名到IP地址的轉換。如百度的機器域名是www.baidu.com,對應的IP地址是http://119.75.217.109/。
?
總結
以上是生活随笔為你收集整理的TCP/IP协议模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS快速入门教程
- 下一篇: 深入理解JVM虚拟机之高效并发