自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

OSI七層和TCP五層協(xié)議,為什么勝出的是TCP/IP協(xié)議

網(wǎng)絡(luò) 通信技術(shù)
OSI 是英文 Open System Interconnection 的簡(jiǎn)寫(xiě),翻譯成中文叫做 (開(kāi)放系統(tǒng)互連參考模型),他是一個(gè)國(guó)際標(biāo)準(zhǔn)化組織制定的一個(gè)用于計(jì)算機(jī)或通信系統(tǒng)間互聯(lián)的標(biāo)準(zhǔn)體系

 [[278277]]

一、OSI參考模型

1. OSI的來(lái)源

首先 osi 七層模型是什么?

OSI 是英文 Open System Interconnection 的簡(jiǎn)寫(xiě),翻譯成中文叫做 (開(kāi)放系統(tǒng)互連參考模型),他是一個(gè)國(guó)際標(biāo)準(zhǔn)化組織制定的一個(gè)用于計(jì)算機(jī)或通信系統(tǒng)間互聯(lián)的標(biāo)準(zhǔn)體系

怎么理解呢?你可以這么想,在之前很早的時(shí)候,世界上有各種生產(chǎn)計(jì)算機(jī)硬件和網(wǎng)絡(luò)設(shè)備的廠家,大家你做你的我做我的,弄的很亂而且還都互不兼容,這時(shí)候國(guó)際上有一個(gè)很牛很牛的公認(rèn)的組織,為了統(tǒng)一互聯(lián)網(wǎng),讓他不那么復(fù)雜,更加容易管理而制定了一個(gè)規(guī)則,而這個(gè)規(guī)則大家必須都要遵守,這個(gè)就是 OSI 七層模型。

2、那七層是什么意思?

首先,這個(gè)七層模型呢他是一個(gè)虛擬的,就是理論上的規(guī)則,并不是一個(gè)什么摸得到的物理形狀的類(lèi)似于汽車(chē)模型的那種模型,那它具體是什么樣的呢?你看下圖

 

電腦網(wǎng)絡(luò):OSI七層和TCP五層協(xié)議,為什么最終勝出的是TCP/IP協(xié)議

 

【純個(gè)人手打,替老師傳道,不求多大成就但愿 能幫到大家,在閑暇的時(shí)間里為大家共享一些工作經(jīng)驗(yàn)和各種技術(shù)資源文章,希望幫助大家共同進(jìn)步 也希望我的發(fā)布對(duì)你有所幫助,我的發(fā)布里有更多類(lèi)似的文章可以查閱,喜歡的請(qǐng)點(diǎn)關(guān)注,謝謝。你們的關(guān)注是我不停發(fā)布的最大動(dòng)力】

3、那這兩個(gè)七層模型到底是怎么回事呢?

首先,你要把這兩邊的七層模型看成是兩個(gè)人在寫(xiě)信,你給人家寫(xiě)信人家是不是得給你回信?這個(gè)就是兩個(gè)模型中間的箭頭。意思是有來(lái)有回。而你們兩個(gè)人的來(lái)回信件呢都得經(jīng)過(guò)這七個(gè)步驟,然后才能到達(dá)各自的手中。這就是為什么兩邊都畫(huà)了七層模型

4、OSI七層模型基本功能是什么?

OSI模型通過(guò)七個(gè)層次化結(jié)構(gòu)的模型,使不同的系統(tǒng)不同的網(wǎng)絡(luò)之間實(shí)現(xiàn)可靠的通訊,因此,其最主要的功能就是幫助不同類(lèi)型主機(jī)之間實(shí)現(xiàn)數(shù)據(jù)傳輸

5、那這七個(gè)層到底都對(duì)應(yīng)了哪些東西呢?

(1)物理層:它對(duì)應(yīng)了,網(wǎng)卡、網(wǎng)線、光纖,等

(2)數(shù)據(jù)鏈路層:它對(duì)應(yīng)了,網(wǎng)橋、交換機(jī)、等

(3)網(wǎng)絡(luò)層:路由器、三層交換機(jī)

(4)傳輸層、會(huì)話層、表示層、應(yīng)用層、這些個(gè)在軟件層面上和虛擬層面上的,所以他不 對(duì)應(yīng)相關(guān)的物理設(shè)備,這四個(gè)層面呢,它對(duì)應(yīng)的是相關(guān)的協(xié)議了。

比如說(shuō):傳輸層有:TCP UDP 協(xié)議 ;應(yīng)用層有 http ftp 協(xié)議等,就是這個(gè)意思

但實(shí)際網(wǎng)管需要日常維護(hù)的只有:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、應(yīng)用層 這五層

6、 各層功能定義

這里我們只對(duì)OSI各層進(jìn)行功能上的大概闡述,不詳細(xì)深究,因?yàn)槊恳粚訉?shí)際都是一個(gè)復(fù)雜的層。

這里我們就大概了解一下。

我們從最頂層——應(yīng)用層 開(kāi)始介紹。

整個(gè)過(guò)程以公司A和公司B的一次商業(yè)報(bào)價(jià)單發(fā)送為例子進(jìn)行講解。

(1) 應(yīng)用層

OSI參考模型中最靠近用戶(hù)的一層,是為計(jì)算機(jī)用戶(hù)提供應(yīng)用接口,也為用戶(hù)直接提供各種網(wǎng)絡(luò)服務(wù)。

我們常見(jiàn)應(yīng)用層的網(wǎng)絡(luò)服務(wù)協(xié)議有:HTTP,HTTPS,F(xiàn)TP,POP3、SMTP等。

實(shí)際公司A的老板就是我們所述的用戶(hù),而他要發(fā)送的商業(yè)報(bào)價(jià)單,就是應(yīng)用層提供的一種網(wǎng)絡(luò)服務(wù),當(dāng)然,老板也可以選擇其他服務(wù),比如說(shuō),發(fā)一份商業(yè)合同,發(fā)一份詢(xún)價(jià)單,等等。

(2) 表示層

表示層提供各種用于應(yīng)用層數(shù)據(jù)的編碼和轉(zhuǎn)換功能,確保一個(gè)系統(tǒng)的應(yīng)用層發(fā)送的數(shù)據(jù)能被另一個(gè)系統(tǒng)的應(yīng)用層識(shí)別。

如果必要,該層可提供一種標(biāo)準(zhǔn)表示形式,用于將計(jì)算機(jī)內(nèi)部的多種數(shù)據(jù)格式轉(zhuǎn)換成通信中采用的標(biāo)準(zhǔn)表示形式。

數(shù)據(jù)壓縮和加密也是表示層可提供的轉(zhuǎn)換功能之一。

由于公司A和公司B是不同國(guó)家的公司,他們之間的商定統(tǒng)一用英語(yǔ)作為交流的語(yǔ)言,所以此時(shí)表示層(公司的文秘),就是將應(yīng)用層的傳遞信息轉(zhuǎn)翻譯成英語(yǔ)。

同時(shí)為了防止別的公司看到,公司A的人也會(huì)對(duì)這份報(bào)價(jià)單做一些加密的處理。

這就是表示的作用,將應(yīng)用層的數(shù)據(jù)轉(zhuǎn)換翻譯等。

(3) 會(huì)話層

會(huì)話層就是負(fù)責(zé)建立、管理和終止表示層實(shí)體之間的通信會(huì)話。

該層的通信由不同設(shè)備中的應(yīng)用程序之間的服務(wù)請(qǐng)求和響應(yīng)組成。

會(huì)話層的同事拿到表示層的同事轉(zhuǎn)換后資料,(會(huì)話層的同事類(lèi)似公司的外聯(lián)部),會(huì)話層的同事那里可能會(huì)掌握本公司與其他好多公司的聯(lián)系方式,這里公司就是實(shí)際傳遞過(guò)程中的實(shí)體。他們要管理本公司與外界好多公司的聯(lián)系會(huì)話。

當(dāng)接收到表示層的數(shù)據(jù)后,會(huì)話層將會(huì)建立并記錄本次會(huì)話,他首先要找到公司B的地址信息,然后將整份資料放進(jìn)信封,并寫(xiě)上地址和聯(lián)系方式。準(zhǔn)備將資料寄出。

等到確定公司B接收到此份報(bào)價(jià)單后,此次會(huì)話就算結(jié)束了,外聯(lián)部的同事就會(huì)終止此次會(huì)話。

(4) 傳輸層

傳輸層建立了主機(jī)端到端的鏈接,傳輸層的作用是為上層協(xié)議提供端到端的可靠和透明的數(shù)據(jù)傳輸服務(wù),包括處理差錯(cuò)控制和流量控制等問(wèn)題。

該層向高層屏蔽了下層數(shù)據(jù)通信的細(xì)節(jié),使高層用戶(hù)看到的只是在兩個(gè)傳輸實(shí)體間的一條主機(jī)到主機(jī)的、可由用戶(hù)控制和設(shè)定的、可靠的數(shù)據(jù)通路。

我們通常說(shuō)的,TCP UDP就是在這一層。端口號(hào)既是這里的"端"。

傳輸層就相當(dāng)于公司中的負(fù)責(zé)快遞郵件收發(fā)的人,公司自己的投遞員,他們負(fù)責(zé)將上一層的要寄出的資料投遞到快遞公司或郵局。

(5) 網(wǎng)絡(luò)層

本層通過(guò)IP尋址來(lái)建立兩個(gè)節(jié)點(diǎn)之間的連接,為源端的運(yùn)輸層送來(lái)的分組,選擇合適的路由和交換節(jié)點(diǎn),正確無(wú)誤地按照地址傳送給目的端的運(yùn)輸層。

就是通常說(shuō)的IP層。

這一層就是我們經(jīng)常說(shuō)的IP協(xié)議層。

IP協(xié)議是Internet的基礎(chǔ)。

網(wǎng)絡(luò)層就相當(dāng)于快遞公司龐大的快遞網(wǎng)絡(luò),全國(guó)不同的集散中心,比如說(shuō),從深圳發(fā)往北京的順豐快遞(陸運(yùn)為例啊,空運(yùn)好像直接就飛到北京了),首先要到順豐的深圳集散中心,從深圳集散中心再送到武漢集散中心,從武漢集散中心再寄到北京順義集散中心。這個(gè)每個(gè)集散中心,就相當(dāng)于網(wǎng)絡(luò)中的一個(gè)IP節(jié)點(diǎn)。

(6) 數(shù)據(jù)鏈路層

將比特組合成字節(jié),再將字節(jié)組合成幀,使用鏈路層地址 (以太網(wǎng)使用MAC地址)來(lái)訪問(wèn)介質(zhì),并進(jìn)行差錯(cuò)檢測(cè)。

數(shù)據(jù)鏈路層又分為2個(gè)子層:邏輯鏈路控制子層(LLC)和媒體訪問(wèn)控制子層(MAC)。

MAC子層處理CSMA/CD算法、數(shù)據(jù)出錯(cuò)校驗(yàn)、成幀等;LLC子層定義了一些字段使上次協(xié)議能共享數(shù)據(jù)鏈路層。

在實(shí)際使用中,LLC子層并非必需的。

(7) 物理層

實(shí)際最終信號(hào)的傳輸是通過(guò)物理層實(shí)現(xiàn)的。

通過(guò)物理介質(zhì)傳輸比特流。規(guī)定了電平、速度和電纜針腳。

常用設(shè)備有(各種物理設(shè)備)集線器、中繼器、調(diào)制解調(diào)器、網(wǎng)線、雙絞線、同軸電纜。

這些都是物理層的傳輸介質(zhì)。

快遞寄送過(guò)程中的交通工具,就相當(dāng)于我們的物理層,例如汽車(chē),火車(chē),飛機(jī),船。

7. 通信特點(diǎn):對(duì)等通信

對(duì)等通信,為了使數(shù)據(jù)分組從源傳送到目的地,源端OSI模型的每一層都必須與目的端的對(duì)等層進(jìn)行通信,這種通信方式稱(chēng)為對(duì)等層通信。

在每一層通信過(guò)程中,使用本層自己協(xié)議進(jìn)行通信。

 

電腦網(wǎng)絡(luò):OSI七層和TCP五層協(xié)議,為什么最終勝出的是TCP/IP協(xié)議

 

二、TCP/IP五層模型

TCP/IP五層協(xié)議和OSI的七層協(xié)議對(duì)應(yīng)關(guān)系如下:

 

電腦網(wǎng)絡(luò):OSI七層和TCP五層協(xié)議,為什么最終勝出的是TCP/IP協(xié)議

 

在每一層都工作著不同的設(shè)備,比如我們常用的交換機(jī)就工作在數(shù)據(jù)鏈路層的,一般的路由器是工作在網(wǎng)絡(luò)層的。

在每一層實(shí)現(xiàn)的協(xié)議也各不同,即每一層的服務(wù)也不同,下圖列出了每層主要的協(xié)議。

 

電腦網(wǎng)絡(luò):OSI七層和TCP五層協(xié)議,為什么最終勝出的是TCP/IP協(xié)議

 

1. 應(yīng)用層

應(yīng)用層向應(yīng)用程序提供服務(wù),這些服務(wù)按其向應(yīng)用程序提供的特性分成組,并稱(chēng)為服務(wù)元素。

有些可為多種應(yīng)用程序共同使用,有些則為較少的一類(lèi)應(yīng)用程序使用。

應(yīng)用層為最高層,是直接為應(yīng)用進(jìn)程提供服務(wù)的。

其作用是在實(shí)現(xiàn)多個(gè)系統(tǒng)應(yīng)用進(jìn)程相互通信的同時(shí),完成一系列業(yè)務(wù)處理所需的服務(wù)。

其服務(wù)元素分為兩類(lèi):公共應(yīng)用服務(wù)元素CASE和特定應(yīng)用服務(wù)元素SASE。

CASE提供最基本的服務(wù),它成為應(yīng)用層中任何用戶(hù)和任何服務(wù)元素的用戶(hù),主要為應(yīng)用進(jìn)程通信,分布系統(tǒng)實(shí)現(xiàn)提供基本的控制機(jī)制。

特定服務(wù)SASE則要滿(mǎn)足一些特定服務(wù),如文卷傳送,訪問(wèn)管理,作業(yè)傳送,銀行事務(wù),訂單輸入等。

這些將涉及到虛擬終端,作業(yè)傳送與操作,文卷傳送及訪問(wèn)管理,遠(yuǎn)程數(shù)據(jù)庫(kù)訪問(wèn),圖形核心系統(tǒng),開(kāi)放系統(tǒng)互連管理等等。

應(yīng)用層的標(biāo)準(zhǔn)有DP8649"公共應(yīng)用服務(wù)元素",DP8650"公共應(yīng)用服務(wù)元素用協(xié)議",文件傳送,訪問(wèn)和管理服務(wù)及協(xié)議。

2. 傳輸層

傳輸層是兩臺(tái)計(jì)算機(jī)經(jīng)過(guò)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)通信時(shí),第一個(gè)端到端的層次,具有緩沖作用。

當(dāng)網(wǎng)絡(luò)層服務(wù)質(zhì)量不能滿(mǎn)足要求時(shí),它將服務(wù)加以提高,以滿(mǎn)足高層的要求;當(dāng)網(wǎng)絡(luò)層服務(wù)質(zhì)量較好時(shí),它只用很少的工作。

傳輸層還可進(jìn)行復(fù)用,即在一個(gè)網(wǎng)絡(luò)連接上創(chuàng)建多個(gè)邏輯連接。

傳輸層也稱(chēng)為運(yùn)輸層,是很重要的一層。

因?yàn)樗窃炊说侥康亩藢?duì)數(shù)據(jù)傳送進(jìn)行控制從低到高的最后一層。

有一個(gè)既存事實(shí),即世界上各種通信子網(wǎng)在性能上存在著很大差異。

例如電話交換網(wǎng),分組交換網(wǎng),公用數(shù)據(jù)交換網(wǎng),局域網(wǎng)等通信子網(wǎng)都可互連,但它們提供的吞吐量,傳輸速率,數(shù)據(jù)延遲通信費(fèi)用各不相同。

對(duì)于會(huì)話層來(lái)說(shuō),卻要求有一性能恒定的界面。

傳輸層就承擔(dān)了這一功能。

它采用分流/合流,復(fù)用/解復(fù)用技術(shù)來(lái)調(diào)節(jié)上述通信子網(wǎng)的差異,使會(huì)話層感受不到。

此外傳輸層還要具備差錯(cuò)恢復(fù),流量控制等功能,以此對(duì)會(huì)話層屏蔽通信子網(wǎng)在這些方面的細(xì)節(jié)與差異。

傳輸層面對(duì)的數(shù)據(jù)對(duì)象已不是網(wǎng)絡(luò)地址和主機(jī)地址,而是和會(huì)話層的界面端口。

上述功能的最終目的是為會(huì)話提供可靠的,無(wú)誤的數(shù)據(jù)傳輸。

傳輸層的服務(wù)一般要經(jīng)歷傳輸連接建立階段,數(shù)據(jù)傳送階段,傳輸連接釋放階段3個(gè)階段才算完成一個(gè)完整的服務(wù)過(guò)程。

而在數(shù)據(jù)傳送階段又分為一般數(shù)據(jù)傳送和加速數(shù)據(jù)傳送兩種。

3. 網(wǎng)絡(luò)層

網(wǎng)絡(luò)層的產(chǎn)生也是網(wǎng)絡(luò)發(fā)展的結(jié)果。

在聯(lián)機(jī)系統(tǒng)和線路交換的環(huán)境中,網(wǎng)絡(luò)層的功能沒(méi)有太大意義。

當(dāng)數(shù)據(jù)終端增多時(shí),它們之間有中繼設(shè)備相連。

此時(shí)會(huì)出現(xiàn)一臺(tái)終端要求不只是與唯一的一臺(tái)而是能和多臺(tái)終端通信的情況,這就是產(chǎn)生了把任意兩臺(tái)數(shù)據(jù)終端設(shè)備的數(shù)據(jù)鏈接起來(lái)的問(wèn)題,也就是路由或者叫尋徑。

另外,當(dāng)一條物理信道建立之后,被一對(duì)用戶(hù)使用,往往有許多空閑時(shí)間被浪費(fèi)掉。

人們自然會(huì)希望讓多對(duì)用戶(hù)共用一條鏈路,為解決這一問(wèn)題就出現(xiàn)了邏輯信道技術(shù)和虛擬電路技術(shù)。

網(wǎng)絡(luò)層為建立網(wǎng)絡(luò)連接和為上層提供服務(wù),應(yīng)具備以下主要功能:

· 路由選擇和中繼。

· 激活,終止網(wǎng)絡(luò)連接。

· 在一條數(shù)據(jù)鏈路上復(fù)用多條網(wǎng)絡(luò)連接,多采取分時(shí)復(fù)用技術(shù) 。

· 差錯(cuò)檢測(cè)與恢復(fù)。

· 排序,流量控制。

· 服務(wù)選擇。

· 網(wǎng)絡(luò)管理。

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

數(shù)據(jù)鏈路可以粗略地理解為數(shù)據(jù)通道。

物理層要為終端設(shè)備間的數(shù)據(jù)通信提供傳輸媒體及其連接。

媒體是長(zhǎng)期的,連接是有生存期的。

在連接生存期內(nèi),收發(fā)兩端可以進(jìn)行不等的一次或多次數(shù)據(jù)通信。

每次通信都要經(jīng)過(guò)建立通信聯(lián)絡(luò)和拆除通信聯(lián)絡(luò)兩過(guò)程。

這種建立起來(lái)的數(shù)據(jù)收發(fā)關(guān)系就叫作數(shù)據(jù)鏈路。

而在物理媒體上傳輸?shù)臄?shù)據(jù)難免受到各種不可靠因素的影響而產(chǎn)生差錯(cuò),為了彌補(bǔ)物理層上的不足,為上層提供無(wú)差錯(cuò)的數(shù)據(jù)傳輸,就要能對(duì)數(shù)據(jù)進(jìn)行檢錯(cuò)和糾錯(cuò)。

數(shù)據(jù)鏈路的建立,拆除,對(duì)數(shù)據(jù)的檢錯(cuò),糾錯(cuò)是數(shù)據(jù)鏈路層的基本任務(wù)。

鏈路層的主要功能:鏈路層是為網(wǎng)絡(luò)層提供數(shù)據(jù)傳送服務(wù)的,這種服務(wù)要依靠本層具備的功能來(lái)實(shí)現(xiàn)。

· 鏈路連接的建立,拆除,分離。

· 幀定界和幀同步。鏈路層的數(shù)據(jù)傳輸單元是幀,協(xié)議不同,幀的長(zhǎng)短和界面也有差別,但無(wú)論如何必須對(duì)幀進(jìn)行定界。

· 順序控制,指對(duì)幀的收發(fā)順序的控制。

· 差錯(cuò)檢測(cè)和恢復(fù)。

還有鏈路標(biāo)識(shí),流量控制等等。

差錯(cuò)檢測(cè)多用方陣碼校驗(yàn)和循環(huán)碼校驗(yàn)來(lái)檢測(cè)信道上數(shù)據(jù)的誤碼,而幀丟失等用序號(hào)檢測(cè)。

各種錯(cuò)誤的恢復(fù)則??糠答佒匕l(fā)技術(shù)來(lái)完成。

5. 物理層

物理層雖然處于最底層,卻是整個(gè)計(jì)算機(jī)網(wǎng)絡(luò)的基礎(chǔ)。

物理層為設(shè)備之間的數(shù)據(jù)通信提供傳輸媒體及互連設(shè)備,為數(shù)據(jù)傳輸提供可靠的環(huán)境。

物理層的媒體包括架空明線、平衡電纜、光纖、無(wú)線信道等。通信用的互連設(shè)備指DTE和DCE間的互連設(shè)備。

DTE即數(shù)據(jù)終端設(shè)備,又稱(chēng)物理設(shè)備,如計(jì)算機(jī)、終端等都包括在內(nèi)。

而DCE則是數(shù)據(jù)通信設(shè)備或電路連接設(shè)備,如調(diào)制解調(diào)器等。

數(shù)據(jù)傳輸通常是經(jīng)過(guò)DTE——DCE,再經(jīng)過(guò)DCE——DTE的路徑。

互連設(shè)備指將DTE、DCE連接起來(lái)的裝置,如各種插頭、插座。

LAN中的各種粗、細(xì)同軸電纜、T型接、插頭,接收器,發(fā)送器,中繼器等都屬物理層的媒體和連接器。

物理層的主要功能:

(1) 為數(shù)據(jù)端設(shè)備提供傳送數(shù)據(jù)的通路,數(shù)據(jù)通路可以是一個(gè)物理媒體,也可以是多個(gè)物理媒體連接而成。

一次完整的數(shù)據(jù)傳輸,包括激活物理連接,傳送數(shù)據(jù),終止物理連接。

所謂激活,就是不管有多少物理媒體參與,都要在通信的兩個(gè)數(shù)據(jù)終端設(shè)備間連接起來(lái),形成一條通路。

(2) 傳輸數(shù)據(jù),物理層要形成適合數(shù)據(jù)傳輸需要的實(shí)體,為數(shù)據(jù)傳送服務(wù)。

一是要保證數(shù)據(jù)能在其上正確通過(guò),二是要提供足夠的帶寬(帶寬是指每秒鐘內(nèi)能通過(guò)的比特(BIT)數(shù)),以減少信道上的擁塞。

傳輸數(shù)據(jù)的方式能滿(mǎn)足點(diǎn)到點(diǎn),一點(diǎn)到多點(diǎn),串行或并行,半雙工或全雙工,同步或異步傳輸?shù)男枰?/p>

三、 TCP/IP 基礎(chǔ)

1. TCP/IP 的具體含義

從字面意義上講,有人可能會(huì)認(rèn)為 TCP/IP 是指 TCP 和 IP 兩種協(xié)議。實(shí)際生活當(dāng)中有時(shí)也確實(shí)就是指這兩種協(xié)議。然而在很多情況下,它只是利用 IP 進(jìn)行通信時(shí)所必須用到的協(xié)議群的統(tǒng)稱(chēng)。具體來(lái)說(shuō),IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都屬于 TCP/IP 協(xié)議。他們與 TCP 或 IP 的關(guān)系緊密,是互聯(lián)網(wǎng)必不可少的組成部分。TCP/IP 一詞泛指這些協(xié)議,因此,有時(shí)也稱(chēng) TCP/IP 為網(wǎng)際協(xié)議群。

互聯(lián)網(wǎng)進(jìn)行通信時(shí),需要相應(yīng)的網(wǎng)絡(luò)協(xié)議,TCP/IP 原本就是為使用互聯(lián)網(wǎng)而開(kāi)發(fā)制定的協(xié)議族。因此,互聯(lián)網(wǎng)的協(xié)議就是 TCP/IP,TCP/IP 就是互聯(lián)網(wǎng)的協(xié)議。

 

電腦網(wǎng)絡(luò):OSI七層和TCP五層協(xié)議,為什么最終勝出的是TCP/IP協(xié)議

 

網(wǎng)際協(xié)議群

2. 數(shù)據(jù)包

包、幀、數(shù)據(jù)包、段、消息

以上五個(gè)術(shù)語(yǔ)都用來(lái)表述數(shù)據(jù)的單位,大致區(qū)分如下:

  • 包可以說(shuō)是全能性術(shù)語(yǔ);
  • 幀用于表示數(shù)據(jù)鏈路層中包的單位;
  • 數(shù)據(jù)包是 IP 和 UDP 等網(wǎng)絡(luò)層以上的分層中包的單位;
  • 段則表示 TCP 數(shù)據(jù)流中的信息;
  • 消息是指應(yīng)用協(xié)議中數(shù)據(jù)的單位。

每個(gè)分層中,都會(huì)對(duì)所發(fā)送的數(shù)據(jù)附加一個(gè)首部,在這個(gè)首部中包含了該層必要的信息,如發(fā)送的目標(biāo)地址以及協(xié)議相關(guān)信息。通常,為協(xié)議提供的信息為包首部,所要發(fā)送的內(nèi)容為數(shù)據(jù)。在下一層的角度看,從上一層收到的包全部都被認(rèn)為是本層的數(shù)據(jù)。

 

電腦網(wǎng)絡(luò):OSI七層和TCP五層協(xié)議,為什么最終勝出的是TCP/IP協(xié)議

 

數(shù)據(jù)包首部

網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包由兩部分組成:一部分是協(xié)議所要用到的首部,另一部分是上一層傳過(guò)來(lái)的數(shù)據(jù)。首部的結(jié)構(gòu)由協(xié)議的具體規(guī)范詳細(xì)定義。在數(shù)據(jù)包的首部,明確標(biāo)明了協(xié)議應(yīng)該如何讀取數(shù)據(jù)。反過(guò)來(lái)說(shuō),看到首部,也就能夠了解該協(xié)議必要的信息以及所要處理的數(shù)據(jù)。包首部就像協(xié)議的臉。

3. 數(shù)據(jù)處理流程

下圖以用戶(hù) a 向用戶(hù) b 發(fā)送郵件為例子:

 

電腦網(wǎng)絡(luò):OSI七層和TCP五層協(xié)議,為什么最終勝出的是TCP/IP協(xié)議

 

數(shù)據(jù)處理流程

① 應(yīng)用程序處理

  • 首先應(yīng)用程序會(huì)進(jìn)行編碼處理,這些編碼相當(dāng)于 OSI 的表示層功能;
  • 編碼轉(zhuǎn)化后,郵件不一定馬上被發(fā)送出去,這種何時(shí)建立通信連接何時(shí)發(fā)送數(shù)據(jù)的管理功能,相當(dāng)于 OSI 的會(huì)話層功能。

② TCP 模塊的處理

  • TCP 根據(jù)應(yīng)用的指示,負(fù)責(zé)建立連接、發(fā)送數(shù)據(jù)以及斷開(kāi)連接。TCP 提供將應(yīng)用層發(fā)來(lái)的數(shù)據(jù)順利發(fā)送至對(duì)端的可靠傳輸。為了實(shí)現(xiàn)這一功能,需要在應(yīng)用層數(shù)據(jù)的前端附加一個(gè) TCP 首部。

 ③ IP 模塊的處理

  • IP 將 TCP 傳過(guò)來(lái)的 TCP 首部和 TCP 數(shù)據(jù)合起來(lái)當(dāng)做自己的數(shù)據(jù),并在 TCP 首部的前端加上自己的 IP 首部。IP 包生成后,參考路由控制表決定接受此 IP 包的路由或主機(jī)。

④ 網(wǎng)絡(luò)接口(以太網(wǎng)驅(qū)動(dòng))的處理

  • 從 IP 傳過(guò)來(lái)的 IP 包對(duì)于以太網(wǎng)來(lái)說(shuō)就是數(shù)據(jù)。給這些數(shù)據(jù)附加上以太網(wǎng)首部并進(jìn)行發(fā)送處理,生成的以太網(wǎng)數(shù)據(jù)包將通過(guò)物理層傳輸給接收端。

⑤ 網(wǎng)絡(luò)接口(以太網(wǎng)驅(qū)動(dòng))的處理

  • 主機(jī)收到以太網(wǎng)包后,首先從以太網(wǎng)包首部找到 MAC 地址判斷是否為發(fā)送給自己的包,若不是則丟棄數(shù)據(jù)。
  • 如果是發(fā)送給自己的包,則從以太網(wǎng)包首部中的類(lèi)型確定數(shù)據(jù)類(lèi)型,再傳給相應(yīng)的模塊,如 IP、ARP 等。這里的例子則是 IP 。

⑥ IP 模塊的處理

  •  IP 模塊接收到 數(shù)據(jù)后也做類(lèi)似的處理。從包首部中判斷此 IP 地址是否與自己的 IP 地址匹配,如果匹配則根據(jù)首部的協(xié)議類(lèi)型將數(shù)據(jù)發(fā)送給對(duì)應(yīng)的模塊,如 TCP、UDP。這里的例子則是 TCP。
  • 另外嗎,對(duì)于有路由器的情況,接收端地址往往不是自己的地址,此時(shí),需要借助路由控制表,在調(diào)查應(yīng)該送往的主機(jī)或路由器之后再進(jìn)行轉(zhuǎn)發(fā)數(shù)據(jù)。

 ⑦ TCP 模塊的處理

  • ·在 TCP 模塊中,首先會(huì)計(jì)算一下校驗(yàn)和,判斷數(shù)據(jù)是否被破壞。然后檢查是否在按照序號(hào)接收數(shù)據(jù)。最后檢查端口號(hào),確定具體的應(yīng)用程序。數(shù)據(jù)被完整地接收以后,會(huì)傳給由端口號(hào)識(shí)別的應(yīng)用程序。

⑧ 應(yīng)用程序的處理

· 接收端應(yīng)用程序會(huì)直接接收發(fā)送端發(fā)送的數(shù)據(jù)。通過(guò)解析數(shù)據(jù),展示相應(yīng)的內(nèi)容。

四、傳輸層中的 TCP 和 UDP

TCP/IP 中有兩個(gè)具有代表性的傳輸層協(xié)議,分別是 TCP 和 UDP。

  • TCP 是面向連接的、可靠的流協(xié)議。流就是指不間斷的數(shù)據(jù)結(jié)構(gòu),當(dāng)應(yīng)用程序采用 TCP 發(fā)送消息時(shí),雖然可以保證發(fā)送的順序,但還是猶如沒(méi)有任何間隔的數(shù)據(jù)流發(fā)送給接收端。TCP 為提供可靠性傳輸,實(shí)行"順序控制"或"重發(fā)控制"機(jī)制。此外還具備"流控制(流量控制)"、"擁塞控制"、提高網(wǎng)絡(luò)利用率等眾多功能。
  • UDP 是不具有可靠性的數(shù)據(jù)報(bào)協(xié)議。細(xì)微的處理它會(huì)交給上層的應(yīng)用去完成。在 UDP 的情況下,雖然可以確保發(fā)送消息的大小,卻不能保證消息一定會(huì)到達(dá)。因此,應(yīng)用有時(shí)會(huì)根據(jù)自己的需要進(jìn)行重發(fā)處理。
  • TCP 和 UDP 的優(yōu)缺點(diǎn)無(wú)法簡(jiǎn)單地、絕對(duì)地去做比較:TCP 用于在傳輸層有必要實(shí)現(xiàn)可靠傳輸?shù)那闆r;而在一方面,UDP 主要用于那些對(duì)高速傳輸和實(shí)時(shí)性有較高要求的通信或廣播通信。TCP 和 UDP 應(yīng)該根據(jù)應(yīng)用的目的按需使用。

1. 端口號(hào)

數(shù)據(jù)鏈路和 IP 中的地址,分別指的是 MAC 地址和 IP 地址。前者用來(lái)識(shí)別同一鏈路中不同的計(jì)算機(jī),后者用來(lái)識(shí)別 TCP/IP 網(wǎng)絡(luò)中互連的主機(jī)和路由器。在傳輸層也有這種類(lèi)似于地址的概念,那就是端口號(hào)。端口號(hào)用來(lái)識(shí)別同一臺(tái)計(jì)算機(jī)中進(jìn)行通信的不同應(yīng)用程序。因此,它也被稱(chēng)為程序地址。

1.1 根據(jù)端口號(hào)識(shí)別應(yīng)用

一臺(tái)計(jì)算機(jī)上同時(shí)可以運(yùn)行多個(gè)程序。傳輸層協(xié)議正是利用這些端口號(hào)識(shí)別本機(jī)中正在進(jìn)行通信的應(yīng)用程序,并準(zhǔn)確地將數(shù)據(jù)傳輸。

 

電腦網(wǎng)絡(luò):OSI七層和TCP五層協(xié)議,為什么最終勝出的是TCP/IP協(xié)議

 

通過(guò)端口號(hào)識(shí)別應(yīng)用

1.2 通過(guò) IP 地址、端口號(hào)、協(xié)議號(hào)進(jìn)行通信識(shí)別

  • 僅憑目標(biāo)端口號(hào)識(shí)別某一個(gè)通信是遠(yuǎn)遠(yuǎn)不夠的。

 

電腦網(wǎng)絡(luò):OSI七層和TCP五層協(xié)議,為什么最終勝出的是TCP/IP協(xié)議

 

 

電腦網(wǎng)絡(luò):OSI七層和TCP五層協(xié)議,為什么最終勝出的是TCP/IP協(xié)議

 

通過(guò)端口號(hào)、IP地址、協(xié)議號(hào)進(jìn)行通信識(shí)別

  • ① 和② 的通信是在兩臺(tái)計(jì)算機(jī)上進(jìn)行的。它們的目標(biāo)端口號(hào)相同,都是80。這里可以根據(jù)源端口號(hào)加以區(qū)分。
  • ③ 和 ① 的目標(biāo)端口號(hào)和源端口號(hào)完全相同,但它們各自的源 IP 地址不同。
  • 此外,當(dāng) IP 地址和端口號(hào)全都一樣時(shí),我們還可以通過(guò)協(xié)議號(hào)來(lái)區(qū)分(TCP 和 UDP)。

1.3 端口號(hào)的確定

  • 標(biāo)準(zhǔn)既定的端口號(hào):這種方法也叫靜態(tài)方法。它是指每個(gè)應(yīng)用程序都有其指定的端口號(hào)。但并不是說(shuō)可以隨意使用任何一個(gè)端口號(hào)。例如 HTTP、FTP、TELNET 等廣為使用的應(yīng)用協(xié)議中所使用的端口號(hào)就是固定的。這些端口號(hào)被稱(chēng)為知名端口號(hào),分布在 0~1023 之間;除知名端口號(hào)之外,還有一些端口號(hào)被正式注冊(cè),它們分布在 1024~49151 之間,不過(guò)這些端口號(hào)可用于任何通信用途。
  • 時(shí)序分配法:服務(wù)器有必要確定監(jiān)聽(tīng)端口號(hào),但是接受服務(wù)的客戶(hù)端沒(méi)必要確定端口號(hào)。在這種方法下,客戶(hù)端應(yīng)用程序完全可以不用自己設(shè)置端口號(hào),而全權(quán)交給操作系統(tǒng)進(jìn)行分配。動(dòng)態(tài)分配的端口號(hào)范圍在 49152~65535 之間。

1.4 端口號(hào)與協(xié)議

· 端口號(hào)由其使用的傳輸層協(xié)議決定。因此,不同的傳輸層協(xié)議可以使用相同的端口號(hào)。

· 此外,那些知名端口號(hào)與傳輸層協(xié)議并無(wú)關(guān)系。只要端口一致都將分配同一種應(yīng)用程序進(jìn)行處理。

2. UDP

· UDP 不提供復(fù)雜的控制機(jī)制,利用 IP 提供面向無(wú)連接的通信服務(wù)。

  • 并且它是將應(yīng)用程序發(fā)來(lái)的數(shù)據(jù)在收到的那一刻,立即按照原樣發(fā)送到網(wǎng)絡(luò)上的一種機(jī)制。即使是出現(xiàn)網(wǎng)絡(luò)擁堵的情況,UDP 也無(wú)法進(jìn)行流量控制等避免網(wǎng)絡(luò)擁塞行為。
  • 此外,傳輸途中出現(xiàn)丟包,UDP 也不負(fù)責(zé)重發(fā)。
  • 甚至當(dāng)包的到達(dá)順序出現(xiàn)亂序時(shí)也沒(méi)有糾正的功能。
  • 如果需要以上的細(xì)節(jié)控制,不得不交由采用 UDP 的應(yīng)用程序去處理。
  • UDP 常用于一下幾個(gè)方面:1.包總量較少的通信(DNS、SNMP等);2.視頻、音頻等多媒體通信(即時(shí)通信);3.限定于 LAN 等特定網(wǎng)絡(luò)中的應(yīng)用通信;4.廣播通信(廣播、多播)。

3. TCP

  • TCP 與 UDP 的區(qū)別相當(dāng)大。它充分地實(shí)現(xiàn)了數(shù)據(jù)傳輸時(shí)各種控制功能,可以進(jìn)行丟包時(shí)的重發(fā)控制,還可以對(duì)次序亂掉的分包進(jìn)行順序控制。而這些在 UDP 中都沒(méi)有。
  • 此外,TCP 作為一種面向有連接的協(xié)議,只有在確認(rèn)通信對(duì)端存在時(shí)才會(huì)發(fā)送數(shù)據(jù),從而可以控制通信流量的浪費(fèi)。
  • 根據(jù) TCP 的這些機(jī)制,在 IP 這種無(wú)連接的網(wǎng)絡(luò)上也能夠?qū)崿F(xiàn)高可靠性的通信( 主要通過(guò)檢驗(yàn)和、序列號(hào)、確認(rèn)應(yīng)答、重發(fā)控制、連接管理以及窗口控制等機(jī)制實(shí)現(xiàn))。

3.1 三次握手(重點(diǎn))

  • TCP 提供面向有連接的通信傳輸。面向有連接是指在數(shù)據(jù)通信開(kāi)始之前先做好兩端之間的準(zhǔn)備工作。
  • 所謂三次握手是指建立一個(gè) TCP 連接時(shí)需要客戶(hù)端和服務(wù)器端總共發(fā)送三個(gè)包以確認(rèn)連接的建立。在socket編程中,這一過(guò)程由客戶(hù)端執(zhí)行connect來(lái)觸發(fā)。

下面來(lái)看看三次握手的流程圖:

 

電腦網(wǎng)絡(luò):OSI七層和TCP五層協(xié)議,為什么最終勝出的是TCP/IP協(xié)議

 

三次握手

  • 第一次握手:客戶(hù)端將標(biāo)志位SYN置為1,隨機(jī)產(chǎn)生一個(gè)值seq=J,并將該數(shù)據(jù)包發(fā)送給服務(wù)器端,客戶(hù)端進(jìn)入SYN_SENT狀態(tài),等待服務(wù)器端確認(rèn)。
  • 第二次握手:服務(wù)器端收到數(shù)據(jù)包后由標(biāo)志位SYN=1知道客戶(hù)端請(qǐng)求建立連接,服務(wù)器端將標(biāo)志位SYN和ACK都置為1,ack=J+1,隨機(jī)產(chǎn)生一個(gè)值seq=K,并將該數(shù)據(jù)包發(fā)送給客戶(hù)端以確認(rèn)連接請(qǐng)求,服務(wù)器端進(jìn)入SYN_RCVD狀態(tài)。
  • 第三次握手:客戶(hù)端收到確認(rèn)后,檢查ack是否為J+1,ACK是否為1,如果正確則將標(biāo)志位ACK置為1,ack=K+1,并將該數(shù)據(jù)包發(fā)送給服務(wù)器端,服務(wù)器端檢查ack是否為K+1,ACK是否為1,如果正確則連接建立成功,客戶(hù)端和服務(wù)器端進(jìn)入ESTABLISHED狀態(tài),完成三次握手,隨后客戶(hù)端與服務(wù)器端之間可以開(kāi)始傳輸數(shù)據(jù)了。

3.2 四次揮手(重點(diǎn))

  • 四次揮手即終止TCP連接,就是指斷開(kāi)一個(gè)TCP連接時(shí),需要客戶(hù)端和服務(wù)端總共發(fā)送4個(gè)包以確認(rèn)連接的斷開(kāi)。在socket編程中,這一過(guò)程由客戶(hù)端或服務(wù)端任一方執(zhí)行close來(lái)觸發(fā)。
  • 由于TCP連接是全雙工的,因此,每個(gè)方向都必須要單獨(dú)進(jìn)行關(guān)閉,這一原則是當(dāng)一方完成數(shù)據(jù)發(fā)送任務(wù)后,發(fā)送一個(gè)FIN來(lái)終止這一方向的連接,收到一個(gè)FIN只是意味著這一方向上沒(méi)有數(shù)據(jù)流動(dòng)了,即不會(huì)再收到數(shù)據(jù)了,但是在這個(gè)TCP連接上仍然能夠發(fā)送數(shù)據(jù),直到這一方向也發(fā)送了FIN。首先進(jìn)行關(guān)閉的一方將執(zhí)行主動(dòng)關(guān)閉,而另一方則執(zhí)行被動(dòng)關(guān)閉。

下面來(lái)看看四次揮手的流程圖:

 

電腦網(wǎng)絡(luò):OSI七層和TCP五層協(xié)議,為什么最終勝出的是TCP/IP協(xié)議

 

四次揮手

  • 中斷連接端可以是客戶(hù)端,也可以是服務(wù)器端。
  • 第一次揮手:客戶(hù)端發(fā)送一個(gè)FIN=M,用來(lái)關(guān)閉客戶(hù)端到服務(wù)器端的數(shù)據(jù)傳送,客戶(hù)端進(jìn)入FIN_WAIT_1狀態(tài)。意思是說(shuō)"我客戶(hù)端沒(méi)有數(shù)據(jù)要發(fā)給你了",但是如果你服務(wù)器端還有數(shù)據(jù)沒(méi)有發(fā)送完成,則不必急著關(guān)閉連接,可以繼續(xù)發(fā)送數(shù)據(jù)。
  • 第二次揮手:服務(wù)器端收到FIN后,先發(fā)送ack=M+1,告訴客戶(hù)端,你的請(qǐng)求我收到了,但是我還沒(méi)準(zhǔn)備好,請(qǐng)繼續(xù)你等我的消息。這個(gè)時(shí)候客戶(hù)端就進(jìn)入FIN_WAIT_2 狀態(tài),繼續(xù)等待服務(wù)器端的FIN報(bào)文。
  • 第三次揮手:當(dāng)服務(wù)器端確定數(shù)據(jù)已發(fā)送完成,則向客戶(hù)端發(fā)送FIN=N報(bào)文,告訴客戶(hù)端,好了,我這邊數(shù)據(jù)發(fā)完了,準(zhǔn)備好關(guān)閉連接了。服務(wù)器端進(jìn)入LAST_ACK狀態(tài)。
  • 第四次揮手:客戶(hù)端收到FIN=N報(bào)文后,就知道可以關(guān)閉連接了,但是他還是不相信網(wǎng)絡(luò),怕服務(wù)器端不知道要關(guān)閉,所以發(fā)送ack=N+1后進(jìn)入TIME_WAIT狀態(tài),如果Server端沒(méi)有收到ACK則可以重傳。服務(wù)器端收到ACK后,就知道可以斷開(kāi)連接了??蛻?hù)端等待了2MSL后依然沒(méi)有收到回復(fù),則證明服務(wù)器端已正常關(guān)閉,那好,我客戶(hù)端也可以關(guān)閉連接了。最終完成了四次握手。

上面是一方主動(dòng)關(guān)閉,另一方被動(dòng)關(guān)閉的情況,實(shí)際中還會(huì)出現(xiàn)同時(shí)發(fā)起主動(dòng)關(guān)閉的情況,

具體流程如下圖:

 

電腦網(wǎng)絡(luò):OSI七層和TCP五層協(xié)議,為什么最終勝出的是TCP/IP協(xié)議

 

同時(shí)揮手

3.3 通過(guò)序列號(hào)與確認(rèn)應(yīng)答提高可靠性

  • 在 TCP 中,當(dāng)發(fā)送端的數(shù)據(jù)到達(dá)接收主機(jī)時(shí),接收端主機(jī)會(huì)返回一個(gè)已收到消息的通知。這個(gè)消息叫做確認(rèn)應(yīng)答(ACK)。當(dāng)發(fā)送端將數(shù)據(jù)發(fā)出之后會(huì)等待對(duì)端的確認(rèn)應(yīng)答。如果有確認(rèn)應(yīng)答,說(shuō)明數(shù)據(jù)已經(jīng)成功到達(dá)對(duì)端。反之,則數(shù)據(jù)丟失的可能性很大。
  • 在一定時(shí)間內(nèi)沒(méi)有等待到確認(rèn)應(yīng)答,發(fā)送端就可以認(rèn)為數(shù)據(jù)已經(jīng)丟失,并進(jìn)行重發(fā)。由此,即使產(chǎn)生了丟包,仍然能夠保證數(shù)據(jù)能夠到達(dá)對(duì)端,實(shí)現(xiàn)可靠傳輸。
  • 未收到確認(rèn)應(yīng)答并不意味著數(shù)據(jù)一定丟失。也有可能是數(shù)據(jù)對(duì)方已經(jīng)收到,只是返回的確認(rèn)應(yīng)答在途中丟失。這種情況也會(huì)導(dǎo)致發(fā)送端誤以為數(shù)據(jù)沒(méi)有到達(dá)目的地而重發(fā)數(shù)據(jù)。
  • 此外,也有可能因?yàn)橐恍┢渌驅(qū)е麓_認(rèn)應(yīng)答延遲到達(dá),在源主機(jī)重發(fā)數(shù)據(jù)以后才到達(dá)的情況也屢見(jiàn)不鮮。此時(shí),源主機(jī)只要按照機(jī)制重發(fā)數(shù)據(jù)即可。
  • 對(duì)于目標(biāo)主機(jī)來(lái)說(shuō),反復(fù)收到相同的數(shù)據(jù)是不可取的。為了對(duì)上層應(yīng)用提供可靠的傳輸,目標(biāo)主機(jī)必須放棄重復(fù)的數(shù)據(jù)包。為此我們引入了序列號(hào)。

序列號(hào)是按照順序給發(fā)送數(shù)據(jù)的每一個(gè)字節(jié)(8位字節(jié))都標(biāo)上號(hào)碼的編號(hào)。接收端查詢(xún)接收數(shù)據(jù) TCP 首部中的序列號(hào)和數(shù)據(jù)的長(zhǎng)度,將自己下一步應(yīng)該接收的序列號(hào)作為確認(rèn)應(yīng)答返送回去。通過(guò)序列號(hào)和確認(rèn)應(yīng)答號(hào),TCP 能夠識(shí)別是否已經(jīng)接收數(shù)據(jù),又能夠判斷是否需要接收,從而實(shí)現(xiàn)可靠傳輸。

 

電腦網(wǎng)絡(luò):OSI七層和TCP五層協(xié)議,為什么最終勝出的是TCP/IP協(xié)議

 

序列號(hào)和確認(rèn)應(yīng)答

3.4 重發(fā)超時(shí)的確定

  • 重發(fā)超時(shí)是指在重發(fā)數(shù)據(jù)之前,等待確認(rèn)應(yīng)答到來(lái)的那個(gè)特定時(shí)間間隔。如果超過(guò)這個(gè)時(shí)間仍未收到確認(rèn)應(yīng)答,發(fā)送端將進(jìn)行數(shù)據(jù)重發(fā)。最理想的是,找到一個(gè)最小時(shí)間,它能保證"確認(rèn)應(yīng)答一定能在這個(gè)時(shí)間內(nèi)返回"。
  • TCP 要求不論處在何種網(wǎng)絡(luò)環(huán)境下都要提供高性能通信,并且無(wú)論網(wǎng)絡(luò)擁堵情況發(fā)生何種變化,都必須保持這一特性。為此,它在每次發(fā)包時(shí)都會(huì)計(jì)算往返時(shí)間及其偏差。將這個(gè)往返時(shí)間和偏差時(shí)間相加,重發(fā)超時(shí)的時(shí)間就是比這個(gè)總和要稍大一點(diǎn)的值。
  • 在 BSD 的 Unix 以及 Windows 系統(tǒng)中,超時(shí)都以0.5秒為單位進(jìn)行控制,因此重發(fā)超時(shí)都是0.5秒的整數(shù)倍。不過(guò),最初其重發(fā)超時(shí)的默認(rèn)值一般設(shè)置為6秒左右。
  • 數(shù)據(jù)被重發(fā)之后若還是收不到確認(rèn)應(yīng)答,則進(jìn)行再次發(fā)送。此時(shí),等待確認(rèn)應(yīng)答的時(shí)間將會(huì)以2倍、4倍的指數(shù)函數(shù)延長(zhǎng)。
  • 此外,數(shù)據(jù)也不會(huì)被無(wú)限、反復(fù)地重發(fā)。達(dá)到一定重發(fā)次數(shù)之后,如果仍沒(méi)有任何確認(rèn)應(yīng)答返回,就會(huì)判斷為網(wǎng)絡(luò)或?qū)Χ酥鳈C(jī)發(fā)生了異常,強(qiáng)制關(guān)閉連接。并且通知應(yīng)用通信異常強(qiáng)行終止。

3.5 以段為單位發(fā)送數(shù)據(jù)

  • 在建立 TCP 連接的同時(shí),也可以確定發(fā)送數(shù)據(jù)包的單位,我們也可以稱(chēng)其為"最大消息長(zhǎng)度"(MSS)。最理想的情況是,最大消息長(zhǎng)度正好是 IP 中不會(huì)被分片處理的最大數(shù)據(jù)長(zhǎng)度。
  • TCP 在傳送大量數(shù)據(jù)時(shí),是以 MSS 的大小將數(shù)據(jù)進(jìn)行分割發(fā)送。進(jìn)行重發(fā)時(shí)也是以 MSS 為單位。
  • MSS 在三次握手的時(shí)候,在兩端主機(jī)之間被計(jì)算得出。兩端的主機(jī)在發(fā)出建立連接的請(qǐng)求時(shí),會(huì)在 TCP 首部中寫(xiě)入 MSS 選項(xiàng),告訴對(duì)方自己的接口能夠適應(yīng)的 MSS 的大小。然后會(huì)在兩者之間選擇一個(gè)較小的值投入使用。

3.6 利用窗口控制提高速度

  • TCP 以1個(gè)段為單位,每發(fā)送一個(gè)段進(jìn)行一次確認(rèn)應(yīng)答的處理。這樣的傳輸方式有一個(gè)缺點(diǎn),就是包的往返時(shí)間越長(zhǎng)通信性能就越低。
  • 為解決這個(gè)問(wèn)題,TCP 引入了窗口這個(gè)概念。確認(rèn)應(yīng)答不再是以每個(gè)分段,而是以更大的單位進(jìn)行確認(rèn),轉(zhuǎn)發(fā)時(shí)間將會(huì)被大幅地縮短。也就是說(shuō),發(fā)送端主機(jī),在發(fā)送了一個(gè)段以后不必要一直等待確認(rèn)應(yīng)答,而是繼續(xù)發(fā)送。如下圖所示:

 

電腦網(wǎng)絡(luò):OSI七層和TCP五層協(xié)議,為什么最終勝出的是TCP/IP協(xié)議

 

·

  • 窗口控制
  • 窗口大小就是指無(wú)需等待確認(rèn)應(yīng)答而可以繼續(xù)發(fā)送數(shù)據(jù)的最大值。上圖中窗口大小為4個(gè)段。這個(gè)機(jī)制實(shí)現(xiàn)了使用大量的緩沖區(qū),通過(guò)對(duì)多個(gè)段同時(shí)進(jìn)行確認(rèn)應(yīng)答的功能。

3.7 滑動(dòng)窗口控制

 

電腦網(wǎng)絡(luò):OSI七層和TCP五層協(xié)議,為什么最終勝出的是TCP/IP協(xié)議

 

滑動(dòng)窗口

  • 上圖中的窗口內(nèi)的數(shù)據(jù)即便沒(méi)有收到確認(rèn)應(yīng)答也可以被發(fā)送出去。不過(guò),在整個(gè)窗口的確認(rèn)應(yīng)答沒(méi)有到達(dá)之前,如果其中部分?jǐn)?shù)據(jù)出現(xiàn)丟包,那么發(fā)送端仍然要負(fù)責(zé)重傳。為此,發(fā)送端主機(jī)需要設(shè)置緩存保留這些待被重傳的數(shù)據(jù),直到收到他們的確認(rèn)應(yīng)答。
  • 在滑動(dòng)窗口以外的部分包括未發(fā)送的數(shù)據(jù)以及已經(jīng)確認(rèn)對(duì)端已收到的數(shù)據(jù)。當(dāng)數(shù)據(jù)發(fā)出后若如期收到確認(rèn)應(yīng)答就可以不用再進(jìn)行重發(fā),此時(shí)數(shù)據(jù)就可以從緩存區(qū)清除。
  • 收到確認(rèn)應(yīng)答的情況下,將窗口滑動(dòng)到確認(rèn)應(yīng)答中的序列號(hào)的位置。這樣可以順序地將多個(gè)段同時(shí)發(fā)送提高通信性能。這種機(jī)制也別稱(chēng)為滑動(dòng)窗口控制。

3.8 窗口控制中的重發(fā)控制

在使用窗口控制中, 出現(xiàn)丟包一般分為兩種情況:

  • ① 確認(rèn)應(yīng)答未能返回的情況。在這種情況下,數(shù)據(jù)已經(jīng)到達(dá)對(duì)端,是不需要再進(jìn)行重發(fā)的,如下圖:

 

電腦網(wǎng)絡(luò):OSI七層和TCP五層協(xié)議,為什么最終勝出的是TCP/IP協(xié)議

 

部分確認(rèn)應(yīng)答丟失

  • ② 某個(gè)報(bào)文段丟失的情況。接收主機(jī)如果收到一個(gè)自己應(yīng)該接收的序列號(hào)以外的數(shù)據(jù)時(shí),會(huì)針對(duì)當(dāng)前為止收到數(shù)據(jù)返回確認(rèn)應(yīng)答。如下圖所示,當(dāng)某一報(bào)文段丟失后,發(fā)送端會(huì)一直收到序號(hào)為1001的確認(rèn)應(yīng)答,因此,在窗口比較大,又出現(xiàn)報(bào)文段丟失的情況下,同一個(gè)序列號(hào)的確認(rèn)應(yīng)答將會(huì)被重復(fù)不斷地返回。而發(fā)送端主機(jī)如果連續(xù)3次收到同一個(gè)確認(rèn)應(yīng)答,就會(huì)將其對(duì)應(yīng)的數(shù)據(jù)進(jìn)行重發(fā)。這種機(jī)制比之前提到的超時(shí)管理更加高效,因此也被稱(chēng)為高速重發(fā)控制。

 

電腦網(wǎng)絡(luò):OSI七層和TCP五層協(xié)議,為什么最終勝出的是TCP/IP協(xié)議

 

責(zé)任編輯:武曉燕 來(lái)源: 今日頭條
相關(guān)推薦

2013-10-25 09:32:52

OSI七層協(xié)議TCP協(xié)議

2019-08-07 07:11:21

OSI七層模型TCPIP五層模型

2010-09-27 13:25:58

TCP IP協(xié)議棧

2010-06-13 13:39:46

TCP IP協(xié)議棧

2010-09-09 16:56:08

七層網(wǎng)絡(luò)協(xié)議

2014-06-17 09:30:14

OSI

2019-01-30 10:18:46

七層協(xié)議網(wǎng)絡(luò)通信

2010-06-29 12:28:48

第七層協(xié)議

2010-06-09 13:21:30

TCP傳輸層協(xié)議

2010-09-09 16:48:50

七層網(wǎng)絡(luò)協(xié)議

2020-08-06 00:41:17

TCPIP網(wǎng)絡(luò)協(xié)議

2023-09-02 21:44:24

TCP/IP通信協(xié)議

2011-09-22 13:34:24

2024-01-10 09:04:46

OSI網(wǎng)絡(luò)模型

2020-02-18 09:17:45

TCPIP網(wǎng)絡(luò)協(xié)議

2019-07-09 13:54:19

網(wǎng)絡(luò)模型網(wǎng)絡(luò)協(xié)議TCP

2019-07-16 10:42:02

網(wǎng)絡(luò)模型TCP

2023-10-09 18:28:12

2013-05-29 09:29:07

OSI傳輸層TCP協(xié)議

2021-11-03 09:03:09

面試鏈接http
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)