《計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)-》第5章網(wǎng)絡(luò)互聯(lián)與系統(tǒng)調(diào)試_第1頁
《計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)-》第5章網(wǎng)絡(luò)互聯(lián)與系統(tǒng)調(diào)試_第2頁
《計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)-》第5章網(wǎng)絡(luò)互聯(lián)與系統(tǒng)調(diào)試_第3頁
《計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)-》第5章網(wǎng)絡(luò)互聯(lián)與系統(tǒng)調(diào)試_第4頁
《計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)-》第5章網(wǎng)絡(luò)互聯(lián)與系統(tǒng)調(diào)試_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第5章網(wǎng)絡(luò)互聯(lián)與系統(tǒng)調(diào)試

主編:周鴻旋本章學(xué)習(xí)要點(diǎn)了解面向連接和面向無連接服務(wù)的基本概念。掌握IP數(shù)據(jù)報(bào)的基本組成及結(jié)構(gòu),掌握IP數(shù)據(jù)報(bào)的傳輸、封裝和重組。掌握TCP、UDP和ICMP協(xié)議原理、組成和應(yīng)用熟練使用Windwos下的基本網(wǎng)絡(luò)命令和工具。5.1面向連接和面向無連接的解決方案網(wǎng)絡(luò)互聯(lián)的動(dòng)力:更大范圍的資源共享網(wǎng)絡(luò)互聯(lián):HOST-LAN、LAN-LAN/WAN為什么需要網(wǎng)絡(luò)互聯(lián)互聯(lián)網(wǎng)(internet):兩個(gè)或多個(gè)網(wǎng)絡(luò)構(gòu)成互聯(lián)網(wǎng)。為什么會(huì)存在多種不同的網(wǎng)絡(luò)(協(xié)議)?歷史原因:不同公司的網(wǎng)絡(luò)產(chǎn)品大量使用。價(jià)格原因:網(wǎng)絡(luò)產(chǎn)品價(jià)格低使很多人有權(quán)決定使用何種網(wǎng)絡(luò)。技術(shù)原因:不同網(wǎng)絡(luò)采用不同技術(shù)、不同硬件、不同協(xié)議。5.1面向連接和面向無連接的解決方案

連接:通信系統(tǒng)中兩個(gè)對(duì)等實(shí)體為數(shù)據(jù)交換而采用的結(jié)合方式。連接是計(jì)算機(jī)網(wǎng)絡(luò)通信中一個(gè)非常重要的概念,表明了通信雙方的以何種方式建立通信的渠道。計(jì)算機(jī)網(wǎng)絡(luò)的通信要么是面向連接的,要么是無連接的。這些方法揭示了網(wǎng)絡(luò)上實(shí)現(xiàn)通信的兩種途徑。網(wǎng)絡(luò)互聯(lián)解決方案5.1.1面向連接的解決方案通信之前建立連接,通信過程中保持連接,通信結(jié)束拆除連接。5.1.2面向非連接的解決方案通信雙方不需要建立和維持連接網(wǎng)絡(luò)互聯(lián)方法—級(jí)聯(lián)虛電路級(jí)聯(lián)虛電路(ConcatenatedVirtualCircuits)的工作過程建立連接當(dāng)目的主機(jī)不在本子網(wǎng)內(nèi)時(shí),則在子網(wǎng)內(nèi)找一個(gè)離目的網(wǎng)絡(luò)最近的路由器,與之建立一條虛電路;該路由器與外部網(wǎng)關(guān)建立虛電路;該網(wǎng)關(guān)與下一個(gè)子網(wǎng)中的一個(gè)路由器建立虛電路。重復(fù)上述操作,直到到達(dá)目的主機(jī)。傳輸數(shù)據(jù)相同連接的分組

沿同一虛電路按

照順序傳輸;網(wǎng)關(guān)根據(jù)需要轉(zhuǎn)

換分組格式和虛

電路號(hào)。拆除連接網(wǎng)絡(luò)互聯(lián)方法—無連接網(wǎng)絡(luò)互聯(lián)無連接網(wǎng)絡(luò)互聯(lián)(ConnectionlessInternetworking)的工作過程無連接網(wǎng)絡(luò)互聯(lián)的工作過程與數(shù)據(jù)報(bào)子網(wǎng)的工作過程相似。每個(gè)分組獨(dú)立路由,不保證分組按順序到達(dá),提高網(wǎng)絡(luò)利用率。其中,連接不同子網(wǎng)的多協(xié)議路由器做協(xié)議轉(zhuǎn)換,包括分組格式轉(zhuǎn)換和地址轉(zhuǎn)換等。級(jí)聯(lián)虛電路與無連接網(wǎng)絡(luò)互聯(lián)的比較級(jí)聯(lián)虛電路優(yōu)點(diǎn)路由器預(yù)留緩沖區(qū)等資源,保證服務(wù)質(zhì)量。分組按序號(hào)傳輸。分組的報(bào)文頭部較短。缺點(diǎn)路由器需要大量內(nèi)存存儲(chǔ)虛電路信息。一旦發(fā)生擁塞,沒有其它路由,健壯性差。如果網(wǎng)絡(luò)中有一個(gè)不可靠的數(shù)據(jù)報(bào)子網(wǎng),級(jí)連虛電路很難實(shí)現(xiàn)。無連接網(wǎng)絡(luò)互聯(lián)優(yōu)點(diǎn)能夠容忍擁塞,并能適應(yīng)擁塞。健壯性好??捎糜诙喾N網(wǎng)絡(luò)互聯(lián)。無連接網(wǎng)絡(luò)互聯(lián)的缺點(diǎn)分組的報(bào)文頭部較長。不能保證分組按序號(hào)到達(dá)。不能保證服務(wù)質(zhì)量。面向連接服務(wù)無連接服務(wù)參考模式電話系統(tǒng)郵政系統(tǒng)特點(diǎn)靜態(tài)分配資源;傳輸前需要建立連接動(dòng)態(tài)分配資源可靠性提供可靠的報(bào)文流服務(wù)不能防止報(bào)文的丟失、損壞、重復(fù)和失序?qū)δ康牡刂返囊髢H在連接階段需要完整的目的地址需要為每一個(gè)報(bào)文提供完整的目的地址適用場(chǎng)合在一段時(shí)間內(nèi)向同一目的地發(fā)送大量報(bào)文;實(shí)時(shí)性要求少量零星報(bào)文分類及示例1.可靠消息流-文件傳輸2.可靠字節(jié)流-遠(yuǎn)程登錄3.不可靠連接-數(shù)字化聲音1.數(shù)據(jù)報(bào)-廣播/組播2.可靠的數(shù)據(jù)報(bào)-掛號(hào)郵件3.請(qǐng)求應(yīng)答-數(shù)據(jù)庫查詢面向連接與無連接服務(wù)比較5.2IP數(shù)據(jù)報(bào)

IP是網(wǎng)絡(luò)互連協(xié)議(InternetProtocol)的簡稱。IP協(xié)議具有良好的適應(yīng)性,因此,IP協(xié)議得到廣泛使用,成為支撐Internet的基礎(chǔ)。IP協(xié)議提供的是一種無連接的、不可靠的、盡力發(fā)送的服務(wù),把數(shù)據(jù)從源端發(fā)送到目的端。IP數(shù)據(jù)報(bào)在經(jīng)過網(wǎng)絡(luò)傳輸時(shí),有可能因?yàn)榫W(wǎng)絡(luò)擁塞、鏈路故障等原因而造成丟失或出錯(cuò)。對(duì)此,IP協(xié)議僅具有有限的錯(cuò)誤報(bào)告功能,它調(diào)用ICMP協(xié)議來實(shí)現(xiàn)差錯(cuò)報(bào)告。數(shù)據(jù)報(bào)內(nèi)容的差錯(cuò)撿測(cè)和恢復(fù)則交給高層(傳輸層協(xié)議--TCP)去完成。IP是TCP/IP協(xié)議集的核心協(xié)議之一,協(xié)議的內(nèi)容包括:基本傳輸單元的格式,也就是IP報(bào)文的類型與定義、IP報(bào)文的地址以及分配方法、IP報(bào)文的路由轉(zhuǎn)發(fā)以及IP報(bào)文的分段與重組。IP數(shù)據(jù)報(bào)(packet)是IP協(xié)議的基本處理單元,它由兩部分組成:報(bào)文頭和數(shù)據(jù)部分,如圖5-4所示。所有的TCP、UDP及ICMP數(shù)據(jù)都以IP數(shù)據(jù)報(bào)格式傳輸。

IP數(shù)據(jù)報(bào)IP數(shù)據(jù)報(bào)的格式

IP數(shù)據(jù)報(bào)(packet)是IP協(xié)議的基本處理單元,它由兩部分組成:報(bào)文頭和數(shù)據(jù)部分。上圖給出了IP數(shù)據(jù)報(bào)的格式。IP數(shù)據(jù)報(bào)的報(bào)文頭包含一些必要的控制信,它本身有20個(gè)字節(jié)的固定部分和變長的可選項(xiàng)(option)部分構(gòu)成。

1、版本號(hào)(Version):IP協(xié)議的版本號(hào),它占用4位。

2、長度字段:頭長度(HeaderLength)和總長度(TotalLength)。頭長度字段占用4位,表示報(bào)文頭的長度。它的數(shù)值是以4字節(jié)為單位表示長度,即IP報(bào)文頭中真正的字節(jié)數(shù)應(yīng)該等于頭長度值乘以4。IP報(bào)文頭又分為固定部分和選項(xiàng)(option)部分,固定部分正好是20個(gè)字節(jié),而選項(xiàng)部分為變長,因此需要有用一個(gè)字段來給出IP報(bào)文頭的長度。而且若選項(xiàng)部分長度不為4的倍數(shù),則還應(yīng)根據(jù)需要填充(padding)1到3個(gè)字節(jié)以湊成4的倍數(shù)??傞L度字段表示整個(gè)IP報(bào)文的長度(即包括報(bào)文頭又包括數(shù)據(jù)部分),它以字節(jié)為單位。總長度字段占用16位,所以IP數(shù)據(jù)報(bào)最長可達(dá)64K字節(jié)。

3、服務(wù)類型(TypeofService)和優(yōu)先級(jí):IP報(bào)文頭中的服務(wù)類型字段規(guī)定了對(duì)于本數(shù)據(jù)報(bào)的處理方式。該字段總共為1個(gè)字節(jié),被分為5個(gè)子域。其結(jié)構(gòu)如下圖:

生存周期防止死循環(huán)的發(fā)生

數(shù)據(jù)報(bào)生存時(shí)間(TTL,Timetolive):IP協(xié)議中提出了的生存時(shí)間TTL(TimeToLive)的控制,它限制了一個(gè)報(bào)文在網(wǎng)絡(luò)中的存活時(shí)間。報(bào)文頭的生存時(shí)間被初始化設(shè)置為最大值255。在報(bào)文每經(jīng)過一個(gè)路由器時(shí),其TTL值減1,直到它的值減為0時(shí),則丟棄該報(bào)文。這樣,即使在網(wǎng)絡(luò)中出現(xiàn)循環(huán)路由,循環(huán)轉(zhuǎn)發(fā)的IP報(bào)文也會(huì)在有限的時(shí)間內(nèi)被丟棄。頭部校驗(yàn)和頭校驗(yàn)和(HeaderChecksum):頭校驗(yàn)和字段用于保證頭部數(shù)據(jù)的正確性。

保證IP數(shù)據(jù)報(bào)報(bào)頭的完整性,節(jié)省路由器處理IP數(shù)據(jù)報(bào)報(bào)頭時(shí)間地址

源IP地址

目標(biāo)IP地址

源和目的地址(Source/DestinationIPAddress):源端地址和目的地址,分別表示該報(bào)文的發(fā)送者及接收者。

分段(fragment):可以在任何必要的中間路由器上進(jìn)行,而重組僅在目的主機(jī)處進(jìn)行。在IP包頭中,共有三個(gè)字段用來實(shí)現(xiàn)對(duì)數(shù)據(jù)報(bào)的分段和重組:標(biāo)識(shí)符(identification)、標(biāo)志域(flag)和分段偏移值(fragmentoffset)。

標(biāo)識(shí)符:是一個(gè)無符號(hào)整型值,它是IP協(xié)議賦予報(bào)文的標(biāo)識(shí),屬于同一個(gè)報(bào)文的分段具有相同的標(biāo)識(shí)符。標(biāo)識(shí)符的分配絕不能重復(fù),IP協(xié)議每發(fā)送一個(gè)IP報(bào)文,則要把該標(biāo)識(shí)符的值加1,作為下個(gè)報(bào)文的標(biāo)識(shí)符。

報(bào)文標(biāo)志域:為三個(gè)比特,但只有低兩位比特有效。每個(gè)比特的意義如下:比特0(MF位), 最終分段標(biāo)志(MoreFragment)

比特1(DF位), 禁止分段標(biāo)志(Don’tFragment)

比特2, 未用

當(dāng)DF位被置為1,則該報(bào)文不能被分段。假如此時(shí)IP數(shù)據(jù)報(bào)的長度大于網(wǎng)絡(luò)的MTU值,則根據(jù)IP協(xié)議把該報(bào)文丟棄,同時(shí)向源端返回出錯(cuò)信息。

MF標(biāo)志位置為0時(shí),說明該分段是原報(bào)文的最后一個(gè)分段。

分段偏移值:指出本分段的第1個(gè)字節(jié)在初始的IP報(bào)文中的偏移值,該偏移量以8字節(jié)為單位。協(xié)議類型(Protocol):協(xié)議類型字段的內(nèi)容指出IP報(bào)文中數(shù)據(jù)部分是屬于哪一種協(xié)議(高層協(xié)議)的,接收端則根據(jù)該協(xié)議類型字段的值來確定應(yīng)該把IP報(bào)文中的數(shù)據(jù)交給哪個(gè)上層協(xié)議去處理。常見的上層協(xié)議包括TCP,UDP,ICMP,IGMP等。其對(duì)應(yīng)的協(xié)議類型分別為6,17,1,2。5.2.2IP數(shù)據(jù)報(bào)在INTERNET上的傳輸

要點(diǎn):要有目標(biāo)地址IP經(jīng)過路由要轉(zhuǎn)換目的地掩碼下一跳直接連接直接連接目的地掩碼下一跳直接連接直接連接

R1路由表

R3路由表

IP報(bào)文要交給數(shù)據(jù)鏈路層,封裝成幀之后才能發(fā)送。理想情況,IP報(bào)文正好放在一個(gè)物理幀中,這樣可以使得網(wǎng)絡(luò)傳輸?shù)男首罡摺6鴮?shí)際的物理網(wǎng)絡(luò)所支持的最大幀長各不相同。例如,以太網(wǎng)幀中最多可以容納1500字節(jié),而一個(gè)FDDI幀中可以容納4470字節(jié)的數(shù)據(jù)。我們把這個(gè)上限稱為物理網(wǎng)絡(luò)的最大傳輸單元MTU(MaximumTransferUnit)。有些網(wǎng)絡(luò)的MTU非常小,其值可能只有128個(gè)字節(jié)。

5.2.3IP數(shù)據(jù)報(bào)的分段與重組上圖給出了一個(gè)對(duì)IP報(bào)文進(jìn)行分段的網(wǎng)絡(luò)環(huán)境示例。在上圖(a)中,兩個(gè)以太網(wǎng)通過一個(gè)遠(yuǎn)程網(wǎng)互聯(lián)起來。以太網(wǎng)的MTU都是1500,但是中間的遠(yuǎn)程網(wǎng)絡(luò)的MTU為620個(gè)字節(jié)。如果主機(jī)A現(xiàn)在發(fā)送給B一個(gè)長度超過620字節(jié)的IP報(bào)文,首先在經(jīng)過路由器R1時(shí),就必須把該報(bào)文分成多個(gè)分段。

在進(jìn)行分段時(shí),每個(gè)數(shù)據(jù)片的長度依照物理網(wǎng)絡(luò)的MTU而確定。由于IP報(bào)文頭中的偏移字段的值實(shí)際上是以8字節(jié)為單位,所以要求每個(gè)分段的長度必須為8的整數(shù)倍(最后一個(gè)分段除外,它可能比前面的幾個(gè)分段的長度都小,它的長度可能為任意值)。圖(b)是一個(gè)包含有1400字節(jié)數(shù)據(jù)的IP報(bào)文,在經(jīng)過圖(a)所示網(wǎng)絡(luò)環(huán)境中路由器R1后,該報(bào)文的分段情況。從圖中可以看出,每個(gè)分段都包括各自的IP報(bào)文頭。而且該報(bào)文頭和原來的IP報(bào)文頭非常相似,除了MF標(biāo)志位、分段偏移、校驗(yàn)和,等幾個(gè)字段外,其它內(nèi)容完全一樣。

重組(Reasembly)是分段的逆過程,把若干個(gè)IP分段重新組合后還原成原來的IP報(bào)文。

在目的端收到一個(gè)IP報(bào)文時(shí),可以根據(jù)其分段偏移和MF標(biāo)志位來判斷它是否一個(gè)分段。如果MF位是0,并且分段偏移為0,則表明這是一個(gè)完整的IP數(shù)據(jù)報(bào)。否則,如果分段偏移不為0,或者M(jìn)F標(biāo)志位為1,則表明它是一個(gè)分段。這時(shí)目的地端需要實(shí)行分段重組。IP協(xié)議根據(jù)IP報(bào)文頭中的標(biāo)識(shí)符字段的值來確定哪些分段屬于同一個(gè)原始報(bào)文,根據(jù)分段偏移來確定分段在原始報(bào)文中的位置。如果一個(gè)IP數(shù)據(jù)報(bào)的所有分段都正確地到達(dá)目的地,則把它重新組織成一個(gè)完整的報(bào)文后交給上層協(xié)議去處理。5.3TCP與UDP學(xué)習(xí)要點(diǎn):端到端通信的概念TCP提供的服務(wù)內(nèi)容TCP的流量控制和可靠性實(shí)現(xiàn)UDP的協(xié)議特點(diǎn)和提供服務(wù)5.3TCP/UDP消除網(wǎng)絡(luò)層的多樣性和不可靠性。提供從源主機(jī)到目的端主機(jī)可靠的、價(jià)格合理的、與實(shí)際使用的網(wǎng)絡(luò)無關(guān)的信息傳輸。應(yīng)用層傳輸層下三層應(yīng)用層傳輸層下三層RRRRR向上提供標(biāo)準(zhǔn)的傳輸服務(wù)向下屏蔽不同的通信子網(wǎng)用戶層應(yīng)用程序傳輸服務(wù)傳輸實(shí)體(transportentity)完成傳輸層功能對(duì)等通信實(shí)體的硬軟件。利用網(wǎng)絡(luò)提供的點(diǎn)到點(diǎn)的分組傳輸服務(wù)向高層提供端到端的傳輸服務(wù)。傳輸層提供兩種服務(wù)面向連接的傳輸服務(wù)(TCP)包括三個(gè)階段:連接建立,數(shù)據(jù)傳輸,釋放連接。其中釋放連接的方式有兩種:不對(duì)稱方式:任何一方都可以關(guān)閉雙向連接。對(duì)稱方式:每個(gè)方向的連接單獨(dú)關(guān)閉,雙方都執(zhí)行Disconnect才能關(guān)閉整條連接。無連接的傳輸服務(wù)(UDP)

TCP協(xié)議提供的服務(wù)

TCP是傳輸層協(xié)議,實(shí)現(xiàn)端到端(end-to-end)通信;在端主機(jī)上實(shí)現(xiàn);屏蔽下層網(wǎng)絡(luò)提供的服務(wù)質(zhì)量的差別,為應(yīng)用程序提供穩(wěn)定可靠的服務(wù)。但不能實(shí)現(xiàn)組播功能。

TCP對(duì)上層提供面向連接可靠的通信服務(wù)。使用“三次握手”的方式建立一個(gè)連接,數(shù)據(jù)傳輸完成之后,任何一方都可以斷開該連接;端到端全雙工連接。

完全可靠性(completereliability)

TCP具有差錯(cuò)恢復(fù)、排序等功能。

TCP協(xié)議對(duì)每個(gè)傳輸?shù)淖止?jié)進(jìn)行編號(hào)。在每個(gè)報(bào)文中,描述第一個(gè)字節(jié)的序號(hào)隨該報(bào)文一起傳輸,稱為報(bào)文序號(hào)。每個(gè)TCP報(bào)文中還帶有個(gè)確認(rèn)號(hào),表示接收方希望接收的下一個(gè)字節(jié)的序號(hào),同時(shí)它也說明所有在該序號(hào)之前的數(shù)據(jù)都已經(jīng)正確地接收到,否則,重新傳輸該報(bào)文。

5.3.1傳輸控制TCP協(xié)議

TCP是面向連接的協(xié)議;采用“三次握手”(three-wayhandshake)方式來建立連接。工作過程用圖表示。

在TCP協(xié)議中用一個(gè)發(fā)送方的序號(hào)和一個(gè)接收方的序號(hào)合起來唯一地標(biāo)識(shí)一條連接。在圖中,設(shè)主機(jī)B中運(yùn)行一個(gè)服務(wù)進(jìn)程,它一直處于被動(dòng)打開(passiveopen)狀態(tài),不斷檢測(cè)是否有客戶進(jìn)程提交來的連接請(qǐng)求,若有,則立即作出響應(yīng)。

例如,當(dāng)主機(jī)A中的客戶進(jìn)程要想跟B建立一個(gè)TCP連接時(shí):1、TCP的可靠性實(shí)現(xiàn)

(1)主機(jī)A向B發(fā)送一個(gè)同步命令,即SYN=1的一個(gè)TCP連接請(qǐng)求報(bào)文,同時(shí)為該報(bào)文生成一個(gè)序號(hào)SEQ(SequenceNumber),例如SEQ=x,放在報(bào)文頭中一起發(fā)送出去。(2)如果主機(jī)B接收本次連接請(qǐng)求,則返回一個(gè)同步加確認(rèn)報(bào)文(SYN=1且ACK=1),這就是“第二次握手”。其中,序號(hào)主機(jī)B生成,例如SEQ=y,與x的值無關(guān)。用第一個(gè)報(bào)文序號(hào)值加1來作為對(duì)它的確認(rèn)。(3)最后,主機(jī)A再向B發(fā)送第二個(gè)報(bào)文(序號(hào)加1,即SEQ=x+1),同時(shí)還要對(duì)從主機(jī)B發(fā)來的報(bào)文進(jìn)行確認(rèn)。

實(shí)際上,TCP協(xié)議建立連接的過程就是一個(gè)通信雙方序號(hào)同步的過程。建立連接的每一方都發(fā)送自已的初始序列號(hào),并把收到的對(duì)方的初始序列號(hào)作為相應(yīng)的確認(rèn)序列號(hào),向?qū)Ψ桨l(fā)送確認(rèn)。如下示:

(1)A->BSYN 我的序列號(hào)為x;

(2)B->ASYN&ACK我的序列號(hào)為y,你的序列號(hào)為x;

(3)A->BACK 我的序列號(hào)為x+1,你的序列號(hào)為y;這就是TCP協(xié)議所謂的“三次握手”方法。TCP協(xié)議規(guī)定在連接接收方發(fā)送的確認(rèn)序號(hào)的值等于初始序號(hào)的值加1。三次握手協(xié)議中的初始序號(hào)和確認(rèn)序號(hào)保證了建立連接的過程中不會(huì)造成混淆。

TCP采用長度可變的發(fā)送窗口–滑動(dòng)窗口,來進(jìn)行流量控制,窗口大小的單位是字節(jié)。TCP協(xié)議中滑動(dòng)窗口的含義是指發(fā)送方在未收到接收方返回的確認(rèn)信息的情況下,最多能發(fā)送多少字節(jié)的數(shù)據(jù)。實(shí)際上,在每個(gè)TCP報(bào)文頭中的窗口(window)字段的值就是當(dāng)前設(shè)定的接收窗口的大小。

在圖中,表示發(fā)送端需要發(fā)送的數(shù)據(jù)總共有800字節(jié),分為8個(gè)報(bào)文段。假設(shè)事先約定好窗口大小為500字節(jié),即允許發(fā)送端在未收到確認(rèn)之前最多可以連續(xù)發(fā)送500個(gè)字節(jié)的數(shù)據(jù)。圖中,發(fā)送窗口當(dāng)前的位置表示前兩個(gè)報(bào)文段(其字節(jié)序號(hào)為1~200)已經(jīng)發(fā)送過,并收到了接收端的確認(rèn)。假如發(fā)送方又發(fā)送了兩個(gè)報(bào)文段但未收到確認(rèn),則現(xiàn)在它最多還能發(fā)送3個(gè)報(bào)文段。發(fā)送端在收到接收方返回的確認(rèn)后,就可以將發(fā)送窗口向前滑動(dòng)。

實(shí)際上,發(fā)送窗口在建立連接時(shí)由通信雙方商定,更重要的是,在通信過程中,接收端可以根據(jù)本地資源的情況動(dòng)態(tài)地調(diào)整自己的接收窗口的大小,并通知對(duì)方,使對(duì)方的發(fā)送窗口和自己的接收窗口一致。

2、TCP緩沖、流控與窗口 重發(fā)(retransmission)

當(dāng)TCP發(fā)送數(shù)據(jù)時(shí),發(fā)送方通過一種重發(fā)方案來補(bǔ)償包的丟失,且通訊的雙方都要參與。當(dāng)接收方TCP收到數(shù)據(jù)時(shí),它要回發(fā)給發(fā)送方一個(gè)確認(rèn)(acknowledgement)。當(dāng)發(fā)送方發(fā)送數(shù)據(jù)時(shí),TCP就啟動(dòng)一個(gè)定時(shí)器。在定時(shí)器到點(diǎn)之前,如果沒有收到一個(gè)確認(rèn),則發(fā)送方重發(fā)數(shù)據(jù)。 自適應(yīng)(adaptive)重發(fā)

TCP通過測(cè)量收到一個(gè)應(yīng)答所需的時(shí)間來為每一活動(dòng)的連接估計(jì)一個(gè)往返延遲(round-tripdelay)。當(dāng)發(fā)送一個(gè)消息時(shí),TCP記錄發(fā)送的時(shí)間。當(dāng)應(yīng)答到來時(shí),TCP從當(dāng)前時(shí)間減去記錄的發(fā)送時(shí)間來為連接產(chǎn)生往返延遲的一個(gè)新估計(jì)。3、數(shù)據(jù)丟失與重發(fā)TCP協(xié)議提供的是端到端的可靠連接,TCP協(xié)議通過套接字(Socket)將希望通信的兩個(gè)應(yīng)用程序連在一起,通過這種連接來交換數(shù)據(jù)。TCP/IP的套接字建立雙方的連接,以達(dá)到各類通訊要求,一個(gè)應(yīng)用程序通過定義三部分來產(chǎn)生一個(gè)套接字:主機(jī)IP地址、服務(wù)類型(面向連接的服務(wù)是TCP,無連接服務(wù)是UDP)、應(yīng)用程序所用的端口。

4、端口連接和套接字(Socket)

在一臺(tái)主機(jī)上,多個(gè)應(yīng)用程序同時(shí)使用TCP或UDP協(xié)議進(jìn)行通信。傳輸層協(xié)議接收到數(shù)據(jù)后,如何區(qū)分發(fā)送給哪個(gè)應(yīng)用程序,TCP/UDP中引入了端口(port)的概念。每個(gè)端口由一個(gè)16-bit的無符號(hào)整型值來標(biāo)識(shí),被稱作端口號(hào),它用來標(biāo)識(shí)傳輸層協(xié)議和應(yīng)用程序之間的數(shù)據(jù)接口。我們可以簡單地認(rèn)為,在本地主機(jī)中,一個(gè)應(yīng)用程序?qū)?yīng)著唯一的一個(gè)端口號(hào)。請(qǐng)注意,端口號(hào)是由不同的主機(jī)上的TCP協(xié)議獨(dú)立分配的,所以無法實(shí)現(xiàn)全局唯一,而實(shí)際上也無需全局唯一,只要在本地唯一即可。

端口號(hào)和IP地址合起來,即(host,port)對(duì),就可以唯一地標(biāo)識(shí)TCP的一個(gè)連接的端點(diǎn)(endpoint)。例如,端點(diǎn)(2,80)表示的是IP地址為2的主機(jī)上的80號(hào)TCP端口。一個(gè)連接是用它的兩個(gè)端點(diǎn)來表示的。例如,閩江大學(xué)的一臺(tái)IP地址為()機(jī)器與軟件學(xué)院的一臺(tái)IP地址為(0)的機(jī)器之間建立連接,它由端點(diǎn)定義成:

(:1089)和(0:21)

在TCP/IP協(xié)議的實(shí)現(xiàn)中,引入了套接字(socket)來表示一個(gè)端點(diǎn),即IP地址和端口號(hào)合起來構(gòu)成一個(gè)套接字,我們用通信雙方(發(fā)送方/接收方)的一對(duì)套接字在全網(wǎng)范圍內(nèi)唯一標(biāo)識(shí)一個(gè)連接。使用TCP協(xié)議的網(wǎng)絡(luò)應(yīng)用程序分為兩類:客戶程序、服務(wù)程序。

客戶程序可以任意選擇其進(jìn)行通信的端口號(hào);

服務(wù)器程序則使用較固定的端口號(hào):TELNET--23,F(xiàn)TP--21,Email--25等等。TCP連接與端口著名的TCP端口號(hào)著名TCP的端口號(hào)端口號(hào)關(guān)鍵字描述20FTP-DATA文件傳輸協(xié)議數(shù)據(jù)21FTP文件傳輸協(xié)議控制23TELNET遠(yuǎn)程登錄協(xié)議25SMTP簡單郵件傳輸協(xié)議53DOMAIN域名服務(wù)器80HTTP超文本傳輸協(xié)議110POP3郵局協(xié)議111RPC遠(yuǎn)程過程調(diào)用119NNTP新聞傳送協(xié)議5、連接釋放與優(yōu)雅關(guān)閉

在數(shù)據(jù)傳輸結(jié)束后,通信雙方都可以主動(dòng)發(fā)出釋放連接的請(qǐng)求。

TCP協(xié)議用FIN報(bào)文(即TCP報(bào)文頭中的FIN標(biāo)志位置1)來請(qǐng)求關(guān)閉一個(gè)連接。對(duì)方在收到一個(gè)FIN報(bào)文后,應(yīng)該馬上給出回應(yīng),即確認(rèn)報(bào)文(ACK=1),同時(shí)關(guān)閉該方向上的連接。如圖所示。通信雙方可以依次地先后關(guān)閉一個(gè)連接,也會(huì)同時(shí)提出關(guān)閉連接的請(qǐng)求,這兩種情況的處理都是一樣的。最后,當(dāng)連接在兩個(gè)方向上都關(guān)閉了后,關(guān)于該連接的所有記錄就都被TCP協(xié)議軟件刪除了。

用戶數(shù)據(jù)報(bào)協(xié)議UDP(UserDatagramProtocol)提供應(yīng)用程序之間傳送數(shù)據(jù)報(bào)的基本機(jī)制。

UDP:簡單;無連接傳輸層協(xié)議與IP協(xié)議相比,UDP僅增加了兩方面的內(nèi)容:一個(gè)是端口(port)的概念,另一個(gè)就是檢驗(yàn)和。利用協(xié)議端口,UDP能夠區(qū)分在同一臺(tái)主機(jī)上運(yùn)行的多個(gè)程序;使用檢驗(yàn)和機(jī)制,UDP協(xié)議在把數(shù)據(jù)向應(yīng)用程序提交之前,先對(duì)數(shù)據(jù)做一些差錯(cuò)檢查。

UDP工作:從應(yīng)用層收到的數(shù)據(jù),加上UDP頭,發(fā)送出去。不對(duì)發(fā)送數(shù)據(jù)緩沖,且保留各個(gè)消息之間的邊界,不會(huì)把應(yīng)用層多次發(fā)送的數(shù)據(jù)合并成一個(gè)包發(fā)送出去。

通過UDP協(xié)議,可以發(fā)送組播數(shù)據(jù)。所以需要使用組播服務(wù)的應(yīng)用程序一般都建立在UDP協(xié)議之上。協(xié)議端口

協(xié)議端口是傳輸層引入的一個(gè)非常重要的概念。

UDP協(xié)議用不同的協(xié)議端口(protocolport)來代表不同的應(yīng)用程序,每個(gè)協(xié)議端口由一個(gè)正整數(shù)標(biāo)識(shí)。發(fā)送方不僅要知道目的地主機(jī)的IP地址,還要知道相應(yīng)的協(xié)議端口號(hào)。每個(gè)IP報(bào)文都要必須帶有目的地主機(jī)的端口號(hào),當(dāng)然同時(shí)還要帶有發(fā)送方自身的端口號(hào),為了使接收進(jìn)程知道把回應(yīng)向誰發(fā)送。5.3.2UDP協(xié)議著名的UDP端口號(hào)著名TCP的端口號(hào)UDP端口號(hào)關(guān)鍵字描述53DOMAIN域名服務(wù)器67BOOTPS引導(dǎo)協(xié)議服務(wù)器68BOOTPC引導(dǎo)協(xié)議客戶機(jī)69TFTP簡單文件傳輸協(xié)議161SNMP簡單網(wǎng)絡(luò)管理協(xié)議162SNMP-TRAP簡單網(wǎng)絡(luò)管理協(xié)議陷阱

5.4控制報(bào)文協(xié)議ICMP5.4.1差錯(cuò)及其控制不可靠的數(shù)據(jù)投遞服務(wù)面向無連接的傳輸服務(wù)盡最大努力投遞服務(wù)5.4.2ICMP差錯(cuò)與控制當(dāng)路由器有一個(gè)ICMP消息需要發(fā)送時(shí),它創(chuàng)建一個(gè)IP數(shù)據(jù)包,把該ICMP消息封裝在IP數(shù)據(jù)包中再進(jìn)行傳輸。5.4.2ICMP差錯(cuò)與控制ICMP差錯(cuò)報(bào)文的主要特點(diǎn):ICMP差錯(cuò)報(bào)告作為一般數(shù)據(jù)傳輸,不享受特別優(yōu)先權(quán)和可靠性。在傳輸過程中,數(shù)據(jù)報(bào)可能被丟失、重復(fù)、延遲或亂序傳遞。ICMP差錯(cuò)報(bào)告數(shù)據(jù)中除包含故障IP數(shù)據(jù)報(bào)報(bào)頭外,還包含故障IP數(shù)據(jù)報(bào)數(shù)據(jù)區(qū)的前64字節(jié)數(shù)據(jù)。通常,利用這64個(gè)字節(jié)數(shù)據(jù)可以了解高層協(xié)議(TCP或UDP)的的一些重要信息,有助于差錯(cuò)處理。ICMP差錯(cuò)報(bào)告是伴隨著拋棄出錯(cuò)IP數(shù)據(jù)報(bào)而產(chǎn)生的。IP軟件發(fā)現(xiàn)差錯(cuò)時(shí)的處理非常簡單,首先立即丟棄該數(shù)據(jù)報(bào),然后調(diào)用ICMP向源主機(jī)報(bào)告出錯(cuò)信息。5.4.2ICMP差錯(cuò)與控制1.ICMP差錯(cuò)報(bào)告(1)目的地不可達(dá)報(bào)文(2)超時(shí)報(bào)文(3)參數(shù)出錯(cuò)報(bào)文2.ICMP

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論