一黎棠、TCP/IP協(xié)議族
1脚祟、數(shù)據(jù)鏈路層
ARP協(xié)議和RARP協(xié)議糯崎,它們實(shí)現(xiàn)了IP地址和機(jī)器物理地址之間的相互轉(zhuǎn)化
ARP協(xié)議(Address Resolve Protocol队询,地址解析協(xié)議)
RARP協(xié)議(Reverse Address Resolve Protocol往踢,逆地址解析協(xié)議)
作用:網(wǎng)絡(luò)層是用IP地址尋址一臺(tái)機(jī)器慰技,而數(shù)據(jù)鏈路層是用物理地址尋址一臺(tái)機(jī)器椭盏,因此網(wǎng)絡(luò)層必須先將目標(biāo)機(jī)器的IP地址轉(zhuǎn)化成其物理地址,這就是ARP協(xié)議的用途吻商。RARP協(xié)議僅用于網(wǎng)絡(luò)上某些無(wú)盤(pán)工作站掏颊。因?yàn)槿狈?chǔ)存設(shè)備,無(wú)盤(pán)工作站無(wú)法記住自己的IP地址。但是它們可以利用網(wǎng)卡上的物理地址來(lái)向網(wǎng)絡(luò)管理者查詢(xún)自身的IP地址乌叶。運(yùn)行RARP服務(wù)的網(wǎng)絡(luò)管理者通常存有該網(wǎng)絡(luò)上有所及其得物理地址到IP地址映射盆偿。
用來(lái)處理連接網(wǎng)絡(luò)的硬件部分。包括控制操作系統(tǒng)准浴、硬件的設(shè)備驅(qū)動(dòng)事扭、網(wǎng)絡(luò)適配器邑雅,及光纖等物理可見(jiàn)部分筹我。硬件上的范疇均咋鏈路層的作用范圍之內(nèi)顿肺。
2哼绑、網(wǎng)絡(luò)層
ip協(xié)議和ICMP協(xié)議,它們實(shí)現(xiàn)了數(shù)據(jù)包的選路和轉(zhuǎn)發(fā)另患。網(wǎng)絡(luò)層的任務(wù)就是處理網(wǎng)絡(luò)上流動(dòng)的數(shù)據(jù)包坑律。數(shù)據(jù)包是網(wǎng)絡(luò)傳輸?shù)淖钚?shù)據(jù)單位碎税。該層規(guī)定了通過(guò)怎樣的路徑到達(dá)對(duì)方計(jì)算機(jī)匾南,并把數(shù)據(jù)包傳送到對(duì)方。選擇這些中間節(jié)點(diǎn)蛔外,以確定兩臺(tái)主機(jī)之間通信路徑蛆楞。
3、傳輸層
TCP協(xié)議夹厌、UDP協(xié)議和SCTP協(xié)議
傳輸層為兩臺(tái)主機(jī)上的應(yīng)用程序提供端對(duì)端的通信豹爹。與網(wǎng)絡(luò)層使用的逐跳通信方式不同,傳輸層只關(guān)心通信的起始端和目的端矛纹,而不在乎數(shù)據(jù)包的中轉(zhuǎn)過(guò)程臂聋。
- TCP協(xié)議,傳輸控制協(xié)議
- UDP協(xié)議或南,用戶(hù)數(shù)據(jù)報(bào)協(xié)議
- SCTP協(xié)議孩等,流控制傳輸協(xié)議
4、應(yīng)用層
應(yīng)用層在用戶(hù)空間實(shí)現(xiàn)采够,而數(shù)據(jù)鏈路層肄方、網(wǎng)絡(luò)層和傳輸層處理網(wǎng)絡(luò)通信細(xì)節(jié),這部分必須穩(wěn)定有高效蹬癌,因此它們都在內(nèi)核空間中實(shí)現(xiàn)权她。
- FTP協(xié)議,文件傳輸協(xié)議
- DNS系統(tǒng)逝薪,域名解析系統(tǒng)
- HTTP協(xié)議隅要, 超文本傳輸協(xié)議
4.1、傳輸層和網(wǎng)絡(luò)層區(qū)別
傳輸層為兩臺(tái)主機(jī)上的應(yīng)用程序提供端對(duì)端的通信董济。與網(wǎng)絡(luò)層使用的逐跳通信方式不同步清,傳輸層只關(guān)心通信的起始端和目的端,而不在乎數(shù)據(jù)包的中轉(zhuǎn)過(guò)程
4.2虏肾、TCP協(xié)議的特點(diǎn)
為應(yīng)用層提供可靠的尼啡、面向連接和基于流的服務(wù)暂衡。TCP協(xié)議通信使用超時(shí)重傳、數(shù)據(jù)確定等待來(lái)確保數(shù)據(jù)包被正確地發(fā)送至目的端崖瞭。因此TCP服務(wù)是可靠的狂巢。
使用TCP協(xié)議通信的雙方必須先建立TCP連接,并在內(nèi)核中為連接維持一些必要的數(shù)據(jù)結(jié)構(gòu)书聚,比如連接的狀態(tài)唧领、讀寫(xiě)緩沖區(qū)以及諸多定時(shí)器等。當(dāng)通信結(jié)束時(shí)雌续,雙方必須關(guān)閉連接已釋放這些內(nèi)核數(shù)據(jù)斩个。TCP服務(wù)時(shí)給予流的。給予流的數(shù)據(jù)沒(méi)有邊界限制驯杜,它源源不斷地從通信的一端流入另一端受啥。發(fā)送端可以逐個(gè)字節(jié)地向數(shù)據(jù)流寫(xiě)入數(shù)據(jù),接受端也可以逐個(gè)字節(jié)地將它們讀出
4.3鸽心、UDP協(xié)議的特點(diǎn)
為應(yīng)用層提供不可靠滚局、無(wú)連接和基于據(jù)包的服務(wù)。
UDP協(xié)議無(wú)法保證數(shù)據(jù)從發(fā)送端正確的地傳送到目的端顽频。如果數(shù)據(jù)在中途丟失藤肢,或者目的端數(shù)據(jù)校驗(yàn)發(fā)現(xiàn)數(shù)據(jù)錯(cuò)誤誤將其丟棄,則UDP協(xié)議知識(shí)簡(jiǎn)單的通知應(yīng)用程序發(fā)送失敗糯景,因此嘁圈,使用UDP協(xié)議的應(yīng)用程序通常要自己處理數(shù)據(jù)確認(rèn)、超時(shí)重傳等邏輯蟀淮。UDP協(xié)議是無(wú)連接的最住,即通信雙方不保持一個(gè)長(zhǎng)久的聯(lián)系,因此應(yīng)用程序每一次發(fā)送數(shù)據(jù)都要指定接收方的地址怠惶。每一個(gè)UDP數(shù)據(jù)都有一個(gè)長(zhǎng)度温学,就接受端必須以該長(zhǎng)度為最小單位將其所有內(nèi)容一次性讀出,否則數(shù)據(jù)將被截?cái)唷?/p>
二甚疟、封裝和分用
1仗岖、封裝
上層協(xié)議是如何使用下層協(xié)議提供的服務(wù)的呢?其實(shí)通過(guò)封裝實(shí)現(xiàn)的览妖。應(yīng)用程序數(shù)據(jù)在發(fā)送到無(wú)力網(wǎng)絡(luò)上之前轧拄,將沿著協(xié)議棧從上往下依次傳遞。每一層協(xié)議都將在上冊(cè)數(shù)據(jù)的基礎(chǔ)上加上自己的頭信息讽膏。
- 經(jīng)過(guò)TCP封裝后的數(shù)據(jù)稱(chēng)TCP報(bào)文段檩电,經(jīng)過(guò)UDP封裝后的數(shù)據(jù)稱(chēng)為UDP數(shù)據(jù)包。
- 經(jīng)過(guò)IP封裝后的數(shù)據(jù)稱(chēng)為IP數(shù)據(jù)報(bào)。
- 經(jīng)過(guò)數(shù)據(jù)鏈路層封裝后的數(shù)據(jù)稱(chēng)幀
2俐末、分用
當(dāng)幀到達(dá)目的的主機(jī)時(shí)料按,將沿著協(xié)議棧自底向上依次傳遞。各層協(xié)議依次處理幀中本層負(fù)責(zé)的頭數(shù)據(jù)卓箫,以獲取所需的信息载矿,并最終將處理后的幀交給目的應(yīng)用程序。