溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

TCP/IP協(xié)議族

發(fā)布時間:2020-03-25 03:09:58 來源:網(wǎng)絡 閱讀:572 作者:zgw285763054 欄目:網(wǎng)絡安全

TCP/IP網(wǎng)絡協(xié)議棧分為應用層(Application)、傳輸層( Transport)、網(wǎng)絡層(Network)和鏈路層(Link)四層。

TCP/IP協(xié)議族


TCP/IP協(xié)議族


1.數(shù)據(jù)鏈路層

實現(xiàn)了網(wǎng)卡接口的網(wǎng)絡驅(qū)動程序。

協(xié)議:ARP協(xié)議和RARP協(xié)議

ARP協(xié)議:目標機器IP地址—(ARP協(xié)議)→ 目標機器MAC地址→ 目標機器

RARP協(xié)議:(無盤工作站)MAC地址—(RARP協(xié)議)→IP地址



2.網(wǎng)絡層

實現(xiàn)數(shù)據(jù)包的選路和轉發(fā)。負責點對點(point to point)的傳輸(“點”:主機或路由器)。網(wǎng)絡層向上層協(xié)議隱藏了網(wǎng)絡拓撲連接的細節(jié),在傳輸層和應用層看來通信雙方是直接相連的。

協(xié)議:IP協(xié)議,ICMP協(xié)議。

IP協(xié)議根據(jù)數(shù)據(jù)包的目的IP地址來決定如何投遞它。如果數(shù)據(jù)包不能直接發(fā)給目的主機,那么IP協(xié)議就為它尋找合適的下一跳路由器,并將數(shù)據(jù)包交付給該路由器來轉發(fā)。IP協(xié)議使用逐跳的方式確定通信路徑。

ICMP協(xié)議是IP協(xié)議重要的補充,用于檢測網(wǎng)絡連接。



3.傳輸層

傳輸層為兩臺主機上的應用程序提供端到端(end to end)的通信。傳輸層只關心通信的起始端和目的端,而不在乎數(shù)據(jù)包的中轉過程。

協(xié)議:TCP協(xié)議、UDP協(xié)議、SCTP協(xié)議

TCP協(xié)議


為應用層提供可靠的、面向連接和基于流(stream)的服務;

TCP協(xié)議使用超時重傳、數(shù)據(jù)確定等方式確認數(shù)據(jù)報被正確地發(fā)送至目的端使用TCP協(xié)議通信的雙方必須先建立TCP連接,并在內(nèi)核中為該連接維持一些必要的數(shù)據(jù)結構。通信結束時,雙方必須關閉連接以釋放這些內(nèi)核數(shù)據(jù)。TCP協(xié)議是基于流的,數(shù)據(jù)沒有邊界(長度)限制。發(fā)送端可以逐個字節(jié)地向數(shù)據(jù)流中寫入數(shù)據(jù),接收端也可以逐個字節(jié)將其讀出

UDP協(xié)議


為應用層提供不可靠、無連接、基于數(shù)據(jù)報的服務。

UPD協(xié)議無法保證數(shù)據(jù)從發(fā)送端正確地傳到目的端。使用UDP協(xié)議的應用程序通常要自己處理數(shù)據(jù)確認、超時重傳等邏輯。UDP協(xié)議是無連接的,因此應用程序每次發(fā)送數(shù)據(jù)都要明確指定接收端的地址(IP地址等信息)。每個UPD數(shù)據(jù)報都有一個長度,接收端必須以該長度為最小單位將其所有內(nèi)容一次性讀出,否則數(shù)據(jù)將被截斷。


TCP是一種面向連接的,開放的協(xié)議,有點像打電話,雙方拿起電話互通身份后就建立了連接,然后說話就行了,這邊說話那邊保證聽得到,并且是按說話的順序聽到的,說完話掛機斷開連接。也就是說TCP傳輸?shù)碾p方需要首先建立連接,之后由TCP協(xié)議保證數(shù)據(jù)收發(fā)的可靠性,丟失的數(shù)據(jù)包自動重發(fā),上層應用程序收到的總是可靠的數(shù)據(jù)流,通訊之后關閉連接。

UDP協(xié)議不面向連接,也不保證可靠性,有點像寄信,寫好信放進郵筒里,既不能保證信件在郵遞過程中不會丟失, 也不能保證信件是按順序寄到目的地的。使用UDP協(xié)議的應用程序需要自己完成丟包重發(fā)、消息排序等工作。


SCTP協(xié)議是為了在因特網(wǎng)上傳輸電話信號而設計的。



4.應用層

負責處理應用程序的邏輯

應用層協(xié)議(或程序)可能跳過傳輸層直接使用網(wǎng)絡層提供的服務,比如ping程序和OSPF協(xié)議。

應用層協(xié)議(或程序)通常既可以使用TCP服務,又可以使用UDP服務,比如DNS協(xié)議。



TCP/IP數(shù)據(jù)包的封裝

TCP/IP協(xié)議族



TCP/IP協(xié)議族

以太網(wǎng)幀使用6字節(jié)(48位)的目的物理地址和6字節(jié)(48位)的源物理地址(MAC地址)來表示通信的雙方。

協(xié)議類型字段有三種值,分別對應IP、ARP、RAPP。

以太網(wǎng)幀的數(shù)據(jù)長度規(guī)定最小46字節(jié),最大1500字節(jié),ARP和RARP數(shù)據(jù)包的長度不夠46字節(jié),要在后面補充填位。最大值1500稱為以太網(wǎng)最大傳輸單元(MTU),不同的網(wǎng)絡類型有不同的MTU,如果一個數(shù)據(jù)包從以太網(wǎng)路由到撥號鏈路上,數(shù)據(jù)包的長度大于撥號鏈路的MTU,則需要對數(shù)據(jù)包進行分片(fragment)傳輸。

幀末尾的4字節(jié)CRC字段對幀的其他部分提供循環(huán)冗余校驗。


幀才是最終在網(wǎng)絡上傳送的字節(jié)序列。



TCP/IP數(shù)據(jù)包跨路由器通訊過程

TCP/IP協(xié)議族

數(shù)據(jù)鏈路層(驅(qū)動程序)封裝了物理網(wǎng)絡的電氣細節(jié);

網(wǎng)絡層封裝了網(wǎng)絡連接的細節(jié);

傳輸層則為應用程序封裝了一條端對端的邏輯通信鏈路,它負責數(shù)據(jù)的收發(fā)、鏈路的超時重連等。



分用

 當幀到達目的主機時 ,將沿著協(xié)議棧自底向上依次傳遞。各層協(xié)議依次處理幀中本層負責的頭部數(shù)據(jù),以獲取所需的信息,并將處理后的幀交給目的應用程序。這個過程稱為分用( demultiplexing)。

分用是依靠頭部信息中的類型字段實現(xiàn)的。

TCP/IP協(xié)議族


整理自《Linux高性能服務器編程》第1章,《Linux C一站式學習》第36章


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI