99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

計算機網(wǎng)絡(luò)知識科普

jf_qwOiugB3 ? 來源:22j.co/cPaX ? 2023-09-22 15:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

計算機網(wǎng)絡(luò)本來就是比較枯燥的,文章內(nèi)容較多,建議讀者耐心看完這篇文章,希望大家看完后都能有所收獲。先把這篇文章的大致結(jié)構(gòu)放上來。

00b8f666-4c30-11ee-a25d-92fbcf53809c.jpg

預(yù)備知識

謝希仁的那本《計算機網(wǎng)絡(luò)》是很多大學(xué)選擇的計網(wǎng)教材,在第一章是一個概論,大致講了計算機網(wǎng)絡(luò)的發(fā)展,也可以說是每個人都必須了解的小常識。在這里,我就做一個總結(jié)概括,把它作為學(xué)習(xí)計網(wǎng)預(yù)備知識。

互聯(lián)網(wǎng)簡史

第一階段:20世紀50年代,數(shù)據(jù)通信技術(shù)與網(wǎng)絡(luò)理論基礎(chǔ)研究

第二階段:20世紀60年代,ARPANET與分組交換技術(shù)

第三階段:20世紀70年代中期,網(wǎng)絡(luò)體系結(jié)構(gòu)與網(wǎng)絡(luò)協(xié)議的標(biāo)準(zhǔn)化

第四階段:20世紀90年代,互聯(lián)網(wǎng)、高速網(wǎng)絡(luò)、無線網(wǎng)絡(luò)、移動互聯(lián)網(wǎng)與網(wǎng)絡(luò)安全技術(shù)發(fā)展

互聯(lián)網(wǎng)的發(fā)展

計算機網(wǎng)絡(luò)的發(fā)展主要經(jīng)歷了下面的七個階段。

批處理:為了讓更多的人使用計算機,出現(xiàn)了批處理系統(tǒng)。所謂的批處理,是指事先把用戶數(shù)程序數(shù)據(jù)裝入卡帶或者磁帶,并由計算機按照一定順序讀取。

00d2c92e-4c30-11ee-a25d-92fbcf53809c.jpg

分時系統(tǒng):批處理系統(tǒng)之后,又出現(xiàn)分時系統(tǒng)。它是指多個終端同時與計算機連接,允許多個用戶同時使用計算機。

00dd79f0-4c30-11ee-a25d-92fbcf53809c.jpg

計算機通信技術(shù):在分時系統(tǒng)中,我們看到了終端和計算機的連接,但這并不意味著計算機與計算機之間也已互聯(lián)連接。隨著計算機的數(shù)量普及,計算機之間的數(shù)據(jù)交互的便捷性越來越受到重視,最開始兩個主機之間交互數(shù)據(jù)過程相當(dāng)繁瑣,因此計算機通信技術(shù)(計算機與計算機之間由通信線路連接)應(yīng)運而生。人們可以很輕松的即時讀取另一臺計算機中的數(shù)據(jù),從而極大地縮短了傳輸數(shù)據(jù)的時間。

計算機網(wǎng)絡(luò)的產(chǎn)生:20世紀70年代,人們開始實驗基于分組交換技術(shù)的計算機網(wǎng)絡(luò),并著手研究不同廠商的計算機之間相互通信的技術(shù)。到了80年代,一種能夠互聯(lián)多種計算機的網(wǎng)絡(luò)應(yīng)運而生。網(wǎng)絡(luò)通信技術(shù)進入了發(fā)展的高速公路。

互聯(lián)網(wǎng)的普及:進入20世紀90年代,隨著計算機的價格降低、性能增強、各類應(yīng)用紛紛冒頭,計算機普及程度越來越高。面對這一趨勢,各家廠商不僅要保證生產(chǎn)產(chǎn)品的自身互聯(lián)性,還著力于讓自己的網(wǎng)絡(luò)技術(shù)不斷與互聯(lián)網(wǎng)技術(shù)(TCP/IP)兼容。

互聯(lián)網(wǎng)時代:隨著互聯(lián)網(wǎng)的普及,現(xiàn)在,人們越來越離不開互聯(lián)網(wǎng)了。生活、學(xué)習(xí)工作也都得依靠網(wǎng)絡(luò)信息,萬物互聯(lián)的時代早就已經(jīng)到來了。

網(wǎng)絡(luò)安全時代:互聯(lián)網(wǎng)給世界帶來了顛覆性的改變,給人們?nèi)粘I顜砹藰O大的便利,互聯(lián)網(wǎng)呈現(xiàn)給現(xiàn)代人一個高度便捷的信息網(wǎng)絡(luò)環(huán)境,在國家面前,猶如水電煤氣一樣,成為了國家必不可少的重要資源,隨著萬物互聯(lián),網(wǎng)絡(luò)安全必定是國家安全最重要的一環(huán)。在互聯(lián)網(wǎng)普及的初期,人們更關(guān)注單純的連接性,注重不受任何限制的建立連接。但現(xiàn)在,人們不再滿足與“單純的連接”而是更為追求“安全的連接”。

網(wǎng)絡(luò)的性能指標(biāo)

比特:比特(bit)是計算機中數(shù)據(jù)量的單位,也是信息論中使用的信息量的單位。英文單詞bit來源于binarydigit,意思是一個“二進制數(shù)字”。網(wǎng)絡(luò)技術(shù)中的速率指的是連接在計算機網(wǎng)絡(luò)上的主機在數(shù)字信道上傳送數(shù)據(jù)的速率,它也稱為數(shù)據(jù)率(data rate)或比特率(bit rate)。

帶寬:在計算機網(wǎng)絡(luò)中,帶寬用來表示網(wǎng)絡(luò)的通信線路傳送數(shù)據(jù)的能力,因此網(wǎng)絡(luò)帶寬表示單位時間內(nèi)從網(wǎng)絡(luò)中的某一點到另一點所能通過的“最高數(shù)據(jù)率”。這種意義的帶寬的單位是比特/秒。

吞吐量:吞吐量(throughput)表示在單位時間內(nèi)通過某個網(wǎng)絡(luò)(或信道、接口)的數(shù)據(jù)量,他表示當(dāng)前網(wǎng)絡(luò)傳輸數(shù)據(jù)的能力。

時延:

1、發(fā)送時延:指主機或路由器發(fā)送數(shù)據(jù)幀所需要的時間,也就是從發(fā)送數(shù)據(jù)幀的第一個比特算起,到該幀的最后一個比特發(fā)送完畢所需要的時間。

2、傳播時延:指電磁波在信道中傳播一定距離需要花費的時間。

時延帶寬積:時延帶寬積表示鏈路可容納的比特數(shù),因此,鏈路的時延帶寬積又稱為以比特為單位的鏈路長度。

往返時間RTT:往返時間RTT,表示從發(fā)送方發(fā)送數(shù)據(jù)開始,到發(fā)送方收到來自接收方的確認(接收方收到數(shù)據(jù)后便立即發(fā)送確認),總共經(jīng)歷的時間。往返時間一般就會包括分組在網(wǎng)絡(luò)中的各種時延。

利用率:利用率可以分為信道利用率和網(wǎng)絡(luò)利用率兩種。信道利用率指出某信道有百分之幾的時間是被利用的(有數(shù)據(jù)通過)。完全空閑的信道的利用率是零。網(wǎng)絡(luò)的利用率則是全網(wǎng)絡(luò)的信道利用率的加權(quán)平均值。信道利用率并非越高越好,這是因為,根據(jù)排隊論的理論,當(dāng)某信道的利用率增大時,該信道引起的時延也會迅速增加。信道或網(wǎng)絡(luò)的利用率過高會產(chǎn)生非常大的時延。

不能不知道的小常識

計算機網(wǎng)絡(luò)的分類

按照地理覆蓋范圍來分類的話,計算機網(wǎng)絡(luò)可以被分為一下三個部分:

局域網(wǎng)(Local Area NetWork,LAN),常見的辦公室、宿舍或網(wǎng)吧中的網(wǎng)絡(luò)就是局域網(wǎng)幾米到10km以內(nèi)。其特點是:連接范圍窄,用戶少,配置容易,連接速率高。

城域網(wǎng)(Metropolitan Area NetWork,MAN),用于將一個城市、一個地區(qū)的企業(yè)、機關(guān)或?qū)W校的局域網(wǎng)連接起來,實現(xiàn)區(qū)域內(nèi)的資源共享

廣域網(wǎng):廣域網(wǎng)(Wide Area Network,WAN),也稱為遠程網(wǎng),不同城市間的LAN或者MAN網(wǎng)絡(luò)互連,因為距離遠,信息衰減比較嚴重,所以這種網(wǎng)絡(luò)一般要租用專線,通過特殊協(xié)議進行連接,構(gòu)成網(wǎng)狀結(jié)構(gòu),廣域網(wǎng)因為所連接的用戶多,所以每個用戶的連接速率一般較低。

計算機網(wǎng)絡(luò)的拓撲結(jié)構(gòu)

總線結(jié)構(gòu):

優(yōu)點:費用較低,易于擴展,線路的利用率高;

缺點:可靠性不高,維護困難,傳輸效率低。

00f0843c-4c30-11ee-a25d-92fbcf53809c.jpg

環(huán)形結(jié)構(gòu):

優(yōu)點:令牌控制,沒有線路競爭,實時性強,傳輸控制容易;

缺點:維護困難,可靠性不高

0105cfcc-4c30-11ee-a25d-92fbcf53809c.jpg


星型結(jié)構(gòu)

優(yōu)點:可靠性高,方便管理,易于擴展,傳輸效率高.

缺點:線路利用率低,中心節(jié)點需要很高的可靠性和冗余度。

計算機有哪些結(jié)構(gòu)

有三種不同的計算機網(wǎng)絡(luò)分層模型:

OSI七層模型

0117e036-4c30-11ee-a25d-92fbcf53809c.jpg

五層結(jié)構(gòu)模型

012934e4-4c30-11ee-a25d-92fbcf53809c.jpg

TCP/IP分層結(jié)構(gòu)模型

013d9844-4c30-11ee-a25d-92fbcf53809c.jpg

TCP/IP協(xié)議是當(dāng)前互聯(lián)網(wǎng)所遵循的協(xié)議,它并不是單純地由TCP或者IP組成,而是由各層的協(xié)議一起組成的,構(gòu)成我們通常說說的TCP/IP協(xié)議棧。但是為了更好的理解,后面文章也是按照五層協(xié)議來寫的。

物理層

這邊先給一個建議,大家在學(xué)習(xí)計算機網(wǎng)絡(luò)的時候不應(yīng)該把每個網(wǎng)絡(luò)協(xié)議單獨拿出來學(xué)習(xí),應(yīng)該明白它的產(chǎn)生原因以及在整個計算機網(wǎng)絡(luò)的作用。

數(shù)字信號模擬信號

它的作用是:屏蔽不同的傳輸媒體和通信手段的差異。我們都知道,自然界的信號無非就是兩種,一種是數(shù)字信號,另一種就是模擬信號。那么是什么模擬信號?什么又是數(shù)字信號呢?

說白了,所謂的模擬信號就是連續(xù)變化的物理量,模擬信號其特點是幅度連續(xù)(連續(xù)的含義是在某一取值范圍內(nèi)可以取無限多個數(shù)值)。模擬信號,其信號波形在時間上也是連續(xù)的,因此它又是連續(xù)信號。我們對連續(xù)信號進行抽樣,就會得到抽樣信號,但抽象信號就是離散的(說著說著就說到了信號系統(tǒng),看來補考對我的影響還是有的)。但數(shù)字信號是不同于模擬信號的,他在時間域上是離散的,它有兩種不同狀態(tài)的物理量,分別用“0”,“1”來表示。這就好像電燈開關(guān)一樣,也有兩種不同的狀態(tài)。

當(dāng)然,數(shù)字信號與模擬信號是可以相互轉(zhuǎn)換的,模擬信號通常使用PCM(脈沖編碼調(diào)制)方法量化并轉(zhuǎn)換為數(shù)字信號,PCM方法是使不同范圍的模擬信號對應(yīng)不同的二進制值。通常,數(shù)字信號通過載波相移得到模擬信號。

物理層的傳輸媒介

我們大家都知道,數(shù)據(jù)在物理層傳輸?shù)拿浇槭遣灰粯拥?,工作在物理層的是集線器。不過,大致可以為一下兩類:

引導(dǎo)型傳輸媒介:引導(dǎo)型傳輸媒體中又有不同的類別,比如同軸電纜、光纜、雙絞線,其中雙絞線根據(jù)是否屏蔽又可以繼續(xù)細分。

非引導(dǎo)型傳輸媒介:非引導(dǎo)型傳輸媒介指的是無線電波在空間中的傳播,利用不同的頻段可以傳輸不同的信號。

信道

說起信道,前面的基礎(chǔ)篇提到過信道的利用率,但至于信道更詳細的介紹,就沒有提到,現(xiàn)在就來仔細看看。按照傳輸媒介可以分為三類:

有線信道:有線信道以導(dǎo)線為傳輸媒質(zhì),信號沿導(dǎo)線進行傳輸,信號的能量集中在導(dǎo)線附近,因此傳輸效率高,但是部署不夠靈活。這一類信道使用的傳輸媒質(zhì)包括用電線傳輸電信號的架空明線、電話線、雙絞線、對稱電纜和同軸電纜等等,還有傳輸經(jīng)過調(diào)制的光脈沖信號的光導(dǎo)纖維。

無線信道:無線信道主要有以輻射無線電波為傳輸方式的無線電信道和在水下傳播聲波的水聲信道等。無線電信號由發(fā)射機的天線輻射到整個自由空間上進行傳播。不同頻段的無線電波有不同的傳播方式。

存儲信道:在某種意義上,磁帶、光盤、磁盤等數(shù)據(jù)存儲媒質(zhì)也可以被看作是一種通信信道。將數(shù)據(jù)寫入存儲媒質(zhì)的過程即等效于發(fā)射機將信號傳輸?shù)叫诺赖倪^程,將數(shù)據(jù)從存儲媒質(zhì)讀出的過程即等效于接收機從信道接收信號的過程。

信道是傳輸信息的信道,信道容量描述了信道無差錯地傳輸信息的最大能力,可以用來衡量信道的好壞。

關(guān)于信道,還有一個重要的參數(shù),那就是信噪比,信噪比越大,信道的容量也越大,這里的話給出著名的香農(nóng)公式:

014d61d4-4c30-11ee-a25d-92fbcf53809c.jpg


其中,C為信道容量,B為帶寬,S/N為信噪比。

信道復(fù)用

我們知道,當(dāng)沒有數(shù)據(jù)進行傳輸?shù)臅r候,信道是十分空閑的。但是在網(wǎng)絡(luò)數(shù)據(jù)請求量大的時候,比如說最近的618,信息的傳播速度就會受阻。那什么是信道的復(fù)用,復(fù)用就是重復(fù)使用的意思。信道的復(fù)用可以分為以下幾個方面:

時分復(fù)用:所謂的時分復(fù)用,就是把做整個信道分為不同的時間。當(dāng)采用時分復(fù)用時,所有用戶在不同的時間占用同樣的頻帶寬度(分時不分頻)。時分復(fù)用可能會造成線路資源的浪費

頻分復(fù)用:頻分復(fù)用就是把信號分成不同的頻率,當(dāng)采用頻分復(fù)用技術(shù)時,所有用戶在同樣的時間占用不同的帶寬資源。當(dāng)采用頻分復(fù)用技術(shù)時,所有用戶在同樣的時間占用不同的帶寬資源。

統(tǒng)計時分復(fù)用:所謂的統(tǒng)計時分復(fù)用系統(tǒng),我們也可以稱為異步的時分復(fù)用系統(tǒng)。它有一個類似緩沖的機制,當(dāng)數(shù)據(jù)到達一定量的時候,才會轉(zhuǎn)發(fā),這大大提高了信道的利用率。

0156fdde-4c30-11ee-a25d-92fbcf53809c.jpg

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

以太網(wǎng)

0169df26-4c30-11ee-a25d-92fbcf53809c.jpg

數(shù)據(jù)鏈路層接收來自網(wǎng)絡(luò)層的IP數(shù)據(jù)報,通過一定的封裝,讓IP數(shù)據(jù)報能在數(shù)據(jù)鏈路層上傳輸。像這樣,裝好了的IP數(shù)據(jù)報,我們稱之為以太網(wǎng)幀,也叫MAC幀。MAC幀由以下幾個重要的部分組成:

目的MAC地址:MAC幀的目的地址占據(jù)6個字節(jié),它標(biāo)志了目標(biāo)主機的地址。

源MAC地址:和目的地址一樣,源地址也占據(jù)6個字節(jié),它標(biāo)志的源主機的地址。

類型:類型占據(jù)2個字節(jié),它記錄上層使用的協(xié)議0X0800表示IP協(xié)議。

數(shù)據(jù)部分:數(shù)據(jù)部分自然是來自上層的IP數(shù)據(jù)報。

FCS:FCS占據(jù)4個字節(jié),它是用來進行差錯檢測的,如果一個MAC幀發(fā)生了錯誤,則不能發(fā)送到目的主機上。

差錯檢測

為什么要進行差錯檢測?

現(xiàn)實的通信鏈路都不會是理想的。這就是說,比特在傳輸?shù)倪^程中可能會產(chǎn)生差錯:1可能會變成0,0可能會變成1,這就叫做比特差錯。在一段是時間內(nèi),傳輸錯誤的比特占所傳輸比特總數(shù)的比率成為誤碼率BER(Bit Error Rate)。誤碼率與信噪比有很大的關(guān)系,在實際通信中不可能使誤碼率下降到零。因此,為了保證數(shù)據(jù)傳輸?shù)目煽啃裕谟嬎銠C網(wǎng)絡(luò)傳輸數(shù)據(jù)時,必須采用各種差錯檢測措施。

MAC幀在傳播的過程中會產(chǎn)生差錯,差錯的產(chǎn)生是不可避免的。前面在以太網(wǎng)幀部分我們提到過差錯檢測序列FCS,根據(jù)FCS我們就可以知道這個MAC幀在傳輸?shù)倪^程中是否出現(xiàn)了錯誤或者丟失。

后面講到傳輸層的時候我們也會提到差錯檢測,那么這兩者到底有啥區(qū)別了?總結(jié)起來,可以用一句話概括:

數(shù)據(jù)鏈路層的差錯檢測的目的是做到"無比特差錯"。

傳輸層的差錯檢測的目的是做到"無傳輸差錯"。即彌補幀丟失、幀重復(fù)、幀失序。

差錯檢測的方法主要有兩種:奇偶校驗法(PCC)和循環(huán)冗余校驗CRC,PCC非常簡單,不是這篇文章的重點,下面主要講一下CRC循環(huán)冗余校驗。

循環(huán)冗余校驗是一種根據(jù)傳輸或保存的數(shù)據(jù)而產(chǎn)生固定位數(shù)校驗碼的方法,主要用來檢測或校驗數(shù)據(jù)傳輸或者保存后可能出現(xiàn)的錯誤。生成的數(shù)字在傳輸或者儲存之前計算出來并且附加到數(shù)據(jù)后面,然后接收端進行檢驗確定數(shù)據(jù)是否發(fā)生變化。

通過CRC,我們可以計算出FCS冗余校驗碼,F(xiàn)CS位于MAC幀的尾部。通過FCS,我們就可以知道這個MAC幀是否發(fā)送了錯誤。

適配器

說到適配器,其實完全可聯(lián)想一下生活中的適配器。比如我們給手機充電的時候需要有電源適配器,電源適配器無非就是轉(zhuǎn)換的作用,或者作為一個載體,實現(xiàn)能量的轉(zhuǎn)移。實際上,電腦里的適配器也是一樣。結(jié)合下面這張圖來理解:

017ac4f8-4c30-11ee-a25d-92fbcf53809c.jpg

我們都知道,數(shù)據(jù)在外部媒介中的傳輸方式是串行傳輸,然而計算機處理內(nèi)部指令的時候,用的是并行的方式。怎樣把串行傳輸?shù)臄?shù)據(jù)轉(zhuǎn)換成并行傳輸呢?這就需要適配器了。適配器就像是起到了橋梁的作用,通過它,就可以輕松實現(xiàn)數(shù)據(jù)傳輸方式的轉(zhuǎn)換。

CAM表

我們都知道交換機,交換機是一種多端口的網(wǎng)橋,在數(shù)據(jù)鏈路層使用MAC地址轉(zhuǎn)發(fā)數(shù)據(jù)。在交換機類不實際存儲以一張表,叫做CAM表。這張表記錄了主機的MAC地址以及對應(yīng)的接口,看看下面的這張圖:

018758ee-4c30-11ee-a25d-92fbcf53809c.jpg

有三臺主機A,B,C和交換機連接在一起,最開始,CAM里沒有存儲任何信息。

突然有一天,主機A(源MAC)想要給主機B(目的MAC)發(fā)送消息。這個時候,交換機就會檢查自己的CAM表里是否存儲了主機A的信息,交換機一看沒有A的信息,就把A的信息寫進自己的CAM表里?,F(xiàn)在,交換機的CAM表變成了這樣:

0190f872-4c30-11ee-a25d-92fbcf53809c.jpg

這個時候,交換機的CAM表里已經(jīng)存儲了主機A的信息,但是主機A卻想要給主機B發(fā)送信息。這可怎么辦呢?首先,交換機會檢查自己的CAM表里是否存在B的信息,如果存在,就直接把信息轉(zhuǎn)發(fā)給B。如果不存在,那又怎么辦呢?猶豫了一下,交換機又有了一個想法,它把主機A發(fā)給主機B的消息以廣播的形式發(fā)給了所有連在它身上的主機。主機C也收到了這條消息,但是主機C檢查了一下目的地址,不是發(fā)給自己的,就果斷丟棄了這條消息。主機B收到了這條消息后,同樣也檢查了收件人(目的地址),發(fā)現(xiàn)是給自己的消息,于是就收下了這條消息。之后,交換機就更新了自己的CAM表,上面增加了一條信息:

019d7548-4c30-11ee-a25d-92fbcf53809c.jpg


就這樣,CAM表里存儲了主機A,和主機B的信息。下一次,主機A想要給主機B發(fā)送信息的時候,交換機就不需要廣播了。

CSMA/CD協(xié)議

到目前為止CSMA/CD的使用已經(jīng)相當(dāng)少了,它的使用在下面兩個地方:

使用的是有線網(wǎng)絡(luò)

應(yīng)用在10M/100M的半雙工有線網(wǎng)絡(luò)中

使用CSMA/CD協(xié)議的的網(wǎng)絡(luò)有以下三個特點:

該網(wǎng)絡(luò)是總線結(jié)構(gòu),所有的計算機接在同一總線上,同一時間內(nèi),只允許一臺計算機發(fā)送(或接收)消息,也就是采用半雙工通信。

載波監(jiān)聽:在發(fā)送前、發(fā)送中都要不停地對信道進行監(jiān)聽,只有在信道是空閑的時候才能發(fā)送消息。

碰撞檢測:主機會在發(fā)送消息前,發(fā)信息的過程中不斷對進行信道檢測,如果有兩臺主機同時發(fā)送消息,則消息傳輸立即停止。隨機等待一段時間再進行發(fā)送消息,這就是退避算法。

補充一下退避算法的特點:

非堅持的CSMA:線路忙,則等待一段時間,再監(jiān)聽;不忙時,立即發(fā)送;減少沖突,信道利用率降低

1堅持的CSMA:線路忙,繼續(xù)偵聽;不忙時,立即發(fā)送;信道利用率提高,沖突增大。

P堅持的CSMA:線路忙,繼續(xù)偵聽;不忙時,根據(jù)p概率進行發(fā)送,另外的1-p概率為繼續(xù)偵聽(p是一個指定概率值)。

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

IP協(xié)議

IP的概述

IP協(xié)議對應(yīng)的是IP地址,那么什么是IP地址呢?

維基百科上是這樣解釋的:

IP地址(英語:IP Address, 全稱:Internet Protocol Address),又譯為網(wǎng)際協(xié)議地址、互聯(lián)網(wǎng)協(xié)議地址。當(dāng)設(shè)備連接網(wǎng)絡(luò),設(shè)備將被分配一個IP地址,用作標(biāo)識。通過IP地址,設(shè)備間可以互相通訊,如果沒有IP地址,我們將無法知道哪個設(shè)備是發(fā)送方,無法知道哪個是接收方。[2] IP地址有兩個主要功能:標(biāo)識設(shè)備或網(wǎng)絡(luò) 和 尋址(英語:location addressing)。

上面的一堆文字其實無非解釋了兩個點,總結(jié)如下:

IP地址是用來標(biāo)記主機的地址,沒有IP地址就無法識別主機。(標(biāo)志主機)

因為唯一標(biāo)記主機,所以可以用來在網(wǎng)絡(luò)中查找主機。(尋址)

現(xiàn)在想一下前面我們說到的MAC地址,MAC地址是一臺主機的身份象征。一臺主機從出廠以后,MAC地址就唯一確定了,無法更改(當(dāng)然也可以通過軟件修改,但是必須得確保同一局域網(wǎng)下不能有兩臺MAC地址相同的主機)。

那么,為什么有了MAC地址,還需要IP地址?或者說是有了IP地址,還需要MAC地址?

這其實也算是一個經(jīng)典的問題了,網(wǎng)上也有不少答案,我總結(jié)如下:

歷史原因:以太網(wǎng)誕生于因特網(wǎng)之前,在IP地址之前MAC地址就已經(jīng)在使用了。兩者結(jié)合使用,是為了不影響已存在的協(xié)議

分層實現(xiàn):對網(wǎng)路協(xié)議進行分層以后,數(shù)據(jù)鏈路層的實現(xiàn)不需要考慮數(shù)據(jù)之間的轉(zhuǎn)發(fā),網(wǎng)絡(luò)層的實現(xiàn)不需要考數(shù)據(jù)鏈路層的影響。

分工合作:IP地址是會隨著主機接入網(wǎng)絡(luò)的不同而發(fā)生改變的,而MAC一般不會改變。這樣的話,我們可以使用IP地址進行尋址,當(dāng)數(shù)據(jù)報和目的主機處于同一網(wǎng)絡(luò)時,就使用MAC地址進行數(shù)據(jù)交付。

IP數(shù)據(jù)報

IP數(shù)據(jù)的樣子是這樣的:

01b7e478-4c30-11ee-a25d-92fbcf53809c.jpg

有幾個重要的東西必須得進行說明一下:

版本號:占用4位二進制數(shù),表示該IP數(shù)據(jù)報使用的IP協(xié)議版本。目前Internet中使用的主要是TCP/IP協(xié)議族中版本號為4的IP協(xié)議。

頭長度:占用4位二進制位,此域指出整個報頭的長度(包括選項),該長度是以32位二進制數(shù)為一個計數(shù)單位的,接收端通過此域可以計算出報頭在何處結(jié)束及從何處開始讀數(shù)據(jù)。普通IP數(shù)據(jù)報(沒有任何選項)該字段的值是5(即20個字節(jié)的長度)。

服務(wù)類型:服務(wù)類型(TOS、type of service):占用8位二進制位,用于規(guī)定本數(shù)據(jù)報的處理方式。

生存時間(TTL,Time To Live):占用8位二進制位,它指定了數(shù)據(jù)報可以在網(wǎng)絡(luò)中傳輸?shù)淖铋L時間。實際應(yīng)用中把生存時間字段設(shè)置成了數(shù)據(jù)報可以經(jīng)過的最大路由器數(shù)。TTL的初始值由源主機設(shè)置(通常為32、64、128或256),一旦經(jīng)過一個處理它的路由器,它的值就減1。當(dāng)該字段為0時,數(shù)據(jù)報就丟棄,并發(fā)送ICMP報文通知源主機,因此可以防止進入一個循環(huán)回路時,數(shù)據(jù)報無休止地傳輸下去。

上層協(xié)議標(biāo)識:占用8位二進制位,IP協(xié)議可以承載各種上層協(xié)議,目標(biāo)端根據(jù)協(xié)議標(biāo)識就可以把收到的IP數(shù)據(jù)報送到TCP或UDP等處理此報文的上層協(xié)議了。

子網(wǎng)掩碼與IP地址

前面說到IP地址的組成的時候,說到過網(wǎng)絡(luò)號。常見的IP地址無非就是由網(wǎng)絡(luò)地址和主機地址組成。那么什么是網(wǎng)絡(luò)號?網(wǎng)絡(luò)號就是計算機當(dāng)前所在網(wǎng)絡(luò)的名字,在這個網(wǎng)絡(luò)下,又由許多的主機構(gòu)成。那又該怎么計算網(wǎng)絡(luò)號了?這時候,子網(wǎng)掩碼派上了用場。

通常,計算機的IP地址和子網(wǎng)掩碼是成對出現(xiàn)的,通過子網(wǎng)掩碼和IP地址進行對照就可以知道主機號和網(wǎng)絡(luò)號。為了方便表示,子網(wǎng)掩碼前面通常是連續(xù)的1,后面部分是連續(xù)的0,不能出現(xiàn)0和1交替的情況。

請看下面的例子。

01c86154-4c30-11ee-a25d-92fbcf53809c.jpg

現(xiàn)在已經(jīng)知道了主機A的IP地址和子網(wǎng)掩碼,把它們轉(zhuǎn)化成二進制的形式。通過二進制對應(yīng)子網(wǎng)掩碼的1的部分對應(yīng)IP地址的網(wǎng)絡(luò)號,子網(wǎng)掩碼為0的部分對應(yīng)主機號。下面的這張圖畫的很清楚:

01d69cd8-4c30-11ee-a25d-92fbcf53809c.jpg

ICMP協(xié)議

我們知道,IP協(xié)議是不可靠的傳輸協(xié)議,網(wǎng)絡(luò)中進行可靠傳輸?shù)氖荰CP協(xié)議,這個后面在講傳輸層的時候會說到。那么,如果在消息沒有送達的情況下,網(wǎng)絡(luò)層是怎么解決的了?這個時候,就需要用到ICMP協(xié)議。什么是ICMP協(xié)議了?ICMP是網(wǎng)絡(luò)控制報文協(xié)議(Internet Control Message Protocol, ICMP)。

它的作用:更加有效地轉(zhuǎn)發(fā)IP數(shù)據(jù)報作為IP數(shù)據(jù)報的數(shù)據(jù)部分,可以分為ICMP差錯報文,和ICMP查詢報文。差錯報文是用來簡單的報告錯誤的, 至于對于錯誤怎么處理是高層協(xié)議的職責(zé)。同時, 差錯報文總是發(fā)送給最初的數(shù)據(jù)源(這是因為在ICMP數(shù)據(jù)報中唯一可以使用的就是源IP和目的IP),查詢報文總是成對出現(xiàn)。

ARP協(xié)議

前面說到IP地址用來尋址,當(dāng)目的地址和數(shù)據(jù)報處于同一網(wǎng)絡(luò)時,MAC地址用來交付數(shù)據(jù)報?,F(xiàn)在有一個問題,主機A要給主機B發(fā)送消息,消息經(jīng)過一系列地轉(zhuǎn)發(fā),終于找到了主機B的IP地址。但是,我們都知道,數(shù)據(jù)在鏈路層的傳輸是需要MAC地址的,僅僅知道B的IP地址是無法進行通信的。請看下面這張圖:

01e77f6c-4c30-11ee-a25d-92fbcf53809c.jpg


這個時候,ARP協(xié)議就派上用場了。ARP全稱是地址解析協(xié)議(Address Resolution Protocol),其基本功能為透過目標(biāo)設(shè)備的IP地址,查詢目標(biāo)設(shè)備的MAC地址,以保證通信的順利進行,它是IPv4中網(wǎng)絡(luò)層必不可少的協(xié)議。

如同交換機工作在數(shù)據(jù)鏈路層一樣,路由器是工作在網(wǎng)絡(luò)層的。交換機有CAM表,路由器也有路由表。

現(xiàn)在路由器要給主機B發(fā)送一條消息,必須得知道主機B的MAC地址才能進行通信。這個時候路由器會發(fā)送一個ARP請求,該請求是以廣播的形式發(fā)送的,每一臺連接到該路由器的主機都收到得到這條消息。但是只有主機B檢查到自己的IP地址符合要求。于是主機B發(fā)送給路由器一條ARP響應(yīng),把自己的MAC的地址告訴了路由器。就像下面圖示的那樣。

01f94fa8-4c30-11ee-a25d-92fbcf53809c.jpg

每次路由器發(fā)送一個ARP請求的時候,就會增加一條數(shù)據(jù),這一條數(shù)據(jù)記錄了IP地址對應(yīng)的MAC地址,這樣路由器下次再給該主機發(fā)送消息的時候就不用廣播了。當(dāng)然如同交換機的CAM表中的數(shù)據(jù)有生存了時間一樣,路由表中的數(shù)據(jù)也有生存時間。試想一下,如果數(shù)據(jù)一直存在,那么路由器豈不是需要花大量的存儲空間來緩存已經(jīng)失效的數(shù)據(jù)。

內(nèi)部網(wǎng)關(guān)協(xié)議

互聯(lián)網(wǎng)的路由選擇協(xié)議主要有兩種,分別是RIP和OSPF。下面具體介紹這兩種協(xié)議。

先介紹RIP協(xié)議:

路由信息協(xié)議(RIP) 是內(nèi)部網(wǎng)關(guān)協(xié)議IGP中最先得到廣泛使用的協(xié)議。RIP是一種分布式的基于距離矢量的路由選擇協(xié)議,是因特網(wǎng)的標(biāo)準(zhǔn)協(xié)議,其最大優(yōu)點就是實現(xiàn)簡單,開銷較小。

基本算法:矢量距離算法(簡稱V-D算法)的思想是:網(wǎng)關(guān)周期性地向外廣播路徑刷新報文,主要內(nèi)容是由若干(V,D)序偶組成的序偶表;(V,D)序偶中的V代表“向量”,標(biāo)識網(wǎng)關(guān)可到達的信宿(網(wǎng)關(guān)或主機),D代表距離,指出該網(wǎng)關(guān)去往信宿V的距離;距離D按驛站的個數(shù)計。其他網(wǎng)關(guān)收到某網(wǎng)關(guān)的(V,D)報文后,據(jù)此按照最短路徑原則對各自的路由表進行刷新。

它只適用于小型的網(wǎng)絡(luò)(15跳就達到極限),如果網(wǎng)絡(luò)過于龐大,當(dāng)網(wǎng)絡(luò)出現(xiàn)故障時,要經(jīng)過比較長的時間才能將此信息傳送到所有的路由器。

接下來說說什么是OSPF:

基本定義:OSPF(Open Shortest Path First開放式最短路徑優(yōu)先)是一個內(nèi)部網(wǎng)關(guān)協(xié)議(Interior Gateway Protocol,簡稱IGP),用于在單一自治系統(tǒng)(autonomous system,AS)內(nèi)決策路由。

基本算法:迪克斯加算法。主要是通過向鄰居發(fā)送HELLO包來建立鄰居關(guān)系,選取DR等。

NAT協(xié)議

NAT技術(shù)其非常簡單,那么NAT它的作用是什么呢?

NAT(Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)是1994年提出的。當(dāng)在專用網(wǎng)內(nèi)部的一些主機本來已經(jīng)分配到了本地IP地址(即僅在本專用網(wǎng)內(nèi)使用的專用地址),但現(xiàn)在又想和因特網(wǎng)上的主機通信(并不需要加密)時,可使用NAT方法。

這種方法需要在專用網(wǎng)連接到因特網(wǎng)的路由器上安裝NAT軟件。裝有NAT軟件的路由器叫做NAT路由器,它至少有一個有效的外部全球IP地址。這樣,所有使用本地地址的主機在和外界通信時,都要在NAT路由器上將其本地地址轉(zhuǎn)換成全球IP地址,才能和因特網(wǎng)連接。另外,這種通過使用少量的公有IP 地址代表較多的私有IP 地址的方式,將有助于減緩可用的IP地址空間的枯竭。

簡單來說,NAT技術(shù)就是實現(xiàn)局域網(wǎng)與互聯(lián)網(wǎng)通信的一項協(xié)議。NAT又可以分為三種不同的類型:

靜態(tài)NAT(Static NAT):靜態(tài)NAT設(shè)置起來最為簡單和最容易實現(xiàn)的一種,內(nèi)部網(wǎng)絡(luò)中的每個主機都被永久映射成外部網(wǎng)絡(luò)中的某個合法的地址。當(dāng)一個內(nèi)部主機必須被作為一個固定的外部地址訪問時,通過靜態(tài)NAT實現(xiàn)。

動態(tài)地址NAT(Pooled NAT):動態(tài)NAT則是在外部網(wǎng)絡(luò)中定 義了一系列的合法地址(地址池),采用動態(tài)分配的方法映射到內(nèi)部網(wǎng)絡(luò)。動態(tài)NAT轉(zhuǎn)換的工作過程是這樣的,當(dāng)有一個內(nèi)部主機需要訪問外網(wǎng)時,從公用IP地址池中取出一個可用的地址分配給該主機使用。當(dāng)通信完成后,所獲取的公用IP地址也被釋放回地址池中。外部公用IP在被分配給一個內(nèi)部主機通信使用時,該地址不能不能再次被分配給其他內(nèi)部主機使用。

網(wǎng)絡(luò)地址端口轉(zhuǎn)換NAPT(Port-Level NAT):NAPT是把內(nèi)部地址映射到外部網(wǎng)絡(luò)的一個IP地址的不同端口上。NAPT(Network Address Port Translation),即網(wǎng)絡(luò)端口地址轉(zhuǎn)換,可將多個內(nèi)部地址映射為一個合法公網(wǎng)地址,但以不同的協(xié)議端口號與不同的內(nèi)部地址相對應(yīng),也就是<內(nèi)部地址+內(nèi)部端口>與<外部地址+外部端口>之間的轉(zhuǎn)換。

IPV6協(xié)議

我們前面說的IP地址其實是IPV4,那么,為什么已經(jīng)有IPIV4了,還要來一個IPV4呢?原來是這樣的,早在上個世紀,人們就預(yù)料到IPV4地址枯竭的一天,為了解決這個問題,開始了IPV6的研發(fā)。

IPv6 (IP version 6)是為了根本解決IPv4地址耗盡的問題而被標(biāo)準(zhǔn)化的網(wǎng)際協(xié)議。IPv4的地址長度為4個8位字節(jié),即32比特。而IPv6的地址長度則是原來的4倍,即128比特,一般寫成8個16位字節(jié)??梢钥吹?,IPV6的地址是取之不盡,用之不竭的,那么現(xiàn)在為什么不把IPV4全部換成IPV6呢?

從IPV4切換到IPV6極其耗時,需要將網(wǎng)絡(luò)中所有主機和路由器的IP地址進行重新設(shè)置。當(dāng)互聯(lián)網(wǎng)廣泛普及后,替換所有IP地址會是更為艱巨的任務(wù)。

在現(xiàn)存的網(wǎng)絡(luò)中,既有IPV4又有IPV6,那么它們之間是怎么通信的呢?有兩種技術(shù):雙協(xié)議棧、隧道技術(shù),下面分別進行介紹:

雙協(xié)議棧:改變IP地址的首部,在首部進行轉(zhuǎn)換的過程中,IPV6的首部的部分信息會丟失,而且這種轉(zhuǎn)換的損失不可避免。

隧道技術(shù):何謂隧道技術(shù)了?其實完全可以通過字面的意思理解。下面還是以畫圖的方式幫助大家理解。隧道技術(shù)說白了就是數(shù)據(jù)在傳輸?shù)臅r候進行了另一種的封裝與解封,如圖數(shù)據(jù)由IPV6網(wǎng)絡(luò)進入到IPV4的網(wǎng)絡(luò),需要把IPV6的數(shù)據(jù)包封裝在IPV4的數(shù)據(jù)包里。

020bffae-4c30-11ee-a25d-92fbcf53809c.jpg

傳輸層

停止等待協(xié)議

什么是停止等待協(xié)議了?看完下面一張圖你可能就懂了

021e6676-4c30-11ee-a25d-92fbcf53809c.jpg

停止等待協(xié)議可以由以下三個部分組成:

無差錯情況:就像上面那個圖一樣,為了保證無差錯的情況,主機A還要繼續(xù)向主機B發(fā)送消息,就必須得到主機B的回復(fù)。

出現(xiàn)差錯:如果出現(xiàn)差錯,比如主機A一直沒有收到主機B的回復(fù),那么就會有一種機制,使得主機A把這條消息再一次發(fā)送給主機B。這中間涉及到一個重傳時間的選擇,這里得話,這個重傳時間應(yīng)該不小于RTT(主機A給主機B發(fā)送消息,主機B再給主機A發(fā)送消息的時間和)。

確認丟失和確認遲到:確認遲到和確認丟失,看看下面的這張圖你可能就明白了

022d7350-4c30-11ee-a25d-92fbcf53809c.jpg

數(shù)據(jù)在傳輸過程中可能會出現(xiàn)丟失和遲到的情況,對于丟失的數(shù)據(jù)進行重傳,對于遲到的數(shù)據(jù)不做處理。既然說到了停止等待協(xié)議,那我就不得不補充一下ARQ協(xié)議。是什么ARQ協(xié)議了?

ARQ協(xié)議就是發(fā)送方不必收到對上一條消息的確認,一次可以發(fā)出多個分組,這樣就提高了信道的利用,可以在某一時間內(nèi)傳送足夠的數(shù)據(jù)量。

UDP

UDP協(xié)議相對與TCP協(xié)議來說是相當(dāng)簡單的,傳輸層的重點自然也是TCP協(xié)議。下面先簡單解釋一下UDP協(xié)議。

UDP具有以下特點:

面向無連接的協(xié)議,進行不可靠的傳輸

面向數(shù)據(jù)報

沒有擁塞控制

UDP數(shù)據(jù)報首部開銷小

支持一對一,一對多,多對多,多對一的數(shù)據(jù)傳輸

TCP

TCP概述

TCP是傳輸層的另一個協(xié)議,它具有以下特點:

TCP協(xié)議是面向連接的傳輸層協(xié)議

提供可靠交付

使用全雙工通信

面向字節(jié)流

TCP數(shù)據(jù)報

請看下面的這張圖片(圖片來源于網(wǎng)絡(luò))。

0238abbc-4c30-11ee-a25d-92fbcf53809c.jpg

這里的話對數(shù)據(jù)報的某些字段作一下解釋:

源端口:發(fā)送主機的端口號

目的端口:接收主機的端口號

序號:在一個TCP連接中傳送的字節(jié)流中的每一個字節(jié)都按順序編號。字節(jié)流的起始序號必須在連接建立時設(shè)置。TCP數(shù)據(jù)報首部中的序號字段值則指的是本報文段所發(fā)送的數(shù)據(jù)的第一個字節(jié)的序號。

確認號:即期望收到對方下一個報文段的第一個數(shù)據(jù)字節(jié)的序號。若確認號為N,則表明:到序號N-1為止的所有數(shù)據(jù)都已正確收到。

數(shù)據(jù)偏移:它指出TCP報文段的數(shù)據(jù)起始處距離TCP報文段的起始處有多遠。

窗口:窗口字段明確指出了現(xiàn)在允許對方發(fā)送的數(shù)據(jù)量。窗口值經(jīng)常在動態(tài)變化著窗口指的是發(fā)送本報文段的一方的接收窗口(而不是自己的發(fā)送窗口)。

校驗和:檢驗和字段檢驗的范圍包括首部和數(shù)據(jù)這兩部分在計算檢驗和時,要在TCP報文段的前面加上12字節(jié)的偽首部(同UDP)

確認ACK:僅當(dāng)ACK=1時確認號字段才有效。當(dāng)ACK=0時,確認號無效。TCP規(guī)定,在連接建立后所有傳送的報文段都必須把ACK置1。

推送PUSH:當(dāng)兩個應(yīng)用進程進行交互式的通信時,有時在一端的應(yīng)用進程希望在鍵入一個命令后立即就能夠收到對方的響應(yīng),而不再等到整個緩存都填滿了后再向上交付。這時,發(fā)送方TCP把PSH置1,并立即創(chuàng)建一個報文段發(fā)送出去。接收方TCP收到PSH=1的報文段,就盡快地(即“推送”向前)交付接收應(yīng)用進程。

復(fù)位RST:當(dāng)RST=1時,表明TCP連接中出現(xiàn)嚴重差錯(如由于主機崩潰或其他原因),必須釋放連接,然后再重新建立運輸連接。

SNY:在連接建立時用來同步序號當(dāng)SYN=1而ACK=0時,表明這是一個連接請求報文段。

FIN:用來釋放一個連接。

滑動窗口

TCP進行數(shù)據(jù)發(fā)送,為了提高數(shù)據(jù)傳輸?shù)男?,采用了一種叫做滑動窗口的機制來進行數(shù)據(jù)發(fā)送。

下面是發(fā)送端滑動窗口的示意圖,滑動窗口的大小是綠色部分和紅色部分的序列長度。它工作的機制是這樣的,一旦發(fā)送端收到一個確認,滑動窗口就會向右移動。

0249e6d4-4c30-11ee-a25d-92fbcf53809c.jpg

流量控制

關(guān)于流量控制,用一句簡短的話就可以概括。

接收端會給發(fā)送端一個負反饋,通過這個負反饋可以控制發(fā)送端的滑動窗口的大小。

下面可以看一下知乎上是怎么說的,我找了一條講的最形象,可以結(jié)合著理解一下。

02586222-4c30-11ee-a25d-92fbcf53809c.jpg

026edf0c-4c30-11ee-a25d-92fbcf53809c.jpg

擁塞控制

慢啟動:慢啟動值得就是一條TCP鏈接剛建立時不要一下發(fā)送大量數(shù)據(jù)導(dǎo)致網(wǎng)絡(luò)擁塞激增,而是由小到大根據(jù)反饋逐漸增大擁塞窗口。

擁塞避免:擁塞避免就是讓滑動窗口緩慢增大,而不是像慢開始那樣成倍增長。

快重傳:發(fā)送方只要一連收到三個重復(fù)確認就應(yīng)當(dāng)立即重傳對方尚未收到的報文段,而不必繼續(xù)等待設(shè)置的重傳計時器到期。

快恢復(fù):快恢復(fù)具有下面兩個特點

當(dāng)發(fā)送方連續(xù)收到三個重復(fù)確認時,就執(zhí)行 “乘法減小” 算法,把慢開始門限減半。這是為了預(yù)防網(wǎng)絡(luò)發(fā)生擁塞。注意,接下去不執(zhí)行慢開始算法。

執(zhí)行快恢復(fù)算法時,改變滑動窗口的值,然后開始執(zhí)行擁塞避免算法,使得擁塞窗口緩慢性增大。

三次握手

三次握手與四次揮手可以說是面試??嫉闹R點了,不過在介紹三次握手之前,我覺得有必要了解一下理想傳輸條件的共性:

傳輸信道不產(chǎn)生差錯

不管發(fā)送方以多快的速度發(fā)送數(shù)據(jù),接收方總是能夠及時接收數(shù)據(jù)。

理想的情況終究是理想的,上述兩種情況在實際環(huán)境是不可能發(fā)生的。那么,我們就來說說怎樣使得我們的實際情況更加接近理想,這就是我們接下來要講的三次握手。

首先,三次握手和后面要講的四次揮手都是針對TCP來說的,UDP是面向無連接的協(xié)議,不可能存在的三次握手與四次揮手。三次握手與四次揮手是為了更好進行可靠的傳輸,下面先看下面三次握手的流程圖。

02847182-4c30-11ee-a25d-92fbcf53809c.jpg

既然是為了進行可靠的傳輸,無非是要保證客戶端與服務(wù)器之間的數(shù)據(jù)發(fā)送和接收的正常進行。

第一次握手:Client 什么都不能確認;Server 確認了Client發(fā)送正常。

第二次握手:Client 確認了:自己發(fā)送、接收正常,對方發(fā)送、接收正常;Server 確認了:自己接收正常,Client發(fā)送正常。

第三次握手:Client 確認了:自己發(fā)送、接收正常,對方發(fā)送、接收正常;Server 確認了:自己發(fā)送、接收正常,對方發(fā)送接收正常。

為什么需要進行第三次握手了?一句話,主要防止已經(jīng)失效的連接請求報文突然又傳送到了服務(wù)器,從而產(chǎn)生錯誤。

通過上面的三個步驟,Client和Server能夠進行可靠的傳輸,缺一不可。

四次揮手

既然理解了三次握手,想必四次揮手也沒有啥難度,先把流程圖附上。

02922dfe-4c30-11ee-a25d-92fbcf53809c.jpg

如同三次揮手一樣,四次揮手也是為了可靠的傳輸。四次揮手就是Client和Server斷開連接的過程,那么你可能會覺得,建立連接的過程需要三次到還可以理解,為啥連斷開連接都需要四次。難道一次或者兩次就不可以了嗎?

是這樣的,既然三次握手的需要發(fā)送方和接收方確認,那么四次揮手也要得到發(fā)送方和接收方的確認。

第一次揮手:Client向Server發(fā)送斷開的連接的請求。

第二次揮手:Server向Client發(fā)送斷開連接的確認。Client收到以后,這個時候TCP進入了半連接的狀態(tài),從Client向Server發(fā)送數(shù)據(jù)的通道被關(guān)閉了。

第三次揮手:Server向Client發(fā)送一個斷開連接的請求。

第四次揮手:Client向Server發(fā)送斷開連接的確認。Server收到以后,這個時候TCP連接就完全斷開了。

也可以這樣考慮,上面提到的問題。假如在第二次揮手的時候,Server在給Client發(fā)送ACK的同時,也發(fā)送了FIN的請求。那么如果,Server還在接收從Client傳輸過來的數(shù)據(jù),則會因為Client的下一個ACK而關(guān)閉接收數(shù)據(jù)的通道,數(shù)據(jù)就會接收失敗就像下面的這個圖那樣。

02b7d784-4c30-11ee-a25d-92fbcf53809c.jpg

TCP與UDP的應(yīng)用場景

至于TCP與UDP的關(guān)系,看完下面的這張圖你可能就懂了(圖片來源于網(wǎng)絡(luò)):

02ce059a-4c30-11ee-a25d-92fbcf53809c.jpg

TCP是可靠的傳輸,UDP是不可靠的傳輸,那為什么我們還需要使用不可靠的UDP進行數(shù)據(jù)傳輸呢?

我們知道,UDP 在傳送數(shù)據(jù)之前不需要先建立連接,遠地主機在收到 UDP 報文后,不需要給出任何確認。雖然 UDP 不提供可靠交付,但在某些情況下 UDP 確是一種最有效的工作方式(一般用于即時通信),比如:QQ 語音、 QQ 視頻 、直播等等。

TCP 提供面向連接的服務(wù)。在傳送數(shù)據(jù)之前必須先建立連接,數(shù)據(jù)傳送結(jié)束后要釋放連接。TCP 不提供廣播或多播服務(wù)。由于 TCP 要提供可靠的,面向連接的運輸服務(wù)(TCP的可靠體現(xiàn)在TCP在傳遞數(shù)據(jù)之前,會有三次握手來建立連接,而且在數(shù)據(jù)傳遞時,有確認、窗口、重傳、擁塞控制機制,在數(shù)據(jù)傳完后,還會斷開連接用來節(jié)約系統(tǒng)資源),這一難以避免增加了許多開銷,如確認,流量控制,計時器以及連接管理等。這不僅使協(xié)議數(shù)據(jù)單元的首部增大很多,還要占用許多處理機資源。TCP 一般用于文件傳輸、發(fā)送和接收郵件、遠程登錄等場景。

應(yīng)用層

HTTP協(xié)議

關(guān)于HTTP的定義,可以看一下維基百科上是怎么說的:

在網(wǎng)頁瀏覽器的地址欄上顯示HTTP網(wǎng)絡(luò)協(xié)議的插圖HTTP是一個客戶端(用戶)和服務(wù)端(網(wǎng)站)之間請求和應(yīng)答的標(biāo)準(zhǔn),通常使用TCP協(xié)議。通過使用網(wǎng)頁瀏覽器、網(wǎng)絡(luò)爬蟲或者其它的工具,客戶端發(fā)起一個HTTP請求到服務(wù)器上指定端口(默認端口為80)。我們稱這個客戶端為用戶代理程序(user agent)。應(yīng)答的服務(wù)器上存儲著一些資源,比如HTML文件和圖像。我們稱這個應(yīng)答服務(wù)器為源服務(wù)器(origin server)。

http協(xié)議現(xiàn)在已經(jīng)廣泛用于萬維網(wǎng),關(guān)于http,后面單獨那個文章出來講,不過現(xiàn)在得先說一下https。

其實http和https是一種協(xié)議,只不過https經(jīng)過了SSL(Secure Socket Layer,安全套接字層)或TLS(Transport Layer Security,傳輸層安全)的封裝。單從這兩個協(xié)議就可以知道,https安全的,而http是不安全的。

FTP協(xié)議

FTP(File Transfer Protocol)文件傳輸協(xié)議,在TCP/IP協(xié)議族中屬于應(yīng)用層協(xié)議運行于TCP協(xié)議之上是一種可靠的傳輸協(xié)議,主要功能用于實現(xiàn)用戶間文件分發(fā)共享,以及網(wǎng)絡(luò)管理者在進行設(shè)備版本升級、日志下載和配置保存等業(yè)務(wù)操作時,均會使用到FTP功能。

DNS協(xié)議

前面說到IP地址是用來定位主機的,但是我們在生活中是很難記住這些沒有規(guī)律的IP地址,我們只知道網(wǎng)站的域名。那現(xiàn)在要怎么辦了?

于是DNS協(xié)議出現(xiàn)了。

02de79f2-4c30-11ee-a25d-92fbcf53809c.jpg

DNS是域名解析協(xié)議,假如我們知道了域名,但是不知道服務(wù)器的IP地址,就需要用到DNS協(xié)議。

DHCP協(xié)議

什么是DHCP協(xié)議了?還是看看維基上的定義

動態(tài)主機設(shè)置協(xié)議(DHCP)是一種使網(wǎng)絡(luò)管理員能夠集中管理和自動分配IP網(wǎng)絡(luò)地址的通信協(xié)議。在IP網(wǎng)絡(luò)中,每個連接Internet的設(shè)備都需要分配唯一的IP地址。DHCP使網(wǎng)絡(luò)管理員能從中心結(jié)點監(jiān)控和分配IP地址。當(dāng)某臺計算機移到網(wǎng)絡(luò)中的其它位置時,能自動收到新的IP地址。

維基上已經(jīng)解釋的非常清楚了,DHCP的作用就是動態(tài)地給主機分配IP地址,大大減少了網(wǎng)絡(luò)管理員的工作負擔(dān)。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 通信技術(shù)
    +關(guān)注

    關(guān)注

    20

    文章

    1154

    瀏覽量

    93270
  • 互聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    55

    文章

    11251

    瀏覽量

    106474
  • 計算機
    +關(guān)注

    關(guān)注

    19

    文章

    7663

    瀏覽量

    90827
  • 網(wǎng)絡(luò)
    +關(guān)注

    關(guān)注

    14

    文章

    7815

    瀏覽量

    90973

原文標(biāo)題:應(yīng)用層

文章出處:【微信號:通信弱電交流學(xué)習(xí),微信公眾號:通信弱電交流學(xué)習(xí)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    計算機網(wǎng)絡(luò)基礎(chǔ)教程pdf

    計算機網(wǎng)絡(luò)基礎(chǔ)教程pdf第8章計算機網(wǎng)絡(luò)基礎(chǔ)8.1 計算機網(wǎng)絡(luò)基礎(chǔ)知識8.2 計算機局域網(wǎng)技術(shù)8.3 Windows 2000
    發(fā)表于 08-04 22:28

    謝希仁計算機網(wǎng)絡(luò)課件

    謝希仁計算機網(wǎng)絡(luò)課件計算機網(wǎng)絡(luò)教程謝希仁(電子書)第 1 章   概述1.1  計算機網(wǎng)絡(luò)在信息時代中的作用1.2 
    發(fā)表于 10-23 16:32

    計算機網(wǎng)絡(luò)基礎(chǔ)

    計算機網(wǎng)絡(luò)基礎(chǔ)——基礎(chǔ)
    發(fā)表于 06-16 07:50

    計算機網(wǎng)絡(luò)的定義和分類

    計算機網(wǎng)絡(luò)技術(shù)本文來自于學(xué)習(xí)通中的資料,我只是負責(zé)整理(copy and paste),侵刪文章目錄計算機網(wǎng)絡(luò)技術(shù)第一章-計算機網(wǎng)絡(luò)引論1.1 計算機網(wǎng)絡(luò)的定義和分類1.2
    發(fā)表于 07-21 06:27

    計算機網(wǎng)絡(luò)概述

    技術(shù)小白要崛起——【計算機網(wǎng)絡(luò)】學(xué)習(xí)【1】第一章:計算機網(wǎng)絡(luò)概述基礎(chǔ)概念計算機數(shù)據(jù)通信過程OSI參考模型TCP/IP協(xié)議和OSI參考模型計算機網(wǎng)絡(luò)的性能舉個栗子第一章:
    發(fā)表于 07-22 06:26

    計算機網(wǎng)絡(luò)基礎(chǔ)知識了解

    計算機網(wǎng)絡(luò)技術(shù)復(fù)習(xí)一、 計算機網(wǎng)絡(luò)基礎(chǔ)知識了解:計算機網(wǎng)絡(luò)(Internet)的發(fā)展 面向終端的計算機網(wǎng)絡(luò)(單個
    發(fā)表于 07-26 06:27

    計算機網(wǎng)絡(luò)基礎(chǔ)

    計算機網(wǎng)絡(luò)基礎(chǔ)8.1 計算機網(wǎng)絡(luò)基礎(chǔ)知識8.2 計算機局域網(wǎng)技術(shù)8.3 Windows 2000網(wǎng)絡(luò)功能8.4 因特網(wǎng)(Internet)基
    發(fā)表于 08-04 22:25 ?0次下載

    計算機網(wǎng)絡(luò)工程技術(shù)

    重點:計算機網(wǎng)絡(luò)的產(chǎn)生和發(fā)展計算機網(wǎng)絡(luò)的分類計算機網(wǎng)絡(luò)的工作模式計算機網(wǎng)絡(luò)的應(yīng)用難點:計算機網(wǎng)絡(luò)的分類
    發(fā)表于 05-09 11:50 ?22次下載

    計算機網(wǎng)絡(luò)應(yīng)用基礎(chǔ)

    計算機網(wǎng)絡(luò)計算機技術(shù)與通信技術(shù)相互滲透、密切結(jié)合而形成的一門跨學(xué)科的科學(xué);􀂄計算機網(wǎng)絡(luò)已經(jīng)成為軟件編程的基本環(huán)境;􀂄計算機網(wǎng)絡(luò)教學(xué)已經(jīng)成為
    發(fā)表于 05-15 10:05 ?14次下載

    計算機網(wǎng)絡(luò)技術(shù)講義

    第1章 計算機網(wǎng)絡(luò)概論1.1 計算機網(wǎng)絡(luò)的定義、演變和發(fā)展1.2 計算機網(wǎng)絡(luò)的功能與應(yīng)用第2章 計算機網(wǎng)絡(luò)基礎(chǔ)知識2.1 數(shù)據(jù)通信技術(shù)2.2
    發(fā)表于 05-15 10:12 ?27次下載

    計算機網(wǎng)絡(luò)基礎(chǔ)

    計算機網(wǎng)絡(luò)概述數(shù)據(jù)通信基礎(chǔ)知識計算機網(wǎng)絡(luò)的硬件與軟件組成局域網(wǎng)網(wǎng)絡(luò)互聯(lián)中國互聯(lián)網(wǎng)絡(luò)的發(fā)展
    發(fā)表于 05-15 10:15 ?26次下載

    計算機網(wǎng)絡(luò)概論

    計算機網(wǎng)絡(luò)概論:本章學(xué)習(xí)目標(biāo)1.1  計算機網(wǎng)絡(luò)的產(chǎn)生與發(fā)展1.2  計算機網(wǎng)絡(luò)的定義和組成1.3  計算機網(wǎng)絡(luò)的功能和應(yīng)用1.4 
    發(fā)表于 06-27 21:39 ?0次下載

    計算機網(wǎng)絡(luò)的功能和應(yīng)用

    1.3  計算機網(wǎng)絡(luò)的功能和應(yīng)用1.3.1  計算機網(wǎng)絡(luò)的功能1.3.2  計算機網(wǎng)絡(luò)的應(yīng)用1.3.1  計算機網(wǎng)絡(luò)的功能1.通信功能2.資源共
    發(fā)表于 06-27 21:41 ?0次下載

    實現(xiàn)擴展計算機網(wǎng)絡(luò)設(shè)計軟件系統(tǒng)

    基于實現(xiàn)可擴展計算機網(wǎng)絡(luò)技術(shù)軟件系統(tǒng)開發(fā)設(shè)計的目的;通過對計算機網(wǎng)絡(luò)設(shè)計軟件系統(tǒng)知識結(jié)構(gòu)進行分析,并指出面向?qū)ο蠓椒ǖ囊环N網(wǎng)絡(luò)設(shè)計過程;結(jié)合OSI網(wǎng)
    發(fā)表于 11-02 11:30 ?0次下載
    實現(xiàn)擴展<b class='flag-5'>計算機網(wǎng)絡(luò)</b>設(shè)計軟件系統(tǒng)

    計算機網(wǎng)絡(luò)知識科普:STP/RSTP/MSTP技術(shù)

    上次有寫過一篇《圖解 STP 》的文章,里面有提到STP的功能是消除環(huán)路和鏈路備份,同時也發(fā)現(xiàn) STP 的一些問題。
    的頭像 發(fā)表于 09-01 10:32 ?7138次閱讀
    <b class='flag-5'>計算機網(wǎng)絡(luò)</b><b class='flag-5'>知識</b><b class='flag-5'>科普</b>:STP/RSTP/MSTP技術(shù)