溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

計(jì)算機(jī)網(wǎng)絡(luò)學(xué)習(xí)(4):網(wǎng)絡(luò)協(xié)議與標(biāo)準(zhǔn)

發(fā)布時(shí)間:2020-07-29 18:55:49 來(lái)源:網(wǎng)絡(luò) 閱讀:1307 作者:lengxujun 欄目:網(wǎng)絡(luò)安全

最知名的網(wǎng)絡(luò)協(xié)議就是TCP/IP協(xié)議了。事實(shí)上,TCP/IP協(xié)議是一個(gè)協(xié)議集,由很多協(xié)議組成。TCP和IP

協(xié)議是這個(gè)協(xié)議集中兩個(gè),TCP/IP協(xié)議集是用這兩個(gè)協(xié)議來(lái)命名的。

TCP/IP協(xié)議集中的每一個(gè)協(xié)議涉及的功能,都用程序來(lái)實(shí)現(xiàn)。TCP協(xié)議和IP協(xié)議有對(duì)應(yīng)的TCP程序和IP程

序。

 

根據(jù)TCP協(xié)議我們了解到,網(wǎng)絡(luò)協(xié)議是一個(gè)約定,該約定規(guī)定了:

① 實(shí)現(xiàn)這個(gè)協(xié)議的程序要完成什么功能;

② 如何完成這個(gè)功能;

③ 實(shí)現(xiàn)這個(gè)功能需要的通訊的報(bào)文包的格式。

 

如果一個(gè)網(wǎng)絡(luò)協(xié)議涉及了硬件的功能,通常就被叫做標(biāo)準(zhǔn),而不再稱為協(xié)議了。網(wǎng)絡(luò)標(biāo)準(zhǔn)還需要約定硬

件的物理尺寸和電氣特性。

 

ISO發(fā)布了注明的開(kāi)放系統(tǒng)互聯(lián)參考模型(Open System Interconnection Reference Model),簡(jiǎn)稱OSI。

OSI模型詳細(xì)規(guī)定了網(wǎng)絡(luò)需要實(shí)現(xiàn)的功能、實(shí)現(xiàn)這些功能的方法、以及通訊報(bào)文包的格式。但是,沒(méi)有

一個(gè)廠家遵循OSI模型來(lái)開(kāi)發(fā)網(wǎng)絡(luò)產(chǎn)品。不論是網(wǎng)絡(luò)操作系統(tǒng)還是網(wǎng)絡(luò)設(shè)備,不是遵循廠家自己制訂的

協(xié)議(Novell公司的Novell協(xié)議,蘋(píng)果公司的AppleTalk、微軟公司的NetBEUI、IBM公司的SNA),就是

遵循某個(gè)政府部門(mén)制訂的協(xié)議(如TCP/IP協(xié)議)。而現(xiàn)在TCP/IP已經(jīng)占主流。

 

4.1 OSI模型

    計(jì)算機(jī)網(wǎng)絡(luò)學(xué)習(xí)(4):網(wǎng)絡(luò)協(xié)議與標(biāo)準(zhǔn)

    圖4.1 OSI模型的7層協(xié)議

 

    當(dāng)需要把一個(gè)數(shù)據(jù)文件發(fā)送往另外一個(gè)主機(jī)之前,這個(gè)數(shù)據(jù)要經(jīng)歷這7層協(xié)議每一層的加工。例如我

    們要把一封郵件發(fā)送往服務(wù)器,當(dāng)我們?cè)贠utlook中編輯完成,按發(fā)送鍵后,Outlook就會(huì)把我們的

    郵件交給第7層中按POP3或SMTP協(xié)議編寫(xiě)的程序。POP3或SMTP程序按自己的協(xié)議整理數(shù)據(jù)格式,然后

    發(fā)給下面層的某個(gè)程序。每個(gè)層(除了物理層,它是硬件電路和網(wǎng)線,不再加工數(shù)據(jù))也會(huì)對(duì)數(shù)據(jù)

    格式做一些加工,還會(huì)用報(bào)頭的形式增加一些信息。經(jīng)過(guò)加工后的數(shù)據(jù)以幀的形式交給物理層,物

    理層的電路再以位流的形式發(fā)送數(shù)據(jù)到網(wǎng)絡(luò)中。

    接受方的過(guò)程是相反的,物理層接收到數(shù)據(jù)后,以相反的順序遍歷OSI的所有層,使接收方收到這個(gè)

    電子郵件。接收方的主機(jī),每一層都會(huì)閱讀本層對(duì)應(yīng)的報(bào)頭,拆除自己層的報(bào)頭把數(shù)據(jù)傳送給上一

    層。

 

    計(jì)算機(jī)網(wǎng)絡(luò)學(xué)習(xí)(4):網(wǎng)絡(luò)協(xié)議與標(biāo)準(zhǔn)

    圖4.2 OSI模型的7層協(xié)議功能描述

 

4.2 TCP/IP協(xié)議

    計(jì)算機(jī)網(wǎng)絡(luò)學(xué)習(xí)(4):網(wǎng)絡(luò)協(xié)議與標(biāo)準(zhǔn)

    圖4.3 OSI模型和TCP/IP協(xié)議集模型對(duì)比

    

    TCP/IP協(xié)議是一個(gè)協(xié)議集,它由十幾個(gè)協(xié)議組成。

    

    計(jì)算機(jī)網(wǎng)絡(luò)學(xué)習(xí)(4):網(wǎng)絡(luò)協(xié)議與標(biāo)準(zhǔn)

    圖4.4 TCP/IP協(xié)議集中的各個(gè)協(xié)議

 

    主要的TCP/IP協(xié)議有:

    . 應(yīng)用層:FTP,TFTP,Http,SMTP,POP3,SNMP,DNS,Telnet

    . 傳輸層:TCP,UDP

    . 網(wǎng)絡(luò)層:IP,ARP,RARP,ICMP,RIP,IGRP,OSPF

    

    4.2.1 應(yīng)用層協(xié)議

          FTP:文件傳輸協(xié)議。用于主機(jī)間文件交換。FTP使用TCP協(xié)議進(jìn)行數(shù)據(jù)傳輸,是一個(gè)可靠的、

               面向連接的協(xié)議。FTP支持二進(jìn)制文件和ASCII協(xié)議。

          TFTP:簡(jiǎn)單的文件傳輸協(xié)議。它比FTP簡(jiǎn)易,是一個(gè)非面向連接的協(xié)議,使用UDP進(jìn)行傳輸,

                因此傳送速度更快。該協(xié)議多用于局域網(wǎng)中,交換機(jī)和路由器把自己的配置文件傳

                送到主機(jī)上。

          SMTP:簡(jiǎn)單郵件傳輸協(xié)議。

          POP3:郵件傳輸協(xié)議,比SMTP更科學(xué),本不屬于TCP/IP協(xié)議集。

          Telnet:遠(yuǎn)程終端仿真協(xié)議。可以使一臺(tái)主機(jī)遠(yuǎn)程登錄到其他機(jī)器,成為那臺(tái)遠(yuǎn)程主機(jī)的顯

                  示和鍵盤(pán)終端。

          DNS:域名解析協(xié)議。根據(jù)域名,解析出對(duì)應(yīng)的IP地址。

          SNMP:簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議。網(wǎng)管工作站搜集、了解網(wǎng)絡(luò)中交換機(jī)、路由器等設(shè)備的工作狀態(tài)

                所使用的協(xié)議。

          NFS:網(wǎng)絡(luò)文件系統(tǒng)協(xié)議。允許網(wǎng)絡(luò)上的其他主機(jī)共享某臺(tái)機(jī)器目錄的協(xié)議。

    

    4.2.2 傳輸層協(xié)議

          TCP/IP協(xié)議集在傳輸層只有兩個(gè)協(xié)議:傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報(bào)協(xié)議(UDP)。

 

          TCP協(xié)議要完成5個(gè)主要功能:

          . 端口地址尋址;

          . 連接的建立、維護(hù)與拆除;

          . 流量控制;

          . 出錯(cuò)重發(fā);

          . 數(shù)據(jù)分段。

 

          (1) 端口地址尋址

              端口地址到底有什么用呢?當(dāng)數(shù)據(jù)報(bào)到達(dá)主機(jī)后,鏈路層的程序會(huì)通過(guò)數(shù)據(jù)報(bào)的幀報(bào)尾

              進(jìn)行CRC校驗(yàn),校驗(yàn)合格的數(shù)據(jù)幀被去掉幀報(bào)頭向上交給IP程序。IP程序去掉報(bào)頭后,

              再向上把數(shù)據(jù)交給TCP程序。待TCP程序把TCP報(bào)頭去掉后,它把數(shù)據(jù)交給誰(shuí)呢?這時(shí),

              TCP程序就可以通過(guò)TCP報(bào)頭中由源主機(jī)指出的端口地址,了解到發(fā)送主機(jī)希望目標(biāo)主機(jī)

              的什么應(yīng)用程序接收這個(gè)數(shù)據(jù)報(bào)。

              因此,端口地址尋址是對(duì)應(yīng)用層程序?qū)ぶ?/span>。

 

              計(jì)算機(jī)網(wǎng)絡(luò)學(xué)習(xí)(4):網(wǎng)絡(luò)協(xié)議與標(biāo)準(zhǔn)

              圖4.5 常用端口地址

 

              詳細(xì)的端口號(hào)編排可以在TCP/IP的注釋RFC1700查到。

              TCP/IP規(guī)定端口號(hào)的編排方法:

              低于255的編號(hào):用于FTP、Http這樣的公共應(yīng)用層協(xié)議。

              255到1023的編號(hào):提供給操作系統(tǒng)開(kāi)發(fā)公司,為市場(chǎng)化的應(yīng)用層協(xié)議編號(hào)。

              大于1023的編號(hào):普通應(yīng)用程序。

              端口號(hào)的編碼范圍從0到65535。從1024到49151的地址范圍需要注冊(cè)使用,49152到

              65535的地址范圍可以自由使用。

 

              端口地址被源主機(jī)在數(shù)據(jù)發(fā)送前封裝在其TCP報(bào)頭或UDP報(bào)頭中。圖4.6給出了TCP報(bào)頭

              的格式:

              計(jì)算機(jī)網(wǎng)絡(luò)學(xué)習(xí)(4):網(wǎng)絡(luò)協(xié)議與標(biāo)準(zhǔn)

              圖4.6 TCP報(bào)頭格式

 

              計(jì)算機(jī)網(wǎng)絡(luò)中約定,當(dāng)一臺(tái)主機(jī)向另一臺(tái)主機(jī)發(fā)出連接請(qǐng)求時(shí),這臺(tái)發(fā)送請(qǐng)求的機(jī)器被

              視為客戶機(jī),而那臺(tái)接受請(qǐng)求的機(jī)器被視為服務(wù)器。通常,客戶機(jī)在給自己的程序編端

              口號(hào)時(shí),隨機(jī)使用一個(gè)大于1023的編號(hào)。例如一臺(tái)主機(jī)訪問(wèn)WWW服務(wù)器,在其TCP報(bào)頭中

              的源端口地址封裝為1391,目標(biāo)端口地址則需要為80,指明與Http通訊。

              

          (2) TCP連接的建立、維護(hù)與拆除

              TCP協(xié)議是一個(gè)面向連接的協(xié)議,所謂面向連接,是指一臺(tái)主機(jī)需要和另外一臺(tái)主機(jī)通

              訊時(shí),需先呼叫對(duì)方,請(qǐng)求與對(duì)方建立連接,只有對(duì)方同意,才能開(kāi)始通訊。

              所謂呼叫,就是連接的發(fā)起方發(fā)送一個(gè)“建立連接請(qǐng)求”的報(bào)文給對(duì)方,對(duì)方如果同

              意這個(gè)連接,就簡(jiǎn)單的發(fā)回一個(gè)“連接響應(yīng)”的應(yīng)答包,連接就建立起來(lái)了。

              圖4.7描述了TCP建立連接的過(guò)程。

              計(jì)算機(jī)網(wǎng)絡(luò)學(xué)習(xí)(4):網(wǎng)絡(luò)協(xié)議與標(biāo)準(zhǔn)

              圖4.7 建立TCP連接

 

              主機(jī)A希望與主機(jī)B建立連接以交換數(shù)據(jù),它的TCP程序首先構(gòu)造一個(gè)請(qǐng)求連接報(bào)文包給對(duì)

              方,請(qǐng)求連接包的TCP報(bào)頭中報(bào)文性質(zhì)碼標(biāo)志為SYN(見(jiàn)圖4.8),聲明是一個(gè)“連接請(qǐng)求

              包”。主機(jī)B的TCP程序收到主機(jī)A的連接請(qǐng)求后,如果同意這個(gè)連接,就發(fā)回一個(gè)“確

              認(rèn)連接包”,應(yīng)答A主機(jī)。主機(jī)B的“確認(rèn)連接包”的TCP報(bào)頭中的報(bào)文性質(zhì)碼標(biāo)志為

              ACK。

              

              計(jì)算機(jī)網(wǎng)絡(luò)學(xué)習(xí)(4):網(wǎng)絡(luò)協(xié)議與標(biāo)準(zhǔn)

              圖4.8 SYN標(biāo)志位和ACK標(biāo)志位

              

              SYN和ACK是TCP報(bào)頭中報(bào)文性質(zhì)碼的連接標(biāo)志位(見(jiàn)圖4.8),建立連接時(shí),SYN標(biāo)志置

              1,ACK標(biāo)志置0,表示本報(bào)文包是個(gè)同步包;確認(rèn)連接包,ACK置1,SYN置1,表示本報(bào)

              文包是確認(rèn)包。

 

              從圖4.7可以看到,建立連接的第3個(gè)包,是主機(jī)A對(duì)主機(jī)B的連接確認(rèn)。主機(jī)A為什么要發(fā)

              送第3個(gè)包呢?

              注:這里的第3個(gè)包是這樣計(jì)算得來(lái)的:主機(jī)A連接請(qǐng)求包是第1個(gè)包,主機(jī)B的應(yīng)答包是

                  第2個(gè)包,主機(jī)A收到主機(jī)B的應(yīng)答包后再發(fā)的包(ACK=y+1)就是第3個(gè)包了。

              繼續(xù)討論為什么要發(fā)第3個(gè)包。考慮這樣一種情況:主機(jī)A發(fā)送一個(gè)請(qǐng)求包,但這個(gè)請(qǐng)求

              包在傳輸過(guò)程中丟失主機(jī)A再重發(fā)連接請(qǐng)求包,第2個(gè)連接請(qǐng)求包到達(dá)主機(jī)B,保證了

              連接的建立。但是如果連接請(qǐng)求包沒(méi)有丟失而只是網(wǎng)絡(luò)慢而導(dǎo)致主機(jī)A超時(shí)呢?這就會(huì)

              使主機(jī)B收到兩個(gè)連接請(qǐng)求包,使主機(jī)B誤以為第2個(gè)連接請(qǐng)求是主機(jī)A的又一個(gè)請(qǐng)求。第

              3個(gè)確認(rèn)包就是為防止這樣的錯(cuò)誤而設(shè)計(jì)的。這樣的連接機(jī)制被稱為三次握手

              從TCP程序設(shè)計(jì)的深層看,源主機(jī)發(fā)送“連接請(qǐng)求包”是為了觸發(fā)對(duì)方主機(jī)的TCP程序開(kāi)

              辟一個(gè)對(duì)應(yīng)的TCP進(jìn)程。你的主機(jī)可以邀請(qǐng)對(duì)方開(kāi)辟多個(gè)TCP進(jìn)程,同時(shí)進(jìn)行多路通訊。

              FLOOD******就是采用無(wú)休止的邀請(qǐng)對(duì)方建立連接,使對(duì)方主機(jī)開(kāi)辟無(wú)數(shù)個(gè)TCP進(jìn)程與

              之連接,最后耗盡對(duì)方主機(jī)資源。

 

              可以理解,當(dāng)通訊結(jié)束時(shí),發(fā)起連接的主機(jī)應(yīng)該發(fā)送拆除連接的報(bào)文包,通知對(duì)方主機(jī)

              關(guān)閉響應(yīng)的TCP進(jìn)程,釋放資源。拆除連接報(bào)文包的TCP報(bào)頭中,報(bào)文性質(zhì)碼的FIN標(biāo)志

              置1。

              為了防止連接雙方的一側(cè)出現(xiàn)故障后異常關(guān)機(jī),而另外一方的TCP進(jìn)程無(wú)休止地駐留,任

              何一方如果發(fā)現(xiàn)對(duì)方長(zhǎng)時(shí)間沒(méi)有通訊流量,就會(huì)拆除連接

              但是有時(shí)確實(shí)有一段時(shí)間沒(méi)有流量,但還需要保持連接,就需要發(fā)送空的報(bào)文包,以維

              持這個(gè)連接。維持連接的報(bào)文包叫:keepalive。為了在一段時(shí)間內(nèi)沒(méi)有數(shù)據(jù)發(fā)送但還

              需要保持連接而發(fā)送keepalive包,被稱為連接的維護(hù)。

 

          (3) TCP報(bào)頭中的報(bào)文序號(hào)

              TCP是將應(yīng)用層交給的數(shù)據(jù)分段發(fā)送的。為了支持?jǐn)?shù)據(jù)出錯(cuò)重發(fā)和數(shù)據(jù)段組裝,TCP為

              每個(gè)數(shù)據(jù)段封裝的報(bào)頭中,設(shè)計(jì)了兩個(gè)數(shù)據(jù)報(bào)序號(hào)字段,分別稱為發(fā)送序號(hào)確認(rèn)序

              號(hào)

              

              出錯(cuò)重發(fā)是指一旦發(fā)現(xiàn)有丟失的數(shù)據(jù)段,可以重發(fā)丟失的數(shù)據(jù),以保證數(shù)據(jù)傳輸?shù)耐暾?/span>

              性。如果數(shù)據(jù)沒(méi)有分段,出錯(cuò)后源主機(jī)就不得不重發(fā)整個(gè)數(shù)據(jù)。為了確認(rèn)丟失的數(shù)據(jù)是

              哪個(gè)數(shù)據(jù)段,報(bào)文就需要安裝序號(hào)。

              

              數(shù)據(jù)分段可以使報(bào)文在網(wǎng)絡(luò)中的傳輸非常靈活。一個(gè)數(shù)據(jù)的各個(gè)分段,可以選擇不同的

              路徑到達(dá)目標(biāo)主機(jī)。由于網(wǎng)絡(luò)中各條路徑在傳輸速度上不一致性,有可能前面發(fā)出的數(shù)

              據(jù)段后到達(dá),而后出發(fā)的數(shù)據(jù)段先到達(dá)。為了使目標(biāo)主機(jī)能夠按照正確的次序重新裝配

              數(shù)據(jù),也需要在數(shù)據(jù)段的報(bào)頭中安裝序號(hào)。

              

              TCP報(bào)頭中的第3,4個(gè)字段分別是發(fā)送序號(hào)和確認(rèn)序號(hào)。發(fā)送序號(hào)是指本數(shù)據(jù)段是第幾個(gè)

              報(bào)文包,確認(rèn)序號(hào)是指對(duì)方發(fā)來(lái)的下一個(gè)數(shù)據(jù)段該是第幾號(hào)段。


              計(jì)算機(jī)網(wǎng)絡(luò)學(xué)習(xí)(4):網(wǎng)絡(luò)協(xié)議與標(biāo)準(zhǔn)

              圖4.9 發(fā)送序號(hào)與確認(rèn)序號(hào)

 

          (4) PAR出錯(cuò)重發(fā)機(jī)制

              在網(wǎng)絡(luò)中有兩種情況會(huì)丟失數(shù)據(jù)包。如果網(wǎng)絡(luò)設(shè)備的負(fù)荷太大,當(dāng)其數(shù)據(jù)包緩沖區(qū)滿的

              時(shí)候,就會(huì)丟失數(shù)據(jù)包。另外一種情況是,如果在傳輸中因?yàn)樵肼暩蓴_、數(shù)據(jù)碰撞或設(shè)

              備故障,數(shù)據(jù)包就會(huì)受到損壞。在接受主機(jī)的鏈路層接受校驗(yàn)時(shí)就會(huì)被丟棄。

 

              發(fā)送主機(jī)應(yīng)發(fā)現(xiàn)丟失的數(shù)據(jù)段,并重發(fā)出錯(cuò)的數(shù)據(jù)。

 

              TCP使用PAR(Positive Acknowledgement and Retransmission)的出錯(cuò)重發(fā)方案。

 

              TCP程序在發(fā)送數(shù)據(jù)時(shí),先把數(shù)據(jù)段都放到其發(fā)送窗口中,然后發(fā)送出去。然后,PAR會(huì)

              為發(fā)送窗口中每個(gè)已發(fā)送的數(shù)據(jù)段啟動(dòng)定時(shí)器,被對(duì)方主機(jī)確認(rèn)收到的數(shù)據(jù),將從發(fā)送

              窗口中刪除。如果某數(shù)據(jù)段的定時(shí)時(shí)間到,仍然沒(méi)有收到確認(rèn),PAR就會(huì)重發(fā)這個(gè)數(shù)據(jù)

              段。

              

              計(jì)算機(jī)網(wǎng)絡(luò)學(xué)習(xí)(4):網(wǎng)絡(luò)協(xié)議與標(biāo)準(zhǔn)

              圖4.10 PAR出錯(cuò)重發(fā)機(jī)制

 

              在圖4.10中,發(fā)送主機(jī)的2號(hào)數(shù)據(jù)段丟失,接收主機(jī)只確認(rèn)了1號(hào)數(shù)據(jù)段。發(fā)送主機(jī)從發(fā)

              送窗口中刪除已確認(rèn)的1號(hào)包,放入4好數(shù)據(jù)段,將2,3,4號(hào)發(fā)送出去,其中,2,3是重發(fā)

              的數(shù)據(jù)段。你會(huì)發(fā)現(xiàn),盡管數(shù)據(jù)段3已經(jīng)被接收主機(jī)收到,仍然被重發(fā),這顯然是一種

              浪費(fèi)。但是PAR機(jī)制只能這樣處理,因?yàn)橹挥幸粋€(gè)確認(rèn)序號(hào)字段,如果有丟失大于一個(gè)數(shù)

              據(jù)段,一個(gè)確認(rèn)序號(hào)無(wú)法記錄多個(gè)丟失數(shù)據(jù)包。而單獨(dú)設(shè)計(jì)一個(gè)包來(lái)通知源主機(jī)也不

              行,因?yàn)檫@個(gè)通知包也丟失了該怎么辦呢?

 

         (5) TCP流量控制

             如果接收主機(jī)同時(shí)與多個(gè)TCP通訊,接收的數(shù)據(jù)包的重新組裝需要在內(nèi)存中排隊(duì)。如果

             接收主機(jī)的負(fù)荷太大,因?yàn)閮?nèi)存緩沖區(qū)滿,就有可能丟失數(shù)據(jù)。因此,當(dāng)接收主機(jī)無(wú)法

             承受發(fā)送主機(jī)的發(fā)送速度時(shí),就需要通知發(fā)送主機(jī)放慢數(shù)據(jù)的發(fā)送速度。事實(shí)上,接收

             主機(jī)并不是通知發(fā)送主機(jī)放慢發(fā)送速度,而是直接控制發(fā)送主機(jī)的發(fā)送窗口大小。接收

             主機(jī)如果需要對(duì)方放慢數(shù)據(jù)的發(fā)送速度,就減小數(shù)據(jù)報(bào)中TCP報(bào)頭里“發(fā)送窗口”字段

             的數(shù)值。對(duì)方主機(jī)必須服從這個(gè)數(shù)值,減小發(fā)送窗口的大小,從而降低了發(fā)送速度。

 

             計(jì)算機(jī)網(wǎng)絡(luò)學(xué)習(xí)(4):網(wǎng)絡(luò)協(xié)議與標(biāo)準(zhǔn)

             圖4.11 TCP流量控制

              

             極端的情況,如果接收主機(jī)把窗口大小字段設(shè)為0,發(fā)送主機(jī)將暫停發(fā)送數(shù)據(jù)。有趣的

             是,盡管發(fā)送主機(jī)接受接收主機(jī)的窗口設(shè)置降低了發(fā)送速度,但是,發(fā)送主機(jī)會(huì)自己漸

             漸擴(kuò)大窗口,這樣做的目的是盡可能的提高數(shù)據(jù)的發(fā)送速度。也就是說(shuō),發(fā)送主機(jī)會(huì)降

             低發(fā)送速度,但不一定會(huì)減小窗口大小。

             在實(shí)際中,TCP報(bào)頭中的窗口字段不是用數(shù)據(jù)段的個(gè)數(shù)來(lái)說(shuō)明大小,而是以字節(jié)數(shù)來(lái)說(shuō)

             明大小。

 

         (6) UDP協(xié)議

             TCP/IP協(xié)議集中設(shè)計(jì)了另外一個(gè)傳輸層協(xié)議:無(wú)連接數(shù)據(jù)傳輸協(xié)議(Connectionless

             Data Transport Protocol)。這是一個(gè)簡(jiǎn)化了的傳輸層協(xié)議。UDP去掉了TCP協(xié)議5個(gè)功

             能中的3個(gè):

             連接建立、流量控制、出錯(cuò)重發(fā),只保留端口尋址和數(shù)據(jù)分段2個(gè)功能。

 

             UDP通過(guò)犧牲可靠性換得通訊效率的提供。對(duì)于那些數(shù)據(jù)可靠性要求不高的數(shù)據(jù)傳輸,

             可以使用UDP協(xié)議完成。如DNS,SNMP,TFTP,DHCP。

              

             UDP的報(bào)頭格式非常簡(jiǎn)單,核心內(nèi)容只有源端口地址和目標(biāo)端口地址兩個(gè)字段。DHCP的

             細(xì)節(jié)詳見(jiàn)RFC768。

 

             計(jì)算機(jī)網(wǎng)絡(luò)學(xué)習(xí)(4):網(wǎng)絡(luò)協(xié)議與標(biāo)準(zhǔn)

             圖4.12 UDP報(bào)頭格式

 

             UDP程序需要與TCP一樣完成端口地址尋址和數(shù)據(jù)分段兩個(gè)功能。但是它不知道數(shù)據(jù)包是

             否到達(dá)目標(biāo)主機(jī),接收主機(jī)也不能抑制發(fā)送數(shù)據(jù)的速度。由于數(shù)據(jù)報(bào)中不再有報(bào)文序

             號(hào),一旦數(shù)據(jù)包沿不同路徑到達(dá)目標(biāo)主機(jī)的次序出現(xiàn)變化,目標(biāo)主機(jī)也無(wú)法按正確的次

             序糾正這樣的錯(cuò)誤。

 

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

           TCP/IP協(xié)議集中最重要的網(wǎng)絡(luò)層協(xié)議是IP和ARP。除了這兩個(gè)協(xié)議外,網(wǎng)絡(luò)層還有一些其

           它的協(xié)議,如RARP,DHCP,ICMP,RIP,IGRP,OSPF等。這些協(xié)議的功能是:


           IP協(xié)議:

                   用于將多個(gè)包交換網(wǎng)絡(luò)連接起來(lái)的。


           ARP(Address Resolution Protocol)協(xié)議

                   根據(jù)IP地址獲取MAC地址。


           RARP(Reverse Address Resolution Protocol)協(xié)議

                   將局域網(wǎng)中某個(gè)主機(jī)的MAC地址轉(zhuǎn)換為IP地址。


           BOOTP(Bootstrap Protocol)協(xié)議

                   是一種引導(dǎo)協(xié)議,基于IP/UDP協(xié)議,也稱自舉協(xié)議,是DHCP協(xié)議的前身。BOOTP用

                   于無(wú)盤(pán)工作站的局域網(wǎng)中,可以讓無(wú)盤(pán)工作站從一個(gè)中心服務(wù)器上獲得IP地址。通過(guò)

                   BOOTP協(xié)議可以為局域網(wǎng)中的無(wú)盤(pán)工作站分配動(dòng)態(tài)IP地址,這樣就不需要管理員去為

                   每個(gè)用戶去設(shè)置靜態(tài)IP地址。


           DHCP(Dynamic Host Configuration Protocol)協(xié)議

                   是一個(gè)局域網(wǎng)的網(wǎng)絡(luò)協(xié)議,使用UDP協(xié)議工作, 主要有兩個(gè)用途:給內(nèi)部網(wǎng)絡(luò)或網(wǎng)

                   絡(luò)服務(wù)供應(yīng)商自動(dòng)分配IP地址,給用戶或者內(nèi)部網(wǎng)絡(luò)管理員作為對(duì)所有計(jì)算機(jī)作中央

                   管理的手段,在RFC 2131中有詳細(xì)的描述。DHCP有3個(gè)端口,其中UDP67和UDP68

                   為正常的DHCP服務(wù)端口,分別作為DHCP Server和DHCP Client的服務(wù)端口;546號(hào)

                   端口用于DHCPv6 Client,而不用于DHCPv4,是為DHCP failover服務(wù),這是需要特別

                   開(kāi)啟的服務(wù),DHCP failover是用來(lái)做“雙機(jī)熱備”的。


           ICMP(Internet Control Message Protocol)協(xié)議

                    Internet控制報(bào)文協(xié)議。它是TCP/IP協(xié)議族的一個(gè)子協(xié)議,用于在IP主機(jī)、路由器之間

                    傳遞控制消息??刂葡⑹侵妇W(wǎng)絡(luò)通不通、主機(jī)是否可達(dá)、路由是否可用等網(wǎng)絡(luò)本身

                    的消息。


           RIP協(xié)議

           是一種內(nèi)部網(wǎng)關(guān)協(xié)議(IGP),是一種動(dòng)態(tài)路由選擇協(xié)議,用于自治系統(tǒng)(AS)內(nèi)的路由

                    信息的傳遞。RIP協(xié)議基于距離矢量算法(DistanceVectorAlgorithms),使用“跳數(shù)”(即

                    metric)來(lái)衡量到達(dá)目標(biāo)地址的路由距離。這種協(xié)議的路由器只關(guān)心自己周?chē)氖澜?/span>,只與

                    自己相鄰的路由器交換信息,范圍限制在15跳(15度)之內(nèi),再遠(yuǎn),它就不關(guān)心了。RIP應(yīng)

                    用于OSI網(wǎng)絡(luò)七層模型的應(yīng)用層。

                    各廠家定義的管理距離(AD,即優(yōu)先級(jí))如下:

                    華為定義的優(yōu)先級(jí)是100,思科定義的是120。


           IGRP(Interior Gateway Routing Protocol)協(xié)議

           是一種內(nèi)部網(wǎng)關(guān)路由協(xié)議,它由Cisco公司八十年代中期設(shè)計(jì)。


           OSPF(Open Shortest Path First 開(kāi)放式最短路徑優(yōu)先)協(xié)議

                   是一個(gè)內(nèi)部網(wǎng)關(guān)協(xié)議(Interior Gateway Protocol,簡(jiǎn)稱IGP),用于在單一自治系統(tǒng)

                   (Autonomous System,AS)內(nèi)決策路由。

 

4.3 IEEE 802標(biāo)準(zhǔn)

    TCP/IP沒(méi)有對(duì)OSI模型最下面兩層的實(shí)現(xiàn),TCP/IP協(xié)議主要是在網(wǎng)絡(luò)操作系統(tǒng)中實(shí)現(xiàn)的。主機(jī)中的

    應(yīng)用層、傳輸層、網(wǎng)絡(luò)層任務(wù)由TCP/IP程序來(lái)完成,而主機(jī)OSI模型的最下面兩層數(shù)據(jù)鏈路層和物

    理層的功能由網(wǎng)卡制造廠商的程序和硬件電路來(lái)完成。

      

    網(wǎng)絡(luò)設(shè)備廠商在制造網(wǎng)卡、交換機(jī)、路由器的時(shí)候,其數(shù)據(jù)鏈路層和物理層的功能是依照IEEE

    802規(guī)范,也沒(méi)有按照OSI的具體協(xié)議開(kāi)發(fā)。


    IEEE制訂的802規(guī)范標(biāo)準(zhǔn)規(guī)定了數(shù)據(jù)鏈路層物理層功能是:

    . 物理地址尋址

      發(fā)送方需要對(duì)數(shù)據(jù)包安裝幀報(bào)頭,將物理地址封裝在幀報(bào)頭中。接收方能夠根據(jù)物理地址識(shí)別

      是否是發(fā)給自己的數(shù)據(jù)。


    . 介質(zhì)訪問(wèn)控制

      如何使用共享傳輸介質(zhì),避免介質(zhì)使用沖突。

      知名的介質(zhì)訪問(wèn)控制技術(shù)有以太網(wǎng)技術(shù)、令牌網(wǎng)技術(shù)、FDDI技術(shù)等。


    . 數(shù)據(jù)幀校驗(yàn)

      數(shù)據(jù)幀在傳輸過(guò)程中是否受到損壞,丟棄損壞了的幀。      


    . 數(shù)據(jù)的發(fā)送和接收

      操作內(nèi)存中的待發(fā)送數(shù)據(jù)向物理層電路中發(fā)送的過(guò)程。在接收方完成相反的操作。

 

    IEEE 802根據(jù)不同功能,有相應(yīng)的協(xié)議規(guī)范,統(tǒng)稱為IEEE 802x標(biāo)準(zhǔn)。

    圖4.13列出了現(xiàn)在流行的IEEE 802標(biāo)準(zhǔn)。

    

    計(jì)算機(jī)網(wǎng)絡(luò)學(xué)習(xí)(4):網(wǎng)絡(luò)協(xié)議與標(biāo)準(zhǔn)

    圖4.13 IEEE協(xié)議標(biāo)準(zhǔn)


    由圖4.13可見(jiàn),OSI模型把數(shù)據(jù)鏈路層又劃分為兩個(gè)子層:

    邏輯鏈路控制(LLC: Logical Link Control)子層

    和

    介質(zhì)訪問(wèn)控制(MAC: Media Access Control)子層。


    LLC子層任務(wù)是提供網(wǎng)絡(luò)層程序與鏈路層程序的接口,使得鏈路層主體MAC子層的程序設(shè)計(jì)獨(dú)立于

    網(wǎng)絡(luò)層的某個(gè)具體協(xié)議程序。這樣設(shè)計(jì)是有必要的,例如新的網(wǎng)絡(luò)層協(xié)議出現(xiàn)時(shí),只需要為這個(gè)新

    的網(wǎng)絡(luò)層協(xié)議程序?qū)懗鰧?duì)應(yīng)的LLC子層接口程序,就可以使用已有的鏈路層程序,而不需要全部推翻

    過(guò)去的鏈路層程序。

    

    MAC子層完成所有OSI對(duì)數(shù)據(jù)鏈路層要求完成的功能:物理地址尋址、介質(zhì)訪問(wèn)控制、數(shù)據(jù)幀校驗(yàn)、

    數(shù)據(jù)發(fā)送與接收的控制。


    IEEE 802.2協(xié)議對(duì)應(yīng)OSI模型的LLC子層。


    IEEE 802x的核心標(biāo)準(zhǔn)是10余個(gè)跨越MAC子層和物理層的設(shè)計(jì)規(guī)范。下面列出了一些常見(jiàn)的IEEE 802

    協(xié)議:


    IEEE 802.3

    以太網(wǎng)標(biāo)準(zhǔn)協(xié)議規(guī)范,提供10M局域網(wǎng)的介質(zhì)訪問(wèn)控制子層和物理層設(shè)計(jì)標(biāo)準(zhǔn)。


    IEEE 802.3u

    快速以太網(wǎng)標(biāo)準(zhǔn)規(guī)范,提供100M局域網(wǎng)的介質(zhì)訪問(wèn)控制子層和物理層設(shè)計(jì)標(biāo)準(zhǔn)。


    IEEE 802.3ab

    千兆以太網(wǎng)標(biāo)準(zhǔn)規(guī)范,提供1000M局域網(wǎng)的介質(zhì)訪問(wèn)控制子層和物理層設(shè)計(jì)標(biāo)準(zhǔn)。


    IEEE 802.5

    令牌環(huán)網(wǎng)標(biāo)準(zhǔn)規(guī)范,提供令牌環(huán)網(wǎng)的介質(zhì)訪問(wèn)控制子層和物理層設(shè)計(jì)標(biāo)準(zhǔn)。


    IEEE 802.11

    無(wú)線局域網(wǎng)標(biāo)準(zhǔn)規(guī)范,提供2.4G微波波段1-2Mbps低速WLAN的介質(zhì)訪問(wèn)控制子層和物理層設(shè)計(jì)標(biāo)準(zhǔn)。

    

    IEEE 802.11a

    無(wú)線局域網(wǎng)標(biāo)準(zhǔn)規(guī)范,提供5G微波波段54Mbps高速WLAN的介質(zhì)訪問(wèn)控制子層和物理層設(shè)計(jì)標(biāo)準(zhǔn)。


    IEEE 802.11b

    無(wú)線局域網(wǎng)標(biāo)準(zhǔn)規(guī)范,提供2.4G微波波段11Mbps高速WLAN的介質(zhì)訪問(wèn)控制子層和物理層設(shè)計(jì)標(biāo)準(zhǔn)。


    IEEE 802.11g

    無(wú)線局域網(wǎng)標(biāo)準(zhǔn)規(guī)范,提供IEEE 802.11a和IEEE 802.11b兼容標(biāo)準(zhǔn)。

    

    IEEE 802.14

    有線電視網(wǎng)標(biāo)準(zhǔn)規(guī)范,提供Cable Model技術(shù)所設(shè)計(jì)的介質(zhì)訪問(wèn)控制子層和物理層設(shè)計(jì)標(biāo)準(zhǔn)。



向AI問(wèn)一下細(xì)節(jié)

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

AI