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