重慶郵電大學(xué)通信復(fù)試常識常見問題:物聯(lián)網(wǎng)與計算機網(wǎng)絡(luò)(下)
第六章
6.1網(wǎng)絡(luò)互連
1.網(wǎng)絡(luò)互聯(lián)的概念:一般來說,對計算機網(wǎng)絡(luò)的定義是:使用網(wǎng)絡(luò)協(xié)議通過網(wǎng)絡(luò)傳輸介質(zhì)互相共享資源的計算機系統(tǒng)及其他設(shè)備的集合。正如計算機系統(tǒng)(或其他設(shè)備)能夠互相連接起來一樣,計算機網(wǎng)絡(luò)也可以互連,稱之為網(wǎng)絡(luò)互連。
2.所謂異構(gòu)性是指網(wǎng)絡(luò)和通信協(xié)議、計算機硬件和操作系統(tǒng)的差異性。這種差異性主要表現(xiàn)在一下幾個方面:1)網(wǎng)絡(luò)的類型不同,如廣域網(wǎng)、城域網(wǎng)和局域網(wǎng)。2)所使用的數(shù)據(jù)鏈路層的協(xié)議不同,如E t h e r n e t、T o k e n ?R i n g以及X.25等。3)計算機系統(tǒng)的類型不同,如微型機、小型機、大型機。4)使用不同操作系統(tǒng)的計算機,如Windows、OS/2 、UNIX 以及Linux等。
3.將利用路由器將兩個或兩個以上的網(wǎng)絡(luò)相互連接起來構(gòu)成的網(wǎng)絡(luò)系統(tǒng)稱為互聯(lián)網(wǎng)。
4.組成互聯(lián)網(wǎng)的單個網(wǎng)絡(luò)常被稱為子網(wǎng)(S u b n e t w o r k),連接到子網(wǎng)的設(shè)備稱為端結(jié)點(E n d ?N o d e)(或端系統(tǒng)),連接不同子網(wǎng)的設(shè)備稱為中間結(jié)點(I n t e r m e d i a t e ?N o d e)(或中間系統(tǒng))?;ヂ?lián)網(wǎng)最常見形式是將多個局域網(wǎng)通過廣域網(wǎng)連接起來形成的網(wǎng)絡(luò)。
5.網(wǎng)絡(luò)互連的方式:1)網(wǎng)絡(luò)之間至少提供一條物理上連接的鏈路及對這條鏈路的控制協(xié)議。2)不同網(wǎng)絡(luò)進程之間提供合適的路由,以便交換數(shù)據(jù)。3)選定一個相應(yīng)的協(xié)議層,使得從該層開始,被交換連接的網(wǎng)絡(luò)設(shè)備中的高層協(xié)議都是相同的,其低層協(xié)議和硬件差異可通過該層屏蔽,從而使得不同網(wǎng)絡(luò)中的用戶可以相互通信。
6.i n t e r n e t,是i n t e r n e t w o r k的簡略形式。一般來說,一個.i n t e r n e t就是互連起來的網(wǎng)絡(luò)集合。而當(dāng)i大寫之后,即使用.Internet時,則特指當(dāng)今世界上最大的互聯(lián)網(wǎng)——.Internet,常譯為因特網(wǎng)。
7.常用的互連設(shè)備有以下幾類:1)物理層互連設(shè)備,即轉(zhuǎn)發(fā)器(Repeater)。2)數(shù)據(jù)鏈路層互連設(shè)備,即橋接器(Bridge)。3)網(wǎng)絡(luò)層互連設(shè)備,即路由器(Router)。4)網(wǎng)絡(luò)層以上的互連設(shè)備,統(tǒng)稱網(wǎng)關(guān)(Gateway)。但目前的路由器通常已可實現(xiàn)網(wǎng)關(guān)的功能。
8.網(wǎng)絡(luò)層的主要功能:1)封裝數(shù)據(jù)報 ?在.Internet中,IP層向上層(主要是TCP層)提供統(tǒng)一格式的IP分組,即IP數(shù)據(jù)報,使得各種網(wǎng)絡(luò)的數(shù)據(jù)幀或報文格式的差異性對高層協(xié)議不再存在。2)轉(zhuǎn)發(fā)或稱為交換 ?當(dāng)一個分組到達(dá)某路由器的一條輸入鏈路時,該路由器必須將該分組傳送到適當(dāng)?shù)妮敵鲦溌?。即在路由器的輸入、輸出端口傳遞分組,例如,來自主機A到路由器R1的一個分組,必須向在主機B路徑上的下一個路由器轉(zhuǎn)發(fā)。3)路由或稱為尋由、路徑?jīng)Q策 ?當(dāng)分組從發(fā)送端流向接收端時,網(wǎng)絡(luò)層必須決定這些分組所采用的最佳路由或路徑。計算這些路徑的算法稱為路由選擇算法,簡稱路由算法。4)建立連接 ?轉(zhuǎn)發(fā)和路由是網(wǎng)絡(luò)層的兩個重要功能,但在某些計算機網(wǎng)絡(luò)中實際上還有第三個重要的網(wǎng)絡(luò)層功能,即建立連接。
6.2網(wǎng)絡(luò)連接建立
1.虛電路的概念:虛電路是面向連接的數(shù)據(jù)傳輸,工作過程類似于電路交換,具有虛電路性能的網(wǎng)絡(luò)包括X.25連接、幀中繼以及ATM網(wǎng)絡(luò)。虛電路分為兩種:一種為永久虛電路(PVC);
另一種為交換虛電路(SVC)。
1)?永久虛電路(PVC) 在兩個站點之間事先建立固定的鏈接,類似于存在一條專用電路,任何時候,站點之間都可以進行通信。PVC使用于通過路由器維持恒定連接,從而便于在動態(tài)網(wǎng)絡(luò)環(huán)境下傳輸路由選擇信息的路由。
2)?交換虛電路(SVC) SVC是指通信雙方的用戶應(yīng)用程序根據(jù)需要,動態(tài)建立和釋放的虛電路。一旦通信會話完成,便取消虛電路。
2.虛電路操作方式分3個階段:虛電路建立、數(shù)據(jù)傳輸、虛電路釋放
3.數(shù)據(jù)報方式
采用數(shù)據(jù)報(Datagram)方式傳輸時,所傳輸?shù)姆纸M稱為數(shù)據(jù)報
(1).報文交換方式
報文交換(Message Switching)方式是指,將報文從一個結(jié)點轉(zhuǎn)發(fā)到另一個結(jié)點,直至到達(dá)目的結(jié)點的一種數(shù)據(jù)傳輸過程。
報文交換機通常以存儲轉(zhuǎn)發(fā)方式操作,一個報文必須完全被交換結(jié)點接收后(因此被存儲)才能被轉(zhuǎn)發(fā)到下一個交換結(jié)點。數(shù)據(jù)報的頭部包含地址信息字段,網(wǎng)絡(luò)中的各個中間結(jié)點根據(jù)地址信息和一定的路由規(guī)則,選擇輸出端口,儲存和排隊數(shù)據(jù)報,并在傳輸介質(zhì)空閑時,發(fā)往介質(zhì)空閑時,發(fā)往介質(zhì)乃至目的結(jié)點。當(dāng)一對結(jié)點之間需要傳輸多個數(shù)據(jù)報時,由于每個數(shù)據(jù)報均被獨立地傳輸和路由,因此在網(wǎng)絡(luò)中可能會走不同的路徑,具有不同的時間延遲,按序發(fā)送的多個數(shù)據(jù)報可能以不同的順序到達(dá)終點。因此,為了支持?jǐn)?shù)據(jù)報的傳輸,結(jié)點必須具有存儲和重新排序的能力。
(2).無連接的分組交換
(3).無連接分組交換中的分組轉(zhuǎn)發(fā)
6.3 ??IPv4協(xié)議
1、IPv4協(xié)議是TCP/IP協(xié)議體系中的核心協(xié)議,它向傳輸層提供了一種無連接的盡力而為的數(shù)據(jù)傳輸服務(wù)。IPv4定義了互聯(lián)網(wǎng)在處理數(shù)據(jù)時可以應(yīng)用的簡單規(guī)則、幫助處理數(shù)據(jù)的報文頭以及尋址機制,成為當(dāng)前使用IP協(xié)議的標(biāo)準(zhǔn)。
2、IP數(shù)據(jù)報是IP協(xié)議的基本處理單元,它由IP數(shù)據(jù)報頭和數(shù)據(jù)兩部分組成
3、數(shù)據(jù)報的分段和重組
???所謂分段就是將一個大型IP數(shù)據(jù)報分解成幾個較小IP數(shù)據(jù)報段的過程。
???在IP報頭中,用標(biāo)識符、標(biāo)志域和分段偏移值三個字段來實現(xiàn)數(shù)據(jù)報的分段和重組。
A、?標(biāo)識符 ?P234
B、??標(biāo)志域 ?占用3個比特,但只有低兩位有效 ?第一位(MF位):最終分段標(biāo)志 ?第二位(DF位):禁止分段標(biāo)志
C、???分段偏移值 ??占用13位,以8B為單位表示當(dāng)前數(shù)據(jù)報相對于初始數(shù)據(jù)報的開頭 ??位置
4、數(shù)據(jù)報生存時間(TTL)占用8位,指明數(shù)據(jù)報在進入Internet后能夠存留在網(wǎng)絡(luò)中的時間,以秒為單位。其初始化設(shè)置最大值是255,當(dāng)TTL達(dá)到0時,數(shù)據(jù)報將被網(wǎng)絡(luò)丟棄。設(shè)定TTL的本意是讓每個路由器計算出處理每個數(shù)據(jù)報所需的時間,然后從TTL中把這段時間減去。
5、IPv4地址的層次結(jié)構(gòu)
???每個32位的IPv4地址有前綴和后綴兩部分組成。地址前綴部分標(biāo)志計算機所屬的物理網(wǎng)絡(luò),后綴部分標(biāo)志該網(wǎng)絡(luò)上的某一臺計算機。
??????????????????????????????IPv4地址基本組成
地址類型????????????????????網(wǎng)絡(luò)ID????????????????主機ID
這種層次化的IPv4地址結(jié)構(gòu)保證了兩個重要性質(zhì)1、每個網(wǎng)絡(luò)接口只分配一個唯一地址(即一個地址從不分配給多個網(wǎng)絡(luò)接口)2、雖然網(wǎng)絡(luò)號分配必須全球一致,但后綴可由本地分配,不需全球一致。
6、IP地址兩種表示方式:一是二進制格式表示00000000 ?00000000 ?00000000 ?00000000
???????????????????二是點分十進制表示XXX .XXX .XXX .XXX(XXX取值范圍:0~255)
7、IPv4地址分類及格式?1)A類地址 ?第一位(最高位)為0,網(wǎng)絡(luò)ID由后續(xù)的7位定義(0到127間均是) 2)B類地址 ?前兩位為10,網(wǎng)絡(luò)由后續(xù)14位定義(128到191間)
3)C類地址 前三位110,網(wǎng)絡(luò)地址由后面的21位定義 (192到223間) 4)D類地址 前四位1110(224到239間),用于組播 5)E類地址 ?前五位11110(240到247間)
8、特殊地址(不分配給實際的網(wǎng)絡(luò))1)、第一個8位域是127的地址(如127.0.0.1)被定義為回送地址,即主機將IP數(shù)據(jù)報回傳自身的地址。2)IPv4地址中的主機號部分為全1的地址是廣播地址,用于由網(wǎng)絡(luò)ID指定網(wǎng)絡(luò)上的所有主機間通信。3)全0的主機ID指的是由網(wǎng)絡(luò)ID規(guī)定的網(wǎng)絡(luò),而不是一個主機。
9、所謂子網(wǎng)就是將一個大的網(wǎng)絡(luò)進一步劃分為幾個較小的網(wǎng)絡(luò),而每一個小網(wǎng)絡(luò)都是自己的地址。 超網(wǎng)就是將一個組織所屬的幾個C類網(wǎng)絡(luò)合并成一個更大地址范圍的邏輯網(wǎng)絡(luò)。
???????????????包含子網(wǎng)地址的B類IP地址
??10??????????網(wǎng)絡(luò)ID????????子網(wǎng)ID????????主機ID
?10、子網(wǎng)掩碼有時也稱地址掩碼,定義是,將網(wǎng)絡(luò)中某站點IP地址中的網(wǎng)絡(luò)ID位全改為1,主機ID位全改為0,即是該站點所在網(wǎng)絡(luò)的子網(wǎng)掩碼。 ???凡是以缺省子網(wǎng)掩碼來計算網(wǎng)絡(luò)地址和主機地址的方法,稱為規(guī)定長度子網(wǎng)掩碼(DLSM)方法
子網(wǎng)掩碼一共分為兩類。一類是缺?。ㄗ詣由桑┳泳W(wǎng)掩碼,一類是自定義子網(wǎng)掩碼。缺省子網(wǎng)掩碼即未劃分子網(wǎng),對應(yīng)的網(wǎng)絡(luò)號都置1,主機號都置0。
A類網(wǎng)絡(luò)缺省子網(wǎng)掩碼:255.0.0.0 B類網(wǎng)絡(luò)缺省子網(wǎng)掩碼:255.255.0.0
C類網(wǎng)絡(luò)缺省子網(wǎng)掩碼:255.255.255.0
書上P250例子略
無分類域間路由選擇(CIDR)協(xié)議:實質(zhì)是取消了A類、B類和C類地址以及劃分子網(wǎng)的概念,因而可以更加有效地分配IPv4的地址空間,緩解地址緊張問題。
優(yōu)點:可以更加有效地分配IPv4的地址空間。
TCP/IP協(xié)議體系用地址解析協(xié)議ARP來實現(xiàn)將IP地址映射(或轉(zhuǎn)換)為MAC地址。ARP可以通過發(fā)送網(wǎng)絡(luò)廣播信息的方式,確定與某個網(wǎng)絡(luò)層IP地址相對應(yīng)的MAC地址。
反向地址解析協(xié)議RARP可以實現(xiàn)MAC地址到IP地址的映射。其工作機制是:一個新啟動的工作站向所在的網(wǎng)絡(luò)廣播一個包含其MAC地址的RARP請求報文。RARP服務(wù)器發(fā)現(xiàn)接受請求報文后,在其配置文件中找到該工作站的IP地址并回送給它。
6.4差錯報告和控制機制
Internet報文控制協(xié)議(ICMP)是一種專門處理差錯報文和控制的機制。ICMP協(xié)議與IP協(xié)議同屬網(wǎng)絡(luò)層協(xié)議。ICMP報文封裝格式:IP數(shù)據(jù)報報頭-ICMP報頭—ICMP數(shù)據(jù) ??幾種ICMP差錯報告報文:目標(biāo)不可達(dá)、源端控制、重定向、超時、報文參數(shù)出錯。4種ICMP查詢報文:回應(yīng)請求/應(yīng)答報文、時間戳請求/應(yīng)答報文、子網(wǎng)掩碼請求/應(yīng)答報文、路由查詢/通告報文
6.5 ?IP數(shù)據(jù)報轉(zhuǎn)發(fā)
6.5.1 ?主要特點:1)每個IP數(shù)據(jù)報都應(yīng)包含目的IP地址和源IP地址。
?????????????2)IP地址中的網(wǎng)絡(luò)地址唯一地標(biāo)志一個連入internet的子網(wǎng)。
?????????????3)所有連接到相同子網(wǎng)上的主機和路由器共享其地址中的網(wǎng)絡(luò)地址部分。所以它們能在這個網(wǎng)絡(luò)上通過幀來通信。
?????????????4)每個連接到internet的子網(wǎng)只有一個,并且至少有一個路由器與其他子網(wǎng)的主機或路由器相連,這個路由器可在被連接的子網(wǎng)之間交換IP數(shù)據(jù)報。
6.5.2 ?IP數(shù)據(jù)報轉(zhuǎn)發(fā)算法
??????若在同一個子網(wǎng)上使用IP協(xié)議通信,利用地址解析協(xié)議ARP就可得到對方的MAC地址,然后利用MAC地址把要傳輸?shù)腎P數(shù)據(jù)報進行封裝,交給數(shù)據(jù)鏈路層發(fā)送。
?????若在不同子網(wǎng)上,IP數(shù)據(jù)報沿著從源地址到最終目的地址的一條路徑通過互聯(lián)網(wǎng)傳輸,中間可能會經(jīng)過多個路由器,而路由器的作用就是存儲轉(zhuǎn)發(fā)IP數(shù)據(jù)報,為這個IP報文尋找最優(yōu)路徑。
6.5.3 掩碼域與數(shù)據(jù)報轉(zhuǎn)發(fā)
???P268例題
6.61、IPV6
1.IPv6地址標(biāo)示形式:
IPV6地址長度為128位,4倍于IPV4,表達(dá)的復(fù)雜程度也是IPV4地址的4倍。IPV6的128位地址以16位為一分組,每個16位分組寫成4個十六進制數(shù),中間用冒號分隔,成為冒號分十六進制格式。
6.6.2、
1、IPV6數(shù)據(jù)報格式:
IPV6是對Internet協(xié)議IPV4的改進,最主要的變化是IP地址從32位變?yōu)?28位。IPV6數(shù)據(jù)報格式由IPV6數(shù)據(jù)報頭、擴展(下一個頭)和高層數(shù)據(jù)三部分組成。
2、IPV6的基本報頭(首部)結(jié)構(gòu)
與IPV4不同,在IPV6中,報頭以64位為單位,且報頭的總長度是40B。即IPV6數(shù)據(jù)報有一個40B的基本包頭(Base Header)(也稱基本首部),其后面允許有零個或多個擴展頭(Extension Header)(也稱擴展首部)再往后是數(shù)據(jù)部分。IPV6數(shù)據(jù)報的一般格式如下圖1,基本報頭格式如下圖2.

3、IPV6協(xié)議基本報頭各字段的含義:
1)版本 長度為4位,對于IPV6,該字段必須為6。
2)業(yè)務(wù)流類別 長度為8位,指明為該報文提供某種區(qū)分服務(wù),目前暫未定義類別值。該字段的默認(rèn)值是全0。
3)流標(biāo)簽 長度為20位,用于標(biāo)識屬于同一業(yè)務(wù)流的報文。
4)凈荷長度 長度為16位,其中包括報文凈荷的字節(jié)長度,即IPV6頭后的報文中包含的字節(jié)數(shù)。
5)下一個頭(首部) 長度為8位,這個字段指出IPV6頭后所跟的頭字段中的協(xié)議類型。寫一個頭字段值知名是否有下一個擴展頭及下一個擴展頭是什么。
6)跳數(shù)限制 長度為8位,用于限制報文在網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)次數(shù)。
7)源IP地址 ?長度為128位,指出了IPV6報文的發(fā)送端地址。
8)目的IP地址 長度為128位,指出了IPV6報文的接收端地址。
4、IPV6的擴展頭(擴展首部)
1)逐跳選項頭
2)選路頭
3)分段頭
4)目的地選項頭
5)身份驗證頭(AH)
6)封裝安全性凈荷(ESP)頭
6.7、路由選擇技術(shù)
1、路由選擇的概念:
路由選擇協(xié)議(Routing Protocol)是路由器交換路由選擇信息的語言。
被路由的協(xié)議(Routing Protocols)是指提供了網(wǎng)路層地址的協(xié)議。
2、什么是路由:
路由是把IP分組從源節(jié)點穿過通信子網(wǎng)傳遞到目的節(jié)點的傳輸路徑。在傳輸路徑上,應(yīng)至少有一個中間節(jié)點。路由發(fā)生在網(wǎng)絡(luò)層。橋接發(fā)生在數(shù)據(jù)鏈路層。
3、路由選擇協(xié)議(Routing Protocol):是網(wǎng)絡(luò)協(xié)議的一個功能。大多數(shù)網(wǎng)絡(luò)協(xié)議可以封裝在TCP/IP里,并使用基于TCP/IP的路由選擇協(xié)議進行選路。
4、協(xié)議封裝(Protocol Encapsulation)也稱隧道,是指將一種網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)分組以另一種網(wǎng)絡(luò)協(xié)議的形式來包裹(Wrap)。這個包裹的分組就可以利用包裹網(wǎng)絡(luò)協(xié)議(Wrapper Network Protocol)所支持的路由選擇協(xié)議穿過網(wǎng)絡(luò)。
5、路由表的類型:
IP路由技術(shù)可以分為靜態(tài)路由(Static Routing)和動態(tài)路由(Dynamic Routing)兩大類。若路徑不變,就稱之為靜態(tài)路由;相反,若系統(tǒng)的連路由信息隨時間變化則是動態(tài)路由。路由表可以由系統(tǒng)管理員固定設(shè)置,也可以由系統(tǒng)動態(tài)修改、自動調(diào)整,也可以由主機控制。
1) 靜態(tài)路由表:由網(wǎng)絡(luò)管理員決定,管理員實現(xiàn)設(shè)置好的固定路由表。
2) 動態(tài)路由表:路由器根據(jù)網(wǎng)絡(luò)系統(tǒng)的運行情況而自動調(diào)整的路由表。
6、路由表的格式及內(nèi)容:
路由表是保存子網(wǎng)標(biāo)識信息、網(wǎng)上路由器的個數(shù)和下一個路由器的名字等內(nèi)容的表。一般有目的地址、掩碼、網(wǎng)關(guān)、標(biāo)識以及接口的表項。
7、路由算法:
路由選擇協(xié)議的核心是路由算法(Routing Algorithms),即需要用何種算法來獲得路由表中的各個項目。按照路由表建立的方式,可將路由算法分為靜態(tài)路由器算法和動態(tài)路由器算法。
距離向量路由算法(Distance Vector Routing)算法的核心思想是路由器根據(jù)距離選擇使用那條路由。
鏈路狀態(tài)路由算法(Link State Routing)最短路徑優(yōu)先算法。
8、路由器
1.路由器(Routing)是一種典型的網(wǎng)絡(luò)層設(shè)備,對經(jīng)過的分組進行處理,同時它還要運行路由協(xié)議,生成路由表,對每一個分組進行尋路,并轉(zhuǎn)發(fā)到相應(yīng)的輸出端口。
2.路由器的功能
a)?協(xié)議轉(zhuǎn)換 能對網(wǎng)絡(luò)層及其以下各層的協(xié)議進行轉(zhuǎn)換。
b)?路由選擇 當(dāng)分組從互聯(lián)的網(wǎng)絡(luò)達(dá)到路由器時,路由器能根據(jù)分組的目的地址按某種路由策略,選擇最佳路由,將分組轉(zhuǎn)發(fā)出去,并能隨網(wǎng)絡(luò)拓?fù)涞淖兓詣诱{(diào)整路由表。
c)?能支持多種協(xié)議的路由選擇 路由器與協(xié)議有關(guān),不同的路由器有不同的路由協(xié)議,支持不同的網(wǎng)絡(luò)層協(xié)議。
d)?流量控制 路由器不僅具有緩沖區(qū),而且還能夠控制收發(fā)雙方數(shù)據(jù)流量使二者更佳匹配。
e)?分段和組裝 當(dāng)多個網(wǎng)絡(luò)通過路由器互聯(lián)時,個網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)分組大小可能不同,這就需要路由器對分組進行分段或組裝。
f)?網(wǎng)絡(luò)管理 路由器是連接多種網(wǎng)絡(luò)的匯聚點,網(wǎng)間分組都要通過它,在這里對網(wǎng)絡(luò)中的分組、設(shè)備進行監(jiān)視和管理是比較方便的,因此,高檔路由配置了網(wǎng)絡(luò)管理功能,以便提高網(wǎng)絡(luò)的運行效率、可靠性和可維護性。
?3、路由器的體系結(jié)構(gòu)
一個通用的路由器體系結(jié)構(gòu)可劃分為輸入端口、交換結(jié)構(gòu)、輸出端口和選路出拉力器4個大的組成部分。
1)、輸入端口:
a)?線路端接(Line Termination) 工作在物理層,負(fù)責(zé)比特流的接收。
b)?數(shù)據(jù)鏈路處理(協(xié)議、拆封)工作在數(shù)據(jù)鏈路層。
c)?查找、轉(zhuǎn)發(fā)、排隊(Lookup、Forwarding、Queuing)查找是一種分散化的交換,按照給出的分組信宿,使用輸入端口內(nèi)存中存儲的路由表,查找輸出端口;轉(zhuǎn)發(fā)是以線路速度完成輸入端口的處理;排隊是指假如分組到達(dá)的速度快于轉(zhuǎn)發(fā)到交換網(wǎng)絡(luò)(Switch Fabric)的速度時,要進行排隊。
2)、交換結(jié)構(gòu)
a)?內(nèi)存交換(Switching Via Memory);
b)?總線交換(Switching Via Bus);
c)?交叉開關(guān)型交換;
3)、輸出端口
4)、選路處理器
4、路由器的工作流程
a)?網(wǎng)絡(luò)接口接收分組
b)?根據(jù)網(wǎng)絡(luò)的物理接口,路由器調(diào)用相應(yīng)的數(shù)據(jù)鏈路層功能模塊以解釋處理此分組的數(shù)據(jù)鏈路層協(xié)議報頭。
c)?在數(shù)據(jù)鏈路層完成對數(shù)據(jù)幀的完成性驗證后,路由器開始處理此數(shù)據(jù)幀的IP層。
d)?根據(jù)在路由表中所查到的下一跳IP地址,IP分組送往相應(yīng)的輸出數(shù)據(jù)鏈路層,并封裝上相應(yīng)的數(shù)據(jù)鏈路層幀頭,最后經(jīng)網(wǎng)絡(luò)物理接口發(fā)送出去。
6.8、Internet 路由協(xié)議
1、Internet 路由選擇協(xié)議劃分成兩大類
i.?內(nèi)部網(wǎng)關(guān)協(xié)議IGP
ii.?外部網(wǎng)關(guān)協(xié)議EGP
2、路由信息協(xié)議RIP
i.?路由信息協(xié)議RIP是最早的AS內(nèi)部Internet路由協(xié)議之一,切目前仍在廣泛使用。
ii.?RIP報文格式

A:命令(請求或響應(yīng)) B:版本號 C:零
D:地址類標(biāo)識符 E:IP地址 F:量度
3、開放式最短路徑優(yōu)先OSPF
1、開放式最短路徑優(yōu)先OSPF是一種鏈路狀態(tài)路由算法(RFC 1131/1147)的內(nèi)部網(wǎng)關(guān) 協(xié)議,它由IETF的內(nèi)部網(wǎng)關(guān)協(xié)議(IGP)工作組與1989年推出。OSPF有兩種主要特 性:一個是它的開放性,OSPF協(xié)議是面向大眾的;二是基于SPF(Shortest Path First) 算法的協(xié)議。SPF算法有時也根據(jù)其發(fā)明人的姓名命名,被稱為Dijkstra算法。
2、OSPF報文頭格式:
1)版本號;2)類型;3)報文長度;4)路由器ID ;5)區(qū)域ID ;
6)校驗和;7)認(rèn)證(Authentication)類型; 8)認(rèn)證 ;9)數(shù)據(jù);
4、邊界網(wǎng)關(guān)協(xié)議BGP
(1)、BGP是Internet中極為重要的協(xié)議,從本質(zhì)上講,是這個協(xié)議把所有的知識融合在一起了
(2)BGP主要特征:
(3)路徑屬性:
(4)BGP報文:
1.標(biāo)記(Marker);
2.長度(Length);
3.類型(Type) 1)Open 報文,2)Update報文,
?? ? ? ???3)Keepalive報文,4)Notification報文
6.9、IP多播和IGMP
1、實現(xiàn)IP多播的要素
i.?偵聽特定IP多播地址的哪一組主機成為一個主機組;
ii.?主機組成的成員數(shù)量沒有限制;
iii.?主機可以跨越多個網(wǎng)段;
iv.?主機可以向不屬于對應(yīng)的主機組的某個IP多播地址發(fā)送流量;
v.?IP多播地址(也稱為組地址)在224.0.0.0到239.255.255.255的D類地址范圍內(nèi),這是通過將前四個高序位置設(shè)置為1110來定義的。
2、主機的IP多播支持
a)?為了是主機能夠發(fā)送IP多播報文
i.?確定要使用的IP多播地址
ii.?該IP多播地址可由應(yīng)用程序硬編碼,或者通過一種分配唯一多播地址的機制來獲得。
iii.?將IP多播數(shù)據(jù)報放到傳輸介質(zhì)上。
iv.?發(fā)送主機必須構(gòu)造一個包含預(yù)期目標(biāo)IP多播地址的IP數(shù)據(jù)報,并將它放到傳輸介質(zhì)上。
b)?為了主機能夠接收IP多播數(shù)據(jù)報
i.?通知IP接收多播流量
ii.?為了確定要使用的IP多播地址,應(yīng)用程序必須首先確定是創(chuàng)建一個新的主機組,還是使用某個現(xiàn)有的主機組。
iii.?在確定組地址后,應(yīng)用程序必須通知IP在某個指定的目標(biāo)IP多播地址接收多播流量。
iv.?將多播MAC地址注冊到網(wǎng)絡(luò)適配器
v.?通知本地路由器
3、Internet組管理協(xié)議IGMP
i.?IGMP讓一個物理網(wǎng)絡(luò)上所有系統(tǒng)指導(dǎo)主機當(dāng)前所在的多播組。多播路由器需要這些信息以便知道多播數(shù)據(jù)報應(yīng)該向哪些接口轉(zhuǎn)發(fā)。
ii.?IGMP報文
1.?版本 該字段標(biāo)識版本號;
2.?類型 該字段標(biāo)志報文類型;
a)?類型1:說明是由多播路由器發(fā)出的查詢報文;
b)?類型2:說明是主機發(fā)出的報告報文;
3.?未用 該字段必須設(shè)為0 ;
4.?校驗和 該字段包含一個用于IGMP報文的所有8的校驗和;
5.?組地址 該地址是D類IPV4地址,在查詢報文中組地址設(shè)置為0,在報告報文中組地址為要參加的組地址。
iii.?加入一個多播組
iv.?IGMP報告何 查詢
1.?當(dāng)?shù)谝粋€進程加入一個組時,主機就發(fā)送一個IGMP報告,如果一個主機的多個進程加入同一組,只發(fā)送一個IGMP報告,這個報告將發(fā)送到進程加入組所在的同一接口上。
2.?進程離開一個組時,主機不發(fā)送IGMP報告,即便是組中的最后一個進程離開。主機知道在確定的組中已不再有組成員后,在隨后受到的IGMP查詢中就不再發(fā)送報告報文。
3.?多播路由器定時發(fā)送IGMP查詢來了解是否還有任何主機包含屬于多播組的進程。
4.?主機通過噶送IGMP報告來響應(yīng)一個IGMP查詢,對每個至少還包含一個進程的組均要發(fā)回IGMP報告。
第七章、端到端的傳輸服務(wù)
7.1 傳輸層的概念
??傳輸層位于應(yīng)用層和網(wǎng)絡(luò)層之間,是分層網(wǎng)絡(luò)體系結(jié)構(gòu)的核心部分。
??傳輸層的作用:監(jiān)管數(shù)據(jù)從一個應(yīng)用進程傳輸?shù)搅硪粋€進程,在高層(會話層、表示層、應(yīng)用層)協(xié)議和低層(網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層、物理層)提供的服務(wù)之間擔(dān)當(dāng)聯(lián)絡(luò)工作。
7.1.1 傳輸層的功能
??通信子網(wǎng):由物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層組成,為網(wǎng)絡(luò)環(huán)境中的主機提供了點對點的通信服務(wù)。
??傳輸層的功能:為網(wǎng)絡(luò)環(huán)境中主機的應(yīng)用進程提供從源端到目的端(端到端)的進程通信服務(wù)。傳輸層負(fù)責(zé)整個報文端到端的傳輸過程,保證整個報文按順序到達(dá)目的端,并可進行差錯控制和流量控制。主要作用:為高層協(xié)議屏蔽下層操作的細(xì)節(jié)。主要任務(wù):把網(wǎng)絡(luò)層的數(shù)據(jù)交付給正確的應(yīng)用程序。
設(shè)計傳輸層的目的:彌補通信子網(wǎng)服務(wù)的不足,提高傳輸服務(wù)的可靠性與保證服務(wù)質(zhì)量。
7.1.2 傳輸層提供的服務(wù)
??傳輸層提供的服務(wù)由在兩個傳輸實體之間使用的傳輸協(xié)議實現(xiàn),在互聯(lián)網(wǎng)上提供服務(wù)。傳輸協(xié)議向應(yīng)用層提供的服務(wù)可包括端到端的傳輸、服務(wù)點尋址、可靠傳輸、流量控制等。此外,為提高傳輸效率,傳輸層的所有協(xié)議都為應(yīng)用進程提供多路復(fù)用、多路分解服務(wù),以及帶寬保證和傳輸延時保證等其他服務(wù)。
1、端到端的傳輸:在協(xié)議體系中,傳輸層位于網(wǎng)絡(luò)層之上,傳輸層協(xié)議為不同主機上運行的進程提供邏輯通信,而網(wǎng)絡(luò)層協(xié)議為不同主機提供邏輯通信。傳輸層協(xié)議是在端系統(tǒng)中實現(xiàn)的。傳輸層監(jiān)管整個報文端到端的傳輸,確保整個報文段完整的到達(dá)。
2、服務(wù)點尋址:傳輸層和會話層的功能相互作用。(應(yīng)用程序:許多協(xié)議將會話層、表示層、應(yīng)用層的協(xié)議組合在一起。)傳遞到會話層的功能實際上是傳遞給應(yīng)用程序,傳輸層中兩個對等傳輸實體之間的通信遵循傳輸層協(xié)議,傳輸層提供的服務(wù)也使用了網(wǎng)絡(luò)層向上提供的服務(wù)。層與層之間交換信息的抽象接口分別是傳輸層服務(wù)訪問點(Transport Service Access Point,TSAP)和網(wǎng)絡(luò)層服務(wù)訪問點(Network Service Access Point,NSAP)。為了保證從服務(wù)訪問點到服務(wù)訪問點的正確傳輸,除了數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層的尋址方式外,還有一個方案是將服務(wù)與TSAP地址關(guān)聯(lián)編址。
3、可靠數(shù)據(jù)傳輸:包括以下4個方面:
①差錯控制:傳輸數(shù)據(jù)可靠性的主要目標(biāo)。差錯處理的機制是基于差錯檢測和重傳。差錯處理通常用到由軟件實現(xiàn)的算法(如校驗和)來實現(xiàn)。傳輸層必須進行端到端檢查,以保證報文段正確到達(dá)。
②順序控制:在發(fā)送端傳輸層負(fù)責(zé)保證從高層接收到的數(shù)據(jù)單元可被低層使用。在接收端,傳輸層負(fù)責(zé)保證傳輸?shù)牟煌握_的重新組裝(通過分段和連接,在段尾增加序列號)。
③丟失控制:確保傳輸?shù)乃衅味紩竭_(dá)目的端。
④重復(fù)控制:保證沒有重復(fù)的數(shù)據(jù)段到達(dá)接收端系統(tǒng)。
4、流量控制:是端到端的,而不是像數(shù)據(jù)鏈路層那樣作用在單條鏈路上。使用滑動窗口協(xié)議,窗口的大小可變化以適應(yīng)緩沖區(qū)的占用,窗口實際可容納的數(shù)據(jù)量可協(xié)商?;瑒哟翱谟脕硎菙?shù)據(jù)傳輸更加有效,同時也控制數(shù)據(jù)的流量,使接收端不會變的過分擁擠。
7.1.3 傳輸層的協(xié)議
1、面向連接的傳輸協(xié)議
1)連接的建立。作用:確認(rèn)通信雙方的存在,分配通信所需系統(tǒng)資源,協(xié)商通信所需參數(shù)。
??空閑狀態(tài):服務(wù)器沒有啟動相應(yīng)的應(yīng)用進程,此時即使有客戶機發(fā)出連接請求也不響應(yīng)。
??偵聽狀態(tài):服務(wù)器進程啟動,分配好系統(tǒng)資源,等待客戶機的連接請求。
連接狀態(tài):客戶機與服務(wù)器已經(jīng)建立連接,正在進行數(shù)據(jù)傳輸。
采用三次握手方案建立連接:
①請求連接的主機A發(fā)送連接請求報文到預(yù)期的接收端主機B。連接請求報文中有請求序列號。②響應(yīng)的主機B回送一個連接應(yīng)答報文到主機A。連接應(yīng)答報文中包含請求的序列號以及主機B指定的連接序號。③主機A收到報文后給主機B回送一個連接確認(rèn)報文,建立連接。
2)連接的釋放:非對稱式釋放和對稱式釋放。通常用三次握手+定時器的方法釋放連接。
3)網(wǎng)絡(luò)故障的恢復(fù)。網(wǎng)絡(luò)本身的故障:網(wǎng)絡(luò)的物理連接或網(wǎng)絡(luò)設(shè)備出現(xiàn)故障。系統(tǒng)故障:發(fā)送端或接收端的主機系統(tǒng)發(fā)生故障,應(yīng)用程序在沒有發(fā)送釋放連接請求時突然中斷。網(wǎng)絡(luò)故障的判斷采用超時發(fā)現(xiàn)機制。故障的恢復(fù)是指當(dāng)網(wǎng)絡(luò)或系統(tǒng)故障消除后,發(fā)送端和接收端自動恢復(fù)到故障前的連接狀態(tài)。
2、無連接的傳輸協(xié)議
??不保證數(shù)據(jù)報可靠、按序提交,當(dāng)發(fā)送端發(fā)送數(shù)據(jù)后,就失去了對數(shù)據(jù)報的控制。由于沒有流量控制、差錯控制和連接管理,所以協(xié)議實現(xiàn)相對比較簡單,可用于對服務(wù)質(zhì)量要求不太高的網(wǎng)絡(luò)應(yīng)用。它是利用網(wǎng)絡(luò)層提供的服務(wù)來實現(xiàn)的,而網(wǎng)絡(luò)層提供的服務(wù)比較可靠,所以無連接的傳輸協(xié)議出差錯的概率非常低。
7.2 ?TCP/IP協(xié)議體系的傳輸層
??從協(xié)議體系來講,Internet是一個TCP/IP網(wǎng)絡(luò),它為應(yīng)用層提供了兩種傳輸協(xié)議。一、用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol,UDP),為調(diào)用應(yīng)用進程提供一種不可靠、無連接的服務(wù)。二、傳輸控制協(xié)議(Transmission Control Protocol,TCP),它為調(diào)用應(yīng)用進程提供了一種可靠的、面向連接的服務(wù)。
7.2.1 ?TCP/IP協(xié)議體系傳輸層功能
??UDP與TCP協(xié)議的基本功能:將IP的兩個終端系統(tǒng)之間的傳輸服務(wù)擴展為終端系統(tǒng)上運行的兩個進程之間的傳輸服務(wù)。在頭部中加入糾錯字段來提供完整性檢測。
??傳輸層的多路復(fù)用和多路分解:主機之間的傳輸服務(wù)擴展到進程之間的傳輸服務(wù)。
??UDP提供的服務(wù):進程之間數(shù)據(jù)傳輸服務(wù)、差錯檢測。UDP協(xié)議是不可靠的服務(wù),不能保證由一個進程發(fā)出的數(shù)據(jù)能完整的到達(dá)目的進程。不需建立連接,報文在邏輯通道傳送,不需確認(rèn),所以在某種情況下,UDP協(xié)議是一種有效的工作方式。
??TCP提供的服務(wù):①面向連接的傳輸服務(wù)。TCP報文段是在傳輸層抽象的端到端邏輯信道中傳送的,這種信道是可靠的全雙工信道。TCP不提供廣播或多播服務(wù)。②提供可靠的數(shù)據(jù)傳輸。通過數(shù)據(jù)流量控制、序列編號、確認(rèn)和計時器等措施,保證了數(shù)據(jù)正確有序的從發(fā)送端進程傳送到接收端進程。③使用擁塞控制機制。
7.2.2端口標(biāo)志
1、傳輸層和網(wǎng)絡(luò)層在功能上的最大區(qū)別是傳輸層提供了進程通信能力,即端到端的通信。
2、端口與TSAP(傳輸層協(xié)議服務(wù)訪問點)等價的。應(yīng)用層的各種進程都通過相應(yīng)的端口與傳輸層實習(xí)進行交互。
3、傳輸層接收到數(shù)據(jù)后,如何區(qū)分?jǐn)?shù)據(jù)到底是發(fā)給哪個應(yīng)用進程?為此,在TCP/IP協(xié)議體系中引入了端口(Port)和套接字(Socket)概念。
4、物理層通信時需要使用通信線路號;
???數(shù)據(jù)鏈路層的地址在幀頭中,通信的兩個數(shù)據(jù)鏈路層通過幀地址來確定通信關(guān)系,實現(xiàn)之間的虛擬通信;
???網(wǎng)絡(luò)層主要任務(wù)是根據(jù)源結(jié)點與目的結(jié)點的網(wǎng)絡(luò)地址,通過路由選擇,為報文分組穿過復(fù)雜的互聯(lián)網(wǎng)選擇一條最佳的路徑;
??傳輸層為計算機之間的進程通信提供服務(wù),進程地址也成為端口號;
??到了應(yīng)用層,需要為客戶機和服務(wù)器分配名字;
5、端口就是用于標(biāo)志傳輸層協(xié)議和應(yīng)用進程之間的數(shù)據(jù)接口。端口的基本概念是:應(yīng)用層的源進程將報文發(fā)送給傳輸層的某個端口,而應(yīng)用層的目的端口接收報文。
6、端口的作用就是讓應(yīng)用層的各種進程都將其數(shù)據(jù)通過端口向下交付給傳輸層,以及讓傳輸層知道應(yīng)當(dāng)將其報文段中的數(shù)據(jù)向上通過端口交付給應(yīng)用層相應(yīng)的進程。從從此意義講,端口是用來標(biāo)志應(yīng)用層進程的。
7、每個端口用一個16位的無符號整數(shù)值進行標(biāo)志,并稱為端口號。16位的端口號可區(qū)分6 4K個端口,已經(jīng)足夠用。在本地主機中,一個應(yīng)用進程對應(yīng)著唯一的一個端口號。不同的主機端口的具體實現(xiàn)方法差異大,取決于操作系統(tǒng)。端口號由不同主機的TCP或UDP協(xié)議獨立分配,所以不可能全局唯一。
8、端口的分配有兩種基本方式:一種是全局分配,由網(wǎng)絡(luò)中具有端口分配功能的機構(gòu)負(fù)責(zé)分配一些常用的應(yīng)用層程序固定使用的熟知端口(Well Known Port)。0號端口未使用,1-255號端口號被標(biāo)準(zhǔn)服務(wù)保留,稱為熟知保留端口,由RFC1700定義。當(dāng)開發(fā)一個新的應(yīng)用程序時候,必須為其分配一個端口號。服務(wù)器程序運行之后,就在各自相應(yīng)的端口上等待。如果希望使用某一臺主機的相應(yīng)程序,只要向該服務(wù)對應(yīng)的套接字上發(fā)送數(shù)據(jù)就可以了。另一種是主機建立連接時為用戶進程動態(tài)分配的端口(又稱動態(tài)聯(lián)編),稱為一般端口或臨時端口。取值大于255,即256-1023為其他保留端口號,1024-65535為用戶自定義。
9、常用端口號:FTP-21;Telnet-23;SMTP-25;DNS-53;TFTP-69;HTTP-80;POP3-110;SNMP-161;
10、網(wǎng)絡(luò)環(huán)境中進程通信需解決的問題:
(1)、進程標(biāo)志:?(2)多重協(xié)議識別。
完整的進程標(biāo)志必須是:本機主機地址:本機進程標(biāo)志,遠(yuǎn)程主機地址:遠(yuǎn)程進程標(biāo)志,如主機X的進程6與主機Y的進程9通信。
網(wǎng)絡(luò)中一個進程的全網(wǎng)唯一的標(biāo)志需要協(xié)議,本地地址,本地端口號三元組表示;
一個完整的進程通信標(biāo)志需要協(xié)議,本地地址,本地端口號,遠(yuǎn)程地址,遠(yuǎn)程端口號五元組表示。
11、TCP,UDP協(xié)議的應(yīng)用程序分為兩類:服務(wù)器程序(使用固定的熟知端口號)和客戶機程序(任意選擇端口號);
12、在TCP/IP協(xié)議中,為了通信時不致發(fā)生混亂,端口號必須與主機IP地址結(jié)合起來一起使用,稱之為套接字或者插口,以便唯一的標(biāo)志一個連接端點。在發(fā)送和接收端分別創(chuàng)建一個套接字的連接端點即可獲得TCP,UDP服務(wù)。
13、套接字由IP地址(32位)與端口號(16位)組成,即套接字地址表示為:IP地址:端口號。例如,端點(202.112.7.12:80)表示IP地址為202.112.7.12的主機上的80號TCP端口。
14:、在TCP協(xié)議中,一個套接字可被多個連接同時使用,這是一條需由兩端的套接字來識別,并把這對套接字地址稱為套接字對(Socket Pair),表示:客戶機的IP地址:客戶機的端口號,服務(wù)器的IP地址:服務(wù)器的端口號。
例如:一個客戶機的套接字地址為:128.2.194.242:51213,其中端口號51213是臨時端口號,一個服務(wù)器的套接字地址為:208.216.181.15:80,其中端口號80是與服務(wù)器相關(guān)的熟知端口號。則其直接連接的套接字對就是: 128.2.194.242:51213,208.216.181.15:80
15、套接字,端口,IP地址的關(guān)系如下:通信雙方各自的Socket,唯一的確定了本次雙方的通信,Socket中的IP地址唯一的標(biāo)志了一臺主機。而Socket中的端口號唯一的標(biāo)志了該通信主機上的一個程序或者進程。例如,若一臺IP地址為130.8.16.13的主機,端口號為1200,則套接字為130.8.16.13:1200
16、端口號從0-65535,其中1-1023是熟知端口號,已規(guī)定用途,不可更改。
17、為了實現(xiàn)進程間的通信,TCP不僅要接受命令調(diào)用,還要為進程返回關(guān)于連接的消息和對用戶命令要有成功及失敗的應(yīng)答提示。應(yīng)用最廣泛的是在BSD UNIX上首先是要的應(yīng)用編程套接字接口。套接字接口是一組用來結(jié)合UNIX I/O函數(shù)創(chuàng)建網(wǎng)絡(luò)應(yīng)用的函數(shù)。
18、套接字的分類:a.流套接字:是面向連接的,提供雙向,有序,無重復(fù)且無記錄邊界的數(shù)據(jù)流服務(wù)b.數(shù)據(jù)報套接字:無連接,支持雙向數(shù)據(jù)流,但不保證數(shù)據(jù)傳輸?shù)目煽啃?,有序,和無重復(fù)性。
若使用無連接的UDP協(xié)議,雖然在相互通信的兩個進程間沒有一天虛連接,但在發(fā)送端UDP一定要有一個發(fā)送端口,而在接收端UDP也一定有一個接收端口,因此同樣適用套接字。
19,BSD UNIX上的套接字:
Socket()創(chuàng)建一個套接字描述符;Bind()為套接字設(shè)置本主機的IP地址和端口號;Listen()表示該套接字愿意接收連接請求,并設(shè)置等待對列的長度;Accept()服務(wù)器通過其等待來自客戶機的連接請求;Connect()客戶機通過其來建立于服務(wù)器的連接;Send()在建好的連接上發(fā)送數(shù)據(jù);Receive()從建好的連接上接收數(shù)據(jù);
Close()釋放一個連接;
7.2.3多路復(fù)用與多路分解服務(wù)
1、傳輸層的多路復(fù)用與多路分解就是將網(wǎng)絡(luò)層所提供的主機到主機交付任務(wù)擴展到主機上運行的應(yīng)用進程到應(yīng)用進程的交付服務(wù)。
2、多路復(fù)用(Multiplexing)是指,在源主機的不同套接字中收集數(shù)據(jù)塊,并為每個數(shù)據(jù)塊封裝上首部信息從而生成報文段,然后將報文段傳遞到網(wǎng)絡(luò)層。
多路分解(Demultiplexing)是指,將傳輸層報文段中的數(shù)據(jù)交付到應(yīng)用進程。
3、傳輸層實現(xiàn)多路分解服務(wù)的方法是:給主機上的每個套接字分配一個端口號,當(dāng)報文段到達(dá)主機時,傳輸層堅持報文段中的目的端口號,并將其定向到相應(yīng)的套接字。然后報文段中的數(shù)據(jù)通過套接字進入其所連接的應(yīng)用進程。
4、無連接的多路復(fù)用和多路分解:一個UDP的套接字由一個包含目的IP地址和目的端口號組成的二元組來標(biāo)志。因此,若兩個UDP報文段有不同的源IP地址或源端口號,但具有相同的目的IP地址和目的端口號,那么這兩個報文段將通過相同的目的套接字定向到相同的目的應(yīng)用進程。
5、面向連接的多路復(fù)用和多路分解:TCP套接字和UDP套接字存在的差別是:TCP套接字通過一個四元組(源IP地址,源端口號,目的IP地址,目的端口號)來標(biāo)識,這樣,當(dāng)一個TCP報文段從網(wǎng)絡(luò)到達(dá)一臺主機時,主機使用四個值來將報文段定向(多路分解)到相應(yīng)的套接字。因此,兩個具有不同源IP地址或者源端口號的TCP報文段將被定向到兩個不同的套接字,除非TCP攜帶了初始創(chuàng)建連接的請求。
當(dāng)一個TCP報文段到達(dá)服務(wù)器時,所有4個字段用了定向報文段相應(yīng)的套接字。
7.2.4數(shù)據(jù)封裝(Encapsulation)概念綜述
首先,由發(fā)送端系統(tǒng)應(yīng)用層產(chǎn)生一個數(shù)據(jù)信息,即應(yīng)用層報文。
接下來,將應(yīng)用層報文傳遞到傳輸層并封裝進UDP或TCP頭部。若應(yīng)用層協(xié)議是無連接的,則添加UDP頭部,形成數(shù)據(jù)報;若是面向連接的,則添加TCP頭部,形成報文段。傳輸層的頭部包含對應(yīng)于應(yīng)用層協(xié)議的源端口號和目的端口號。傳輸層報文段也封裝了應(yīng)用層報文。
此時,傳輸層想網(wǎng)絡(luò)層傳遞所形成的具有UDP或TCP數(shù)據(jù)的報文段。此處,網(wǎng)絡(luò)層附加上IP頭部,形成網(wǎng)絡(luò)數(shù)據(jù)報,有時也將該層的數(shù)據(jù)結(jié)構(gòu)成為分組。
然后,IP數(shù)據(jù)報被傳送到數(shù)據(jù)鏈路層。此處附加數(shù)據(jù)鏈路層頭部信息,并穿件數(shù)據(jù)鏈路層幀。數(shù)據(jù)鏈路層頭部信息包含了源和目的主機的硬件地址,,其已被固化進網(wǎng)卡。
最后,形成幀被傳遞給物理層一比特的形式放在傳輸介質(zhì)上傳輸。
在接收端系統(tǒng),隨著數(shù)據(jù)結(jié)構(gòu)從下層遞交到上層,各層的頭部被依次除去。
7.3用戶數(shù)據(jù)報協(xié)議UDP
1、UDP是在計算機上規(guī)定用戶用數(shù)據(jù)報方式進行通信的協(xié)議,無連接方式,提供了應(yīng)用程序之間傳輸數(shù)據(jù)報的基本機制。必須在IP層上運行。
2、與IP協(xié)議相比,僅增加兩個內(nèi)容:端口和校驗和。有端口就能進行復(fù)用和解復(fù)用;校驗和提供差錯檢測功能。
3、UDP的特殊優(yōu)點:
a,UDP向應(yīng)用系統(tǒng)提供了一種發(fā)送封裝原始IP數(shù)據(jù)報的方法,且在發(fā)送時無需建立連接。這樣,避免了建立和釋放連接的麻煩,也減少了開銷和發(fā)送數(shù)據(jù)之前的時延。
b.利用協(xié)議端口,UDP能夠區(qū)分在同一臺主機上運行的多個應(yīng)用進程;利用校驗和機制,在把數(shù)據(jù)向應(yīng)用進程提交之前,先對數(shù)據(jù)做一些差錯檢查。
c,UDP只有8B的頭部開銷,比TCP的20B頭部開銷短得多。
d,UDP不使用擁塞控制,不提供端到端的確認(rèn)和重傳功能,也不保證數(shù)據(jù)報一定能到達(dá)目的端。所以主機不需要維持具有許多參數(shù),復(fù)雜的連接狀態(tài)表。
e.通過UDP協(xié)議,可以發(fā)送組播數(shù)據(jù),所以使用組播服務(wù)的程序有建立在UDP協(xié)議上。
f.不同的網(wǎng)絡(luò)使用不同的協(xié)議。如下:

7.3.2UDP報文結(jié)構(gòu)
1、UDP的報文格式

由圖可知,UDP數(shù)據(jù)報包括UDP報文頭和數(shù)據(jù)兩部分。UDP報文由5個字段域組成,其中,前四個組成UDP報頭,每個字段域有兩個字節(jié)組成;用戶數(shù)據(jù)的字段數(shù)由應(yīng)用程序及所需傳輸?shù)臄?shù)據(jù)決定。
A,源端口和目的端口:該字段包含16bit的UDP協(xié)議端口號。源端口是用來識別本機通信端點,是可選項,不用時置0.目的端口用來識別遠(yuǎn)程機器的通信端點。源和目的端口使得多個應(yīng)用程序可以多路復(fù)用同一個傳輸層協(xié)議。
B.報文長度:占16位,該字段記錄了UDP數(shù)據(jù)報的總長度,以字節(jié)為單位,包括8B的UDP和其后的數(shù)據(jù)部分。最小值是8B(即報頭長度),最大值是65535B.
C,校驗和:占16位,用來檢測傳輸過程中是否出現(xiàn)錯誤。D.用戶數(shù)據(jù):長度有應(yīng)用程序及所需傳輸?shù)臄?shù)據(jù)決定。
可計算出UDP數(shù)據(jù)報中的用戶數(shù)據(jù)最大長度比這個最大值小。
2、由于UDP采用無差錯控制機制,所以其發(fā)送過程與IP類似。UDP數(shù)據(jù)報+IP頭部=IP分組,通過采用ARP協(xié)議來解析物理地址,然后發(fā)至目的端口。
7.3.3UDP校驗和
1、UDP校驗和用于檢驗UDP報頭、數(shù)據(jù)和概念上的偽UDP報頭之和。算法是將所有16位字以補碼形式相加,然后對其加和取補。稱作偽頭部是因為它并不是UDP報文的真正報頭,而是僅在計算UDP校驗和時,臨時吧一些額外的內(nèi)容加在一起計算累加求和,把這些額外的內(nèi)容合在一起稱為偽報頭。且偽報頭既不向下層協(xié)議進程發(fā)送,也不向上層遞交。
2、收發(fā)兩端的兩個進程是否有可能通過UDP提供可靠的數(shù)據(jù)傳輸?
?答案:可以。但需要把確認(rèn)和重傳方案添加到應(yīng)用程序中,有應(yīng)用程序來模擬面向連接的部分功能。應(yīng)用程序不能期望UDP來提供可靠的數(shù)據(jù)傳輸。
7.4傳輸控制協(xié)議TCP
1、TCP協(xié)議提供完全可靠的(沒有數(shù)據(jù)重復(fù)和丟失)、端到端、面向連接的全雙工的字節(jié)流傳輸服務(wù),允許兩個應(yīng)用進程建立一個連接,并在任何一個方向上發(fā)送數(shù)據(jù),然后終止連接。
2、TCP提供服務(wù)的主要特征:A.提供可靠服務(wù):沒有數(shù)據(jù)重復(fù)或者丟失;B.提供端到端的服務(wù);C.提供面向連接的服務(wù);D.提供字節(jié)流服務(wù);E.支持全雙工模式
7.4 ?傳輸控制協(xié)議TCP
7.4.1 ?TCP操作與可靠數(shù)據(jù)傳輸
TCP協(xié)議提供一個完全可靠地(沒有數(shù)據(jù)重復(fù)或丟失)、端到端的、面向連接的、全雙工的字節(jié)流傳輸服務(wù),允許兩個應(yīng)用進程建立一個連接,并在任何一個方向上發(fā)送數(shù)據(jù),然后終止連接。每個TCP連接可靠地建立,友好的終止,在終止發(fā)生前的所有數(shù)據(jù)都能被可靠傳輸。TCP使用三次握手的方式建立一個連接,數(shù)據(jù)傳輸完成后,任何一方都可以斷開該連接。也就是說,一個應(yīng)用進程開始傳送數(shù)據(jù)到另一個應(yīng)用進程之前,它們必須建立連接,需要相互傳送以下必要的參數(shù),以確保數(shù)據(jù)的正確傳輸。
從應(yīng)用進程角度看,TCP提供的服務(wù)的主要特征:
????1、TCP協(xié)議提供可靠性服務(wù):TCP協(xié)議確保通過一個連接發(fā)送的數(shù)據(jù)能夠被接收端正確無誤的接收到,且不會發(fā)生數(shù)據(jù)丟失和亂序。TCP使用了各種機制確保服務(wù)的可靠性。
(1)選擇適合發(fā)送的數(shù)據(jù)塊大小,賦予序列號
????????TCP工作時可以靈活的決定緩存和發(fā)送時機。TCP連接一旦建立,應(yīng)用程序就不斷地把數(shù)據(jù)先發(fā)送到TCP發(fā)送緩存(TCP Send Buffer)。然后,TCP把數(shù)據(jù)流分成一塊一塊(Chunk)的,在裝上TCP協(xié)議頭部(TCP Header)形成TCP報文段,即將應(yīng)用程序數(shù)據(jù)封裝成TPDU。
這些報文段送到網(wǎng)絡(luò)層,由IP協(xié)議封裝成IP數(shù)據(jù)報后發(fā)送到網(wǎng)絡(luò)中。當(dāng)對方接收到一個報文段后就把它存放到TCP接收緩存(TCP Receive Buffer)中,應(yīng)用程序不斷地從這個緩存中讀取數(shù)據(jù)流。
???(2)對發(fā)送的TPDU啟動計時器,超時重傳
????????當(dāng)TCP發(fā)出一個報文段后,就啟動一個定時器,等待目的端確認(rèn)收到這個報文段。如不能及時收到一個確認(rèn),將重傳這個報文。
???(3)對正確接收的TPDU進行確認(rèn)
????????當(dāng)TCP收到發(fā)自TCP連接另一端的報文段后,將發(fā)送一個確認(rèn)。該確認(rèn)不是立即發(fā)送,通常要推遲幾分之一秒。
???(4)對報頭和數(shù)據(jù)計算校驗和
???????TCP將對接收的TPDU檢錯,目的是檢測數(shù)據(jù)在傳輸過程中的任何變化。如收到的報文段的檢驗和由差錯,TCP將丟棄差錯的TPDU和不確認(rèn)收到此報文段,希望發(fā)送端超時并重傳。
???(5)識別并丟棄重復(fù)的TPDU
?????TCP報文段作為IP數(shù)據(jù)報來傳輸,而IP數(shù)據(jù)報的到達(dá)可能會失序,因此TCP報文段的到達(dá)也可能失序。如有必要,TCP將對收到的報文段進行重新排序,將收到的報文段以正確的順序交給應(yīng)用層。由于IP數(shù)據(jù)報會發(fā)生重復(fù),因此TCP的接收端必須丟棄重復(fù)的TPDU。
???(6)提供流量控制(實行緩沖區(qū)管理)
????????TCP協(xié)議采用滑動窗口機制,實現(xiàn)流量控制。窗口大小表示在最近收到的確認(rèn)號后允許傳輸?shù)臄?shù)據(jù)長度。數(shù)據(jù)傳輸?shù)牧髁看笮∮山邮斩舜_定。如沒有流量控制,發(fā)送端主機就可能以比接收端主機快的多的速度發(fā)送數(shù)據(jù),使得接收端的緩存出現(xiàn)溢出。
2、TCP協(xié)議提供端到端的服務(wù)
TCP協(xié)議被稱為一種端到端(End to End)協(xié)議,因為它提供一個直接從一臺計算機上的應(yīng)用進程到另一臺遠(yuǎn)程計算機上應(yīng)用進程的連接。應(yīng)用進程能請求TCP構(gòu)造一個連接、發(fā)送和接收數(shù)據(jù),以及關(guān)閉連接。
假設(shè)運行在某臺主機上的一個應(yīng)用進程想與另一臺主機上的一個應(yīng)用進程啟動一個連接,一個Java客戶程序提供發(fā)出以下命令實現(xiàn)連接:
Socket clientSocket=new Socket(“hostname”,portNumber);
其中,hostname是服務(wù)器名字,portNumber標(biāo)志服務(wù)器上的應(yīng)用進程。這樣,客戶機上的傳輸層開始于服務(wù)器上的傳輸層建立一個TCP連接。
3、TCP協(xié)議提供面向連接的服務(wù):一個應(yīng)用進程必須首先請求一個到目的端的連接,然后使用這樣連接來傳輸數(shù)據(jù)。
4、TCP協(xié)議提供字節(jié)流服務(wù)
建立好一個TCP連接,兩個應(yīng)用進程之間可以相互發(fā)送數(shù)據(jù)。兩個應(yīng)用進程通過TCP連接字節(jié)流,TCP協(xié)議不在字節(jié)流中插入記錄標(biāo)示符,稱為字節(jié)流服務(wù)(Byte Stream Service)。TCP對字節(jié)流的內(nèi)容不作解釋(不知道傳輸?shù)臄?shù)據(jù)字節(jié)流是二進制數(shù)據(jù),還是ASCII字符、EBCDIC字符或其他類型的數(shù)據(jù)),由TCP連接雙方的應(yīng)用層解釋。
5、TCP連接支持全雙工模式
全雙工是支持同時雙向傳輸。如主機1和2有連接,則主機1可向2傳送數(shù)據(jù),主機2也可向1傳送數(shù)據(jù)。
所有TCP連接都是點到點通信(只有兩個斷點),TCP協(xié)議不支持多址通信和廣播通信。
TCP協(xié)議允許用戶發(fā)送緊急數(shù)據(jù)(Urgent Data),以便接收端優(yōu)先處理。它是一種中斷機制,當(dāng)用戶按下Ctrl+C中斷一個已經(jīng)開始的遠(yuǎn)程應(yīng)用時,發(fā)送端應(yīng)用程序在數(shù)據(jù)流在?注入控制信息并將其與Urgent標(biāo)志一同交給TCP協(xié)議。這將導(dǎo)致TCP立即停止位該連接積累數(shù)據(jù),并立即傳輸該連接上已有的消息。當(dāng)緊急數(shù)據(jù)到達(dá)目的端后,接收端原有應(yīng)用程序被中斷,轉(zhuǎn)向讀取數(shù)據(jù)以找出緊急數(shù)據(jù)(緊急數(shù)據(jù)的末尾有標(biāo)記),以便進行后續(xù)處理。
7.4.2 ?TCP報文結(jié)構(gòu)
1、?TCP協(xié)議數(shù)據(jù)單元
在TCP協(xié)議中,每個報文段包含一個20B的報頭(選項部分另加)和0個至多個字節(jié)的數(shù)據(jù)域。數(shù)據(jù)字節(jié)最長不超過65 536B(IP協(xié)議在數(shù)據(jù)報的總長)-20B(IP頭)-20B(TCP報頭)=65 496B。報頭的大小必須先滿足IP數(shù)據(jù)報數(shù)據(jù)載荷長度限制,還要滿足最大鏈路層幀長度的設(shè)置,即最大傳輸單元(MTU)的限制。MTU常見值:1460B、536B或512B。

2、TCP報頭
一個TCP報頭段一TCP協(xié)議報頭域(TCP Header Field)和存放應(yīng)用程序數(shù)據(jù)的數(shù)據(jù)域(Data Fields)組成。TCP協(xié)議的全部功能體現(xiàn)在報頭域各字段中。

? ?(1)源端口號和目的端口號字段
????????16bit的源端口號用來識別本機連接點;16bit的目的端口號用來識別遠(yuǎn)程主機的連接點。
????????每個主機可自行決定如何分配自己的端口(從256號起)。端口號(16bit)+其主機的IP地址(32bit)=唯一的TASP(48bit)。
???(2)序列號和確認(rèn)號字段
序列號和確認(rèn)號字段是TCP報文段頭部中兩個最重要的域之一。由TCP收發(fā)兩端主機在執(zhí)行可靠數(shù)據(jù)傳輸時使用。
32bit的序列號字段用來指示當(dāng)前數(shù)據(jù)塊在整個消息的位置;32bit的確認(rèn)號域用來指示下一個數(shù)據(jù)塊序列號,也可以間接表示最后收到的數(shù)據(jù)塊序列號。
TCP最大報文段大?。∕aximum Segment Size):在建立TCP連接時,源端主機和目的端主機都可能宣告最大報文段大小和一個用于連接的最小報文段大小。若一端未宣告最大報文段大小,就使用預(yù)先約定的字節(jié)數(shù)(如1500、536、512)。
當(dāng)TCP發(fā)送長文件時,就把該文件分割成許多按照特定結(jié)構(gòu)組織的數(shù)據(jù)塊,除最后一個數(shù)據(jù)塊小于最大報文段大小外,其余的數(shù)據(jù)塊大小都等于最大報文段大小。在交互應(yīng)用時,報文段通常小于最大報文段大小。
在TCP數(shù)據(jù)流中的每個字節(jié)都編有號碼,例:一個106B的文件,假設(shè)最大報文段大小為103B,則第1個字節(jié)序號定義為0,每個報文段數(shù)據(jù)位1000B。

? ?(3)頭長度字段
????????4位頭長度(Length)字段用來說明TCP報文段頭部的長度,單位為由32bit組成的字的數(shù)目。
????????由于TCP選項字段(Option)是可選項,所以TCP報文段頭部的長度可變。通常該字段為空,缺省值為5。TCP報文段頭部長度共計20B。
???(4)保留字段
????????緊接在頭長度字段后有6bit未用,必須設(shè)置為0。是TCP協(xié)議在設(shè)計初準(zhǔn)備用于更正設(shè)計中的錯誤而準(zhǔn)備的。
???(5)控制位標(biāo)志字段
????????有6bit控制位標(biāo)志位(Control Flags)字段,意義如下:
????????URG(Urgent Pointer)標(biāo)志用來表示報文段中的數(shù)據(jù)已經(jīng)被發(fā)送端的高層軟件標(biāo)為Urgent(緊急數(shù)據(jù))。如URG為1,則表示本報文段中包含緊急數(shù)據(jù),此時緊急數(shù)據(jù)指針表示的值有效,表示在緊急數(shù)據(jù)后的第一個字節(jié)的偏移值(即緊急數(shù)據(jù)的總長度)。
????????ACK標(biāo)志用來表示確認(rèn)號的值有效。如ACK為1,則表示報文段中的確認(rèn)號有效。否則,無效,接收端可以忽略它。
????????PSH(Push)標(biāo)志用來標(biāo)志數(shù)據(jù)流中是否有緊急數(shù)據(jù),如為1則表示此時接收端應(yīng)把數(shù)據(jù)立即送到高層,及時其緩沖區(qū)尚未填滿。
????????RST(Reset)標(biāo)志用于復(fù)位因主機崩潰或其他原因而出現(xiàn)錯誤的連接,還可以用于拒絕非法的報文段或拒絕連接請求。RST=1表示要重新建立TCP連接。
????????SYN(Synchronize)標(biāo)志用于連接,=1時表連接要與序列號同步。在連接請求中,若SYN=1、ACK=0,表示捎帶確認(rèn)字段無效;SYN=1、ACK=1,表示連接應(yīng)答報文段應(yīng)帶有確認(rèn)。
????????FIN 標(biāo)志用于釋放連接,=1時表發(fā)送端數(shù)據(jù)已發(fā)送完畢。
???(6)窗口大小字段
????????16bit的窗口大?。╓indows Size)字段用于數(shù)據(jù)流量的控制。字段中的值表示接收端主機可接收的數(shù)據(jù)塊。
????????對每個TCP連接,主機都設(shè)置一個接收緩存,當(dāng)主機從TCP連接在接收到正確數(shù)據(jù)時將它放在接收緩存中,相關(guān)應(yīng)用程序就從緩存中讀出數(shù)據(jù)。但可能從TCP連接來的數(shù)據(jù)到達(dá)時操作系統(tǒng)正在執(zhí)行其他任務(wù),應(yīng)用程序來不及讀數(shù)據(jù),可能會使接收緩存溢出。為了減少這種可能性的出現(xiàn),接收端必須告訴發(fā)送端有多少緩存空間可利用,TCP借助它來提供數(shù)據(jù)流量的控制,這是設(shè)置TCP接收窗口大小的目的。
???(7)校驗和字段
????????校驗和字段為確保高可靠性而設(shè)置,用于校驗TCP報文段頭部、數(shù)據(jù)和概念上的偽TCP頭(Pseudo Header)之和。校驗和算法是將所有16字以補碼形式相加,再對其相加和取補。操作時該字段設(shè)置為0。因此,當(dāng)接收端對整個報文段(包括校驗和字段)進行運算時,結(jié)果為0表正確。
???????偽報頭不是TCP報文段真正的報頭,是僅在計算TCP校驗和時,臨時把它加在一起計算。在發(fā)送TCP報文段時,并不發(fā)送偽報頭的內(nèi)容。偽報頭內(nèi)容包含一個數(shù)據(jù)報的32bit源地址、目的地址、8bitTCP協(xié)議類型(值為6)及TCP報文段(包括TCP頭)總長度。如下圖。
???????在校驗和計算在包括偽TCP報頭,有助于檢測傳送的報文段是否正確,但由于參與運算的偽TCP報頭中包含的源/目的地址均是IP地址,屬于IP層不屬于傳輸層,即在傳輸層協(xié)議作校驗和計算時用到了網(wǎng)絡(luò)層的數(shù)據(jù)(IP地址),所有這種機制違反了協(xié)議的分層規(guī)則。

? ?(8)選項字段
????????選項字段用于提供額外設(shè)置,且這種額外設(shè)置不包含在標(biāo)準(zhǔn)TCP報文段頭部。這些額外設(shè)置可以是設(shè)置主機接收最大TCP載荷能力、滑動窗口大小超過64KB,及設(shè)置選擇重傳報文段等。
????????設(shè)置主機接收最大TCP載荷能力:從數(shù)據(jù)傳輸角度看,使用大報文段比使用小報文段更有效。因為20BTCP報文段頭部對于大量數(shù)據(jù)來說可忽略不計,但對于性能較差的主機則可能不具備處理大報文段的能力。因此在建立連接時,通信雙方需在選項字段中聲明其最大載荷能力并以其中最小的載荷能力作為該連接的報文段傳輸標(biāo)準(zhǔn)。若某臺主機未使用該選項聲明其最大載荷能力,則以缺省值536B作為去載荷能力,即具有接受長度為(536+20)B=556B的TCP報文段載荷能力是在Internet上必須達(dá)到的主機性能。
滑動窗口設(shè)置為64KB,但在帶寬高、時延長或兩者兼?zhèn)涞木€路應(yīng)用時會出現(xiàn)線路利用率低的問題。在衛(wèi)星通信連接時更糟糕。解決方法:采用較大的發(fā)送窗口,在RFC1323規(guī)范中規(guī)定了窗口比例選項,允許發(fā)送端和接收端協(xié)商一個適宜的窗口比例因子,該比例因子將允許滑動窗口最大設(shè)置到232B。??
選擇重傳報文段不是退回到報文段n重傳所有報文段。是選項的一個廣泛應(yīng)用。若接收端接收了一個壞報文段且又接收了多個正確的報文段,TCP協(xié)議會因定時器超時而重傳所有未被確認(rèn)的報文段(也包括正確的報文段)。若在選項中加入NAK(由RFC1106定義),允許接收端請求發(fā)送指定的一個或多個報文段(而不是所有的報文段)。接收端收到重傳的報文段后,與其緩沖區(qū)中原來正確的報文段一起確認(rèn),可以減少重傳的數(shù)據(jù)量。
7.4.3 ?TCP的連接管理
連接是虛擬的,對等實體同意交換數(shù)據(jù),確定交換的必要參數(shù),實體相互交換數(shù)據(jù)單元,進行差錯控制、流量控制、響應(yīng)確認(rèn),以達(dá)到數(shù)據(jù)單元正確、流暢、及時的交換,而將傳輸細(xì)節(jié)及如何傳輸?shù)娜蝿?wù)留給更低層。傳輸連接管理是使連接的建立和釋放都能正常進行。
1、建立連接和釋放連接
???在任何數(shù)據(jù)可以發(fā)送前,必須先建立一條連接。TCP協(xié)議建立連接采用三次握手的方法,握手過程按以下步驟進行:
1)?服務(wù)器方執(zhí)行Listen和Accept,被動偵聽。
2)?客戶機執(zhí)行Connect,產(chǎn)生一個SYN=1和ACK=0的TCP報文段到達(dá)服務(wù)器,表示連接請求。
3)?服務(wù)器的傳輸實體接收到這個TCP報文段后,首先檢查是否有服務(wù)進程在所請求的端口上偵聽,若無,回答一個RST=1的TCP報文段。
4)?若有服務(wù)進程在所請求的端口上偵聽,該服務(wù)檢查可以決定是否接受請求。在服務(wù)器方接受后,發(fā)出一個SYN=1和ACK=1的TCP報文段表示連接確認(rèn),并請求與對方的連接。一般情況下,TCP報文段發(fā)送順序如下圖(a):

5)?客戶機收到確認(rèn)后,發(fā)出一個SYN=0和ACK=1的TCP報文段表示給對方的連接確認(rèn)。
6)?若兩個主機同時試圖在相同的兩個套接字之間建立一個連接,事件發(fā)生順序如圖(b)。發(fā)生呼叫碰撞而最終只能建立一條連接。進行連接的TCP雙方通過交換3個報文段來同步序列號,基于三次握手的TCP連接同步過程如下表:

TCP連接雖是全雙工方式,但在釋放連接時則可以單向連接釋放。釋放連接時,任何一方均可以發(fā)出一個FIN=1的TCP報文段(表示己方無數(shù)據(jù)可發(fā)送)并啟動定時器??赡艹霈F(xiàn)兩種釋放連接情況:一,當(dāng)FIN報文段被確認(rèn)后就關(guān)閉了該方向的連接。另一個方向仍可以發(fā)送數(shù)據(jù),只有當(dāng)兩個方向的連接都關(guān)閉后該連接才被完全釋放。二,是無確認(rèn)并且超時,也關(guān)閉連接。因此,TCP連接釋放模式相當(dāng)于一種雙單工連接而不是全雙工連接。
完全釋放一個連接需4個TCP報文段,即每個方向均有一個FIN報文段和一個ACK報文段,若將第一個ACK報文段與第二個FIN報文段合并為同一報文段(只需將TCP報文段頭部的相關(guān)位置1),則完全釋放一個連接只需3個TCP報文段。
在TCP協(xié)議中,建立連接和釋放連接所需狀態(tài)多達(dá)11種。

? ??在TCP協(xié)議中,每個連接均開始于Closed狀態(tài);若一方執(zhí)行了被動連接原語Listen或主動原語Connect時,便脫離Closed狀態(tài);若另一方也執(zhí)行了相應(yīng)的連接原語,則狀態(tài)變?yōu)镋stablished,連接建立成功;若任何一方提出釋放連接,則連接釋放后又回到Closed狀態(tài)。
2、TCP三次握手建立連接的示例(利用Ethereal捕獲的執(zhí)行TCP三次握手的報文段示例)
在第一個窗格中,幀1是IP地址為192.168.1.100源主機從80端口發(fā)送的連接請求報文段,在TCP報頭中含有SYN(同步)標(biāo)志位,請求與目的主機(IP地址為202.119.160.121)的1237端口進行連接。該報文初始序號為0。幀2是目的主機同意進行通信返回的一個確認(rèn)報文段,其報頭中的ACK置1、SYN置1,用來表示對連接的確認(rèn)(通過設(shè)置位ACK來確認(rèn)了第一SYN報文段已經(jīng)ACK,設(shè)置SYN為1,以便在相反的方向使用初始序號0來請求連接)。幀3時源主機收到確認(rèn)后,給目的主機(202.119.160.121)發(fā)出的一個SEQ=1、ACK=1的連接確認(rèn)報文段。至此,完成三次握手,源主機和目的主機間就可以進行通信。
3、TCP的狀態(tài)變遷
TCP的連接過程實際上是TCP狀態(tài)的變化。如圖7-24(P352)所示的有限狀態(tài)機來描述TCP連接狀態(tài)以及各狀態(tài)可能發(fā)生的變遷。這是一個在典型的客戶機/服務(wù)器模式下建立連接、傳輸數(shù)據(jù)和釋放連接的有限狀態(tài)機。粗實線表客戶機的正常路徑,粗虛線表服務(wù)器端的正常路徑,細(xì)實線表不常見的事件;每條線上均按事件/動作方式標(biāo)注相應(yīng)的事件和動作。
這里的事件指用戶執(zhí)行的服務(wù)原語、一個報文段的到達(dá)或者定時器超時等;動作指控制被動(FIN、STN、RST)的發(fā)送或為空(用“-”表示):括號中的文件為注釋內(nèi)容。
為便于理解TCP連接管理有限狀態(tài)機,從客戶機、服務(wù)器兩個角度,對建立連接好釋放連接主要進程分析:
(1)建立連接
????????客戶機角度:客戶機開始狀態(tài)均為Closed。當(dāng)客戶機端的應(yīng)用程序發(fā)出連接請求(調(diào)用Connect)后,即通過該機的傳輸實體創(chuàng)建一個連接記錄,沿粗實線進入SYN Sent狀態(tài),并向遠(yuǎn)端的服務(wù)器發(fā)送一個SYN報文段。當(dāng)接收到來自服務(wù)器端的SYN+ACK報文段(SYN=1,ACK=1)后,客戶機的TCP實體執(zhí)行三次握手的第3步發(fā)出的最后一個ACK報文段,客戶機端轉(zhuǎn)換為Established狀態(tài),客戶機與服務(wù)器之間的連接建立成功,其應(yīng)用程序可以發(fā)送和接收數(shù)據(jù)。
???????服務(wù)器角度:服務(wù)器開始也處于Closed狀態(tài),當(dāng)服務(wù)器執(zhí)行Listen服務(wù)原語后進入Listen狀態(tài),等待客戶端的連接請求到來。當(dāng)一個SYN報文段(來自客戶端)到達(dá)后,服務(wù)器發(fā)出SYN+ACK報文段以確認(rèn)客戶端請求并進入到SYN Received狀態(tài)。當(dāng)服務(wù)器接收到客戶端的ACK確認(rèn)報文段后,三次握手完成。服務(wù)器進入Established狀態(tài)。連接建立成功。
(2)釋放連接
????????客戶機角度:當(dāng)客戶端的應(yīng)用程序完成數(shù)據(jù)收發(fā)任務(wù)后,其TCP實體執(zhí)行Close原語,發(fā)出一個FIN報文段以實現(xiàn)主動關(guān)閉,進入FIN Wait 1狀態(tài)等待相應(yīng)的ACK報文段。當(dāng)接收到來自服務(wù)器的ACK報文段后,其狀態(tài)轉(zhuǎn)入FIN Wait 2狀態(tài),此時連接在一個方向被斷開。當(dāng)服務(wù)器也發(fā)一個FIN報文段以斷開連接并獲得確認(rèn)時,雙方均斷開連接。
????????服務(wù)器角度:當(dāng)客戶端應(yīng)用程序完成數(shù)據(jù)發(fā)送任務(wù)后,因執(zhí)行Close原語而傳送一個FIN報文段到達(dá)服務(wù)器端,服務(wù)器將進入被動關(guān)閉狀態(tài)。服務(wù)器接收到該FIN報文段后,進入Close WAIT狀態(tài);并執(zhí)行Close原語,向客戶端發(fā)送一個FIN報文段,進入Last ACK狀態(tài),服務(wù)器在收到客戶端的確認(rèn)后才釋放該連接。
????????現(xiàn)在,雙方均斷開連接。強調(diào):為了防止確認(rèn)數(shù)據(jù)丟失的情況出現(xiàn),客戶端TCP實體要等待一個最大的數(shù)據(jù)報生命期,進入Time Wait狀態(tài)。當(dāng)定時器最大數(shù)據(jù)報生命期超時,并確保該連接的所有數(shù)據(jù)報全部消失后,客戶端TCP才刪除該連接記錄,回到最初的Closed狀態(tài)。
7.4.4 ?TCP流量控制
???TCP給應(yīng)用程序提供了流量控制服務(wù),以消除發(fā)送端使接收端緩存溢出的可能性。因此可以說流量控制是一個速度匹配服務(wù),即匹配發(fā)送端的發(fā)送速率與接收端應(yīng)用程序的讀取速率。
???TCP的流量控制策略包括:TCP的滑動窗口管理機制、根據(jù)接收緩沖區(qū)及來自應(yīng)用的數(shù)據(jù)確定策略。
???TCP的滑動窗口管理機制采用的是基于確認(rèn)和可變窗口大小策略。它通過讓發(fā)送端保留一個稱為接收窗口的變量來提供流量控制。接收窗口用于告訴發(fā)送端,該接收端還有多少可用的緩存空間。??窗口和窗口通告可以有效控制TCP的數(shù)據(jù)傳輸流量,使接收端的緩沖空間不會產(chǎn)生溢出現(xiàn)象。
正常情況下,當(dāng)窗口大小為0時,發(fā)送端被阻塞不能再發(fā)送TCP報文段,但有兩個例外:
1)?緊急數(shù)據(jù)可以發(fā)送。2)為防止死鎖,發(fā)送端可以發(fā)送1B的TCP段,以便讓接收端重新聲明確認(rèn)號和窗口大小。
為了防止阻塞時降低傳輸層協(xié)議性能,如何改進?
1,?發(fā)送端緩存應(yīng)用程序的數(shù)據(jù),等到形成一個比較大的報文段再發(fā)出。
2,?在某些情況下,接收端延遲發(fā)送確認(rèn)段??蓪⒋_認(rèn)信息和窗口大小修正信息延遲500ms發(fā)送,希望在這些數(shù)據(jù)報上能捎帶一些數(shù)據(jù)。(帶寬有限時,此方法不可取?
3,?使用Nagle算法
4,?使用Clark算法解決傻窗口綜合征,即限制接收端發(fā)送1B的窗口大小修正報文段。
7.4.5 ?TCP定時管理
TCP提供可靠的端到端的傳輸服務(wù)。當(dāng)TCP發(fā)送數(shù)據(jù)時,發(fā)送通過一種重傳方案來補償數(shù)據(jù)的丟失,且通信的雙方都要參與。在接收端TCP收到數(shù)據(jù)報時,它要返回給發(fā)送端一個確認(rèn)ACK。定時器到點前,若沒有收到一個確認(rèn),則發(fā)送端重傳數(shù)據(jù)。如果定時器溢出時還沒收到確認(rèn),就重傳該數(shù)據(jù)報文。關(guān)鍵就是超時和重傳的策略。對于每個連接,TCP使用以下定時器輔助完成該項工作。1)重傳定時器:用于希望收到另一端的確認(rèn)。2)持續(xù)定時器:使窗口大小信息保持不斷流動?3)?;疃〞r器:用于檢測一個空閑連接的另一端何時崩潰或重啟。4)MSL定時器:用于測量一個連接處于Time Wait狀態(tài)的時間。
其中,重傳定時器是最重要的。在發(fā)送一個報文段的同時,啟動一個數(shù)據(jù)重傳定時器。如果在重傳定時器超時前,該報文被確認(rèn),則關(guān)閉該定時器:反之,則重傳該報文段,并重新開始計時。
平均往返時延RTT=α?(舊的RTT)+(1-α)?(新的往返時延樣本M)
假定往返時延樣本為M,則超時重傳時間RTO的計算如下:
?Err=M-A
?A←A+g?Err
?D←D+h?(|Err|-D)
?RTO=A+4?D
7.5 ?TCP擁塞控制原理
???加載到某個網(wǎng)絡(luò)上的載荷超過該網(wǎng)絡(luò)處理能力的現(xiàn)象,稱為擁塞現(xiàn)象。網(wǎng)絡(luò)擁塞通常會引起許多報文段丟失。解決擁塞問題的大部分工作由傳輸層協(xié)議來承擔(dān),通過降低數(shù)據(jù)傳輸速率來避免擁塞。
擁塞原因:1.快速網(wǎng)絡(luò)向小緩存主機或者交換結(jié)點傳輸數(shù)據(jù),接收端的處理能力不足。2.慢速網(wǎng)絡(luò)向大緩存網(wǎng)絡(luò)結(jié)點傳輸數(shù)據(jù),網(wǎng)絡(luò)鏈路帶寬不夠或網(wǎng)絡(luò)交換結(jié)點隊列溢出。3.由于某種原因造成的死鎖。
直接原因:1.主機或者網(wǎng)絡(luò)交換結(jié)點緩存空間不足。2.處理器處理能力較弱。3.帶寬容量相對不足。4.由死鎖引起網(wǎng)絡(luò)性能下降。
如何確定擁塞控制算法:TCP通過動態(tài)地控制滑動窗口的大小來實現(xiàn)擁塞控制,窗口大小的單位是字節(jié)。TCP協(xié)議中滑動窗口的含義是指發(fā)送端未收到接收端返回的確認(rèn)信息的情況下,最多能發(fā)送多少字節(jié)的數(shù)據(jù)。滑動窗口大小在建立連接時確定好了,發(fā)送端按此窗口大小發(fā)送數(shù)據(jù)就不會由于緩沖區(qū)溢出而引起擁塞。
兩種TCP擁塞控制策略:
1.?核心a.在連接建立時聲明最大可接收報文段長度b.利用可變滑動窗口協(xié)議防止出現(xiàn)擁塞。
2.?雙窗口策略。核心:a.發(fā)送端維護兩個窗口,即接收端設(shè)定的可發(fā)送窗口和擁塞窗口,按兩個窗口的最小值發(fā)送。b.擁塞窗口依舊照慢啟動算法和擁塞避免算法變化。
所謂擁塞窗口,是指一個由發(fā)送端根據(jù)網(wǎng)絡(luò)擁塞的情況而確定的最大可傳輸字節(jié)數(shù),它根據(jù)網(wǎng)絡(luò)擁塞情況而變化。也就是說,雙窗口方案中的每個窗口都反映了發(fā)送端可傳輸?shù)淖止?jié)數(shù),而該策略規(guī)定是取兩個窗口中的最小值作為可以該連接當(dāng)時發(fā)送的字節(jié)數(shù)。
??慢啟動算法:當(dāng)建立連接時,發(fā)送端將擁塞窗口大小初始化為該連接所用的最大報文段的長度值,并隨后發(fā)送一個最大長度的報文段。若該報文段在定時器超時之前被接收端接受且其確認(rèn)被發(fā)送端接受,則發(fā)送端的下一次發(fā)送字節(jié)數(shù)在原來的擁塞窗口的基礎(chǔ)上再加一個報文段的字節(jié)數(shù),以此類推。這種確定擁塞窗口大小的算法稱為~。其三大要素1)連接建立時擁塞窗口初始值為該連接允許的最大段長,閾值為64K。2)接收端窗口大小。3)擁塞窗口大小
用程序語言描述慢啟動算法:
Initialize:Congwin=1
for (each segment ACKed)
congwin++
Until (loss event OR
CongWin≥threshold)
擁塞避免算法主要用于當(dāng)擁塞窗口大于閾值時的處理。即:
1)?若擁塞窗口大于閾值,從此時開始,擁塞窗口線性增長,一個RTT周期增加一個最大段長,直至發(fā)生丟包超時事件。
2)?當(dāng)超時事件發(fā)生后,閾值設(shè)置為當(dāng)前擁塞窗口大小的一半,擁塞窗口重新設(shè)置為一個最大段長。
3)?其他情況則執(zhí)行慢啟動算法
用程序語言描述擁塞避免算法:
Until (loss event){
??Every w segments ACKed:
??????Congwin++
}
threshold =Congwin/2
Congwin=1
pergorm slowstart
雙窗口擁塞控制策略:將慢啟動算法和擁塞避免算法結(jié)合起來就是~~,也就是目前TCP協(xié)議的擁塞控制算法。
思考題
1、傳輸層的許多功能,如流量控制、可靠傳輸也由數(shù)據(jù)鏈路層處理。這是否是重復(fù)?為什么?
答:數(shù)據(jù)鏈路層的功能是保證每條鏈路中節(jié)點到節(jié)點的無差錯傳送。雖然對每個網(wǎng)絡(luò)之間傳輸?shù)膸M行了差錯控制,但當(dāng)幀在一個路由器內(nèi)部處理時,還可能引入差錯。這個差錯不會被下一條鏈路中的數(shù)據(jù)鏈路差錯控制機制發(fā)現(xiàn),因為該機制僅檢查在鏈路起始和結(jié)束之間是否引入了差錯。因此傳輸層自己必須進行端到端檢查,以保證報文段正確到達(dá),保證可靠性。同樣,傳輸層的流量控制也是端到端的,而不是像數(shù)據(jù)鏈路層那樣作用在單條鏈路上。使用滑動窗口協(xié)議,窗口的大小可變化以適應(yīng)緩沖區(qū)的占用,窗口實際可容納的數(shù)據(jù)量可協(xié)商?;瑒哟翱谟脕硎菙?shù)據(jù)傳輸更加有效,同時也控制數(shù)據(jù)的流量,使接收端不會變的過分擁擠。
2、面向連接的傳輸服務(wù)所經(jīng)過的三個階段是什么?
答:1)連接的建立。確認(rèn)通信雙方的存在,分配通信所需系統(tǒng)資源,協(xié)商通信所需參數(shù)。
2)連接的釋放:非對稱式釋放和對稱式釋放。通常用三次握手+定時器的方法釋放連接。
3)網(wǎng)絡(luò)故障的恢復(fù)。當(dāng)網(wǎng)絡(luò)或系統(tǒng)故障消除后,發(fā)送端和接收端自動恢復(fù)到故障前的連接狀態(tài)。
3、ISO/OSI-RM定義的兩個傳輸服務(wù)是什么?
答:一、用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol,UDP),為調(diào)用應(yīng)用進程提供一種不可靠、無連接的服務(wù)。二、傳輸控制協(xié)議(Transmission Control Protocol,TCP),它為調(diào)用應(yīng)用進程提供了一種可靠的、面向連接的服務(wù)。
4、為什么需要服務(wù)訪問點?
答:服務(wù)訪問點是層與層之間交換信息的抽象接口,分別是傳輸層服務(wù)訪問點和網(wǎng)絡(luò)層服務(wù)訪問點。通過它,才能把網(wǎng)絡(luò)層的數(shù)據(jù)交付給正確的應(yīng)用程序。
5、簡述面向連接的傳輸服務(wù)建立連接的過程。
答:采用三次握手方案建立連接:①請求連接的主機A發(fā)送連接請求報文到預(yù)期的接收端主機B。連接請求報文中有請求序列號。②響應(yīng)的主機B回送一個連接應(yīng)答報文到主機A。連接應(yīng)答報文中包含請求的序列號以及主機B指定的連接序號。③主機A收到報文后給主機B回送一個連接確認(rèn)報文,建立連接。
6、簡述Socket的定義,及其功能和用途。
答:定義:套接字(Socket):在TCP/IP協(xié)議中,為了通信時不致發(fā)生混亂,端口號必須與主機IP地址結(jié)合起來一起使用,稱之為套接字或者插口,以便唯一的標(biāo)志一個連接端點。
???功能:為了通信時不致發(fā)生混亂,在發(fā)送和接收端分別創(chuàng)建一個套接字的連接端點即可獲得TCP,UDP服務(wù)。
7、UDP協(xié)議的特點有哪些?
答:與IP協(xié)議相比,僅增加兩個內(nèi)容:端口和校驗和。有端口就能進行復(fù)用和解復(fù)用;校驗和提供差錯檢測功能。
UDP的特殊優(yōu)點:
a,UDP向應(yīng)用系統(tǒng)提供了一種發(fā)送封裝原始IP數(shù)據(jù)報的方法,且在發(fā)送時無需建立連接。這樣,避免了建立和釋放連接的麻煩,也減少了開銷和發(fā)送數(shù)據(jù)之前的時延。
b.利用協(xié)議端口,UDP能夠區(qū)分在同一臺主機上運行的多個應(yīng)用進程;利用校驗和機制,在把數(shù)據(jù)向應(yīng)用進程提交之前,先對數(shù)據(jù)做一些差錯檢查。
c,UDP只有8B的頭部開銷,比TCP的20B頭部開銷短得多。
d,UDP不使用擁塞控制,不提供端到端的確認(rèn)和重傳功能,也不保證數(shù)據(jù)報一定能到達(dá)目的端。所以主機不需要維持具有許多參數(shù),復(fù)雜的連接狀態(tài)表。
e.通過UDP協(xié)議,可以發(fā)送組播數(shù)據(jù),所以使用組播服務(wù)的程序有建立在UDP協(xié)議上。
f.不同的網(wǎng)絡(luò)使用不同的協(xié)議。
8、能夠裝進一個以太網(wǎng)幀的最大UDP報文長度是多少?
答:65535B?
9、試計算出最大可能的UDP報文長度(整個UDP報文必須能被裝進一個IP數(shù)據(jù)報中)。
答:理論上,IP數(shù)據(jù)報的最大長度為65535B,減去20B的IP頭部,再減去8B的UDP頭部,可計算出UDP數(shù)據(jù)報中的用戶數(shù)據(jù)最大長度應(yīng)為(65535-20-8)B=65507B,然而大部分實現(xiàn)所提供的長度比這個最大值小。
10、如果一個應(yīng)用程序要利用UDP在以太網(wǎng)上發(fā)送一個8KB的報文,那么會有多少幀在網(wǎng)絡(luò)上傳輸?
11、TCP協(xié)議的特點是什么?它為什么能夠支持多種高層協(xié)議?
答:特點:TCP協(xié)議提供一個完全可靠地(沒有數(shù)據(jù)重復(fù)或丟失)、端到端的、面向連接的、全雙工的字節(jié)流傳輸服務(wù),允許兩個應(yīng)用進程建立一個連接,并在任何一個方向上發(fā)送數(shù)據(jù),然后終止連接。TCP協(xié)議建立在不可靠的網(wǎng)絡(luò)層IP協(xié)議之上,IP不能提供任何可靠性機制,TCP的可靠性完全由自己實現(xiàn)。
支持多種高層協(xié)議的原因:
12、TCP協(xié)議用什么技術(shù)來建立可靠的連接?
答:三次握手:TCP是因特網(wǎng)中的傳輸層協(xié)議,使用三次握手協(xié)議建立連接。當(dāng)主動方發(fā)出SYN連接請求后,等待對方回答SYN,ACK。這種建立連接的方法可以防止產(chǎn)生錯誤的連接,TCP使用的流量控制協(xié)議是可變大小的滑動窗口協(xié)議。
13、TCP校驗和是必要的嗎?或者TCP協(xié)議能否讓IP來對數(shù)據(jù)進行校驗和?
答:是必要的。TCP校驗和是為了確保高可靠性。可以讓IP來對數(shù)據(jù)進行校驗和,因為參與運算的偽TCP報頭中包含的源/目的地址均是IP地址,屬于IP層不屬于傳輸層,即在傳輸層協(xié)議作校驗和計算時用到了網(wǎng)絡(luò)層的數(shù)據(jù)(IP地址),所有這種機制違反了協(xié)議的分層規(guī)則。
14、簡述TCP協(xié)議建立連接的三次握手方案。
答:第一次握手:建立連接時,客戶端發(fā)送SYN包(SEQ=x)到服務(wù)器,并進入SYN_SEND狀態(tài),等待服務(wù)器確認(rèn)。第二次握手:服務(wù)器收到SYN包,必須確認(rèn)客戶的SYN(ACK=x+1),同時自己也送一個SYN包(SEQ=y),即SYN+ACK包,此時服務(wù)器進入SYN_RECV狀態(tài)。第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ACK=y+1),此包發(fā)送完畢,客戶端和服務(wù)器時入Established狀態(tài),完成三次握手.
15、簡述TCP連接管理步驟。
答:1)服務(wù)器方執(zhí)行Listen和Accept,被動偵聽。
2)客戶機執(zhí)行Connect,產(chǎn)生一個SYN=1和ACK=0的TCP報文段到達(dá)服務(wù)器,表示連接請求。
3)服務(wù)器的傳輸實體接收到這個TCP報文段后,首先檢查是否有服務(wù)進程在所請求的端口上偵聽,若無,回答一個RST=1的TCP報文段。
4)若有服務(wù)進程在所請求的端口上偵聽,該服務(wù)檢查可以決定是否接受請求。在服務(wù)器方接受后,發(fā)出一個SYN=1和ACK=1的TCP報文段表示連接確認(rèn),并請求與對方的連接。
5)客戶機收到確認(rèn)后,發(fā)出一個SYN=0和ACK=1的TCP報文段表示給對方的連接確認(rèn)。
6)若兩個主機同時試圖在相同的兩個套接字之間建立一個連接,事件發(fā)生順序如圖(b)。發(fā)生呼叫碰撞而最終只能建立一條連接。進行連接的TCP雙方通過交換3個報文段來同步序列號。
16、TCP協(xié)議采用了哪些流量控制策略?
答:TCP的流量控制策略包括TCP的滑動窗口管理機制、根據(jù)接收緩沖區(qū)及來自應(yīng)用的數(shù)據(jù)確定策略。
17、什么是擁塞?造成擁塞的原因有哪些?簡述TCP協(xié)議擁塞控制策略。
答:加載到某個網(wǎng)絡(luò)上的載荷超過該網(wǎng)絡(luò)處理能力的現(xiàn)象,稱為擁塞現(xiàn)象。
擁塞原因:1.快速網(wǎng)絡(luò)向小緩存主機或者交換結(jié)點傳輸數(shù)據(jù),接收端的處理能力不足。2.慢速網(wǎng)絡(luò)向大緩存網(wǎng)絡(luò)結(jié)點傳輸數(shù)據(jù),網(wǎng)絡(luò)鏈路帶寬不夠或網(wǎng)絡(luò)交換結(jié)點隊列溢出。3.由于某種原因造成的死鎖。直接原因:1.主機或者網(wǎng)絡(luò)交換結(jié)點緩存空間不足。2.處理器處理能力較弱。3.帶寬容量相對不足。4.由死鎖引起網(wǎng)絡(luò)性能下降。
兩種TCP擁塞控制策略:
一.核心a.在連接建立時聲明最大可接收報文段長度b.利用可變滑動窗口協(xié)議防止出現(xiàn)擁塞。
二.雙窗口策略。核心:a.發(fā)送端維護兩個窗口,即接收端設(shè)定的可發(fā)送窗口和擁塞窗口,按兩個窗口的最小值發(fā)送。b.擁塞窗口依舊照慢啟動算法和擁塞避免算法變化。
18、簡述TCP和UDP協(xié)議通信的各自特點。在什么情況下使用TCP通信?在什么情況下使用UDP通信?請?zhí)岢鰝€人見解。
答:TCP是基于連接的協(xié)議,也就是說,在正式收發(fā)數(shù)據(jù)前,必須和對方建立可靠的連接。UDP是與TCP相對應(yīng)的協(xié)議。它是面向非連接的協(xié)議,它不與對方建立連接,而是直接就把數(shù)據(jù)包發(fā)送過去。UDP適用于一次只傳送少量數(shù)據(jù)、對可靠性要求不高的應(yīng)用環(huán)境。
tcp協(xié)議和udp協(xié)議的區(qū)別:
TCP ????????UDP
面向連接???????面向非連接?
可靠?????????不可靠?
傳輸大量數(shù)據(jù)???少量數(shù)據(jù)?
速度慢???????????快
19、使用一個網(wǎng)絡(luò)分析器捕獲TCP連接中的一系列幀,分析用于打開和關(guān)閉此TC連接的報文段的內(nèi)容,通過查看幀時間和TCP序列號來估算傳輸數(shù)據(jù)信息的速率。在此連接過程中,通知窗口是否發(fā)生變化?
20、試設(shè)計一個TCP(或UDP)網(wǎng)絡(luò)通信程序。
第8章?網(wǎng)絡(luò)應(yīng)用
1.應(yīng)用層的傳統(tǒng)服務(wù)主要有:(1)網(wǎng)絡(luò)虛擬終端(2)文件傳輸、訪問和管理(3)郵件服務(wù)(4)目錄服務(wù)
2.網(wǎng)絡(luò)應(yīng)用模式的分類?根據(jù)計算機網(wǎng)絡(luò)應(yīng)用模式的發(fā)展過程,可分為(1)以大型機為中心的集中式應(yīng)用模式:這一應(yīng)用模式的特點是一切處理工作均依賴于主機,集中的數(shù)據(jù)、集中的應(yīng)用軟件、集中的管理。(2)客戶機/服務(wù)器模式(Client/Server):這種模式基于網(wǎng)絡(luò)的分布式應(yīng)用。(3)基于Web的客戶機/服務(wù)器模式(4)P2P網(wǎng)絡(luò)模式?P2P是Peer to Peer的縮寫,通常譯為對等互連或?qū)Φ冗B接。
3.客戶機/服務(wù)器模式:在分布式計算中,通常將一個應(yīng)用進程被動地等待另一個應(yīng)用進程來啟動通信過程的工作模式稱之為客戶機/服務(wù)器模式。它的組成:客戶機、服務(wù)器和中間件。
4.基于Web的客戶機/服務(wù)器模式:是可提供多層次連接的應(yīng)用模式,即客戶機可與相互配合的多個服務(wù)器組相連接以支持各種應(yīng)用服務(wù),而不必關(guān)心服務(wù)器的物理位置,即由服務(wù)器策略轉(zhuǎn)移到了網(wǎng)絡(luò)服務(wù)策略。由于實施這種策略要依靠Internet,因此也將這種應(yīng)用模式稱為全球網(wǎng)絡(luò)客戶機/服務(wù)器模式或客戶機/網(wǎng)絡(luò)模式。它的組成(1)Web服務(wù)器(2)應(yīng)用軟件服務(wù)器(3)可由Java小應(yīng)用程序訪問的數(shù)據(jù)庫、文件、電子郵件、目錄服務(wù)以及其他專用功能的服務(wù)器(4)客戶機。
5. .基于Web的客戶機/服務(wù)器技術(shù)特點:(1)Web信息服務(wù):這是由Web瀏覽器/服務(wù)器的組合來實現(xiàn)的頁面信息服務(wù)。(2)Java語言:Java是一種編程語言平臺,提供可移植、可解釋的面向?qū)ο蟮木幊陶Z言,具有簡單易用、方便移植、簡短、健壯、多線程、安全、可擴充等基本特征。(3)NC:用戶用來訪問網(wǎng)絡(luò)資源的設(shè)備稱為用戶機,可分為兩類:一類是厚用戶機,即通常的PC機,可接入網(wǎng)絡(luò),但在離線情況下能完全獨立工作。另一類是薄用戶機,即NC,其能力依賴于網(wǎng)絡(luò)。
6.P2P網(wǎng)絡(luò)模式的特點:(1)分散化(2)可擴展性(3)健壯性(4)隱私性(5)高性能
7.進程通信?(1)客戶機/服務(wù)器進程:網(wǎng)絡(luò)應(yīng)用程序由成對的進程組成,這些進程通過網(wǎng)絡(luò)相互發(fā)送報文。(2)套接字接口:a應(yīng)用程序編程接口b套接字API(3)進程尋址
8.TCP服務(wù)模式型包括面向連接服務(wù)和可靠的數(shù)據(jù)傳輸服務(wù);UDP協(xié)議提供無連接的、不可靠的數(shù)據(jù)傳輸服務(wù)。
9.要實現(xiàn)Web服務(wù),必須解決這樣幾個問題:(1)怎樣標(biāo)志分布在整個Internet上的Web文檔?Web使用統(tǒng)一資源定位器(Uniform Resource Locators,URL)來標(biāo)志W(wǎng)eb上的各種文檔,并使用一個文檔在整個Internet的范圍內(nèi)唯一的標(biāo)識符(Uniform Resource Identifier,URI)(2)用什么樣的協(xié)議實現(xiàn)Web上的各種超鏈接?使用超文本傳輸協(xié)議HTTP。(3)怎樣使不同的作者創(chuàng)作的各式各樣的頁面都能夠在Internet上的各種計算機上顯示出來,同時使用戶清楚地知道在什么地方存在著超鏈接?Web引入了超文本標(biāo)記語言(Hypertext Markup Language,HTML),使得Web頁面設(shè)計者可以很方便地用一個超鏈接從本頁面的某處鏈接到Internet上的任何一個Web頁面,并能夠在自己的計算機屏幕上將這些頁面內(nèi)容顯示出來。(4)怎樣使用戶很方便地檢索到所需要的信息?為了在Web上方便地檢索信息,用戶可以使用各種各樣的搜索引擎工具。
10.URL的組成:(1)訪問方式,及客戶與服務(wù)器之間所使用的通信協(xié)議;(2)存放信息資源的服務(wù)器域名;(3)存放信息資源的路徑和文件名。其格式為:
<URL訪問方式>://<服務(wù)器域名>[:<端口>]/<路徑>/<文檔名>
11.HTML文檔結(jié)構(gòu):元素(Element)是HTML文檔結(jié)構(gòu)的基本組成部分。一個HTML文檔本身就是一個元素。每個HTML文檔由頭部(Head)和主體(Body)兩個主要元素組成,主體緊接在頭部的后面。頭部包含文檔的標(biāo)題(Title),以及系統(tǒng)用來標(biāo)識文檔的一些其他信息。
12.HTTP事務(wù)處理過程由連接、請求、響應(yīng)和斷開4個階段組成。
13.文件傳輸協(xié)議FTP(File Transfer Protocol)特性:(1)通用性(2)文件內(nèi)容任意(3)驗證與權(quán)限(4)內(nèi)容異構(gòu)特性
14.簡單文件傳輸協(xié)議TFTP(Trivial File Transfer Protocol)與FTP的差異:第一,TFTP客戶機與服務(wù)器之間的通信使用UDP協(xié)議而不是TCP協(xié)議。第二,TFTP只支持文件傳輸。第三,TFTP沒有授權(quán)認(rèn)證。
15. TFTP的3種傳輸模式:(1)NET ASCII模式即8位ASCII(2)8位組模式,即以字節(jié)為單位(3)郵件模式,在這種模式中,傳輸用戶的不是文件而是字符。
16.網(wǎng)絡(luò)文件系統(tǒng)NFS(Network File System)與TCP/IP協(xié)議一起使用的這種文件訪問機制。
17.電子郵件系統(tǒng)格式?用戶名@郵箱所在的主機域名
18.電子郵件系統(tǒng):用戶代理(User Agent)、郵件服務(wù)器(Mail Server)和簡單郵件傳輸協(xié)議(Simple Mail Transfer Protocol,SMTP)。
19.郵件訪問協(xié)議IMAP(Internet Mail Access Protocol)
20.DHCP構(gòu)建與BOOTP之上,它提供了一種向主機分配臨時IP地址的機制,最大化地利用了IP地址空間。分為兩個部分:一是服務(wù)器端,另一個是客戶機端。
21.DHCP的IP分配形式:(1)自動分配(2)動態(tài)分配
22.DHCP工作原理:(1)尋找DHCP服務(wù)器;(2)提供IP租用地址(3)接受IP租約(4)租約確認(rèn)(5)跨網(wǎng)絡(luò)的DHCP運作
域名系統(tǒng)(Domain Name System,DNS):是通過客戶機/服務(wù)器模式提供的重要的網(wǎng)絡(luò)服務(wù)功能,是應(yīng)用層協(xié)議
域名結(jié)構(gòu):頂層域分為通用的域和國家的域,通用的域是com(商用結(jié)構(gòu)),edu(教育系統(tǒng)),net(網(wǎng)絡(luò)提供者),gov(政府機構(gòu)),org(其他組織)等
域名的特征:1由一組標(biāo)號組成,標(biāo)號遵循ARPAet主機名的規(guī)則,以字母開始,以字母或數(shù)字結(jié)尾,中間允許字母,數(shù)字和“-”。標(biāo)號不區(qū)分大小寫字母2.每個標(biāo)號為0-63個字母(3)域名總長不超過255b(4)標(biāo)號之間用句點’”.”,據(jù)點知識結(jié)構(gòu),代表層次邊界(5)從左向右代表從低到高的層次,最右邊的標(biāo)號是最頂層的域名
DNS報文:有查詢報文和應(yīng)答報文,并且兩種報文具有相同的格式
DNS的工作過程:(1)同一臺用戶主機上運行著DNS應(yīng)用的客戶機(2)該瀏覽器從URL中抽取出主機名www.njit.edu.cn,并將這個主機名傳給DNS應(yīng)用的客戶機(3)該DNS客戶機向DNS服務(wù)器發(fā)送一個包含主機名的請求(4)該DNS客戶機最終會收到一份應(yīng)答報文,其中含有對應(yīng)于該主機名的ip地址(5)一旦該瀏覽器接收到來自DNS的IP地址,它就能夠向IP地址定位的HTTP服務(wù)器發(fā)起一個TCP連接
分布式,層次數(shù)據(jù)庫
DNS服務(wù)器有根DNS服務(wù)器,頂級域(Top Level?。模铮恚幔椋?,TLD)DNS服務(wù)器和權(quán)威DNS服務(wù)器三種類型
域名解析服務(wù):域名解析器,域名解析的實現(xiàn)1.本地域名服務(wù)器域名解析(1)查詢本地服務(wù)的域名解析表(2)查詢本地服務(wù)器的域名緩存器(3)如無結(jié)果轉(zhuǎn)第二步
2從根服務(wù)器自頂向下查詢
p2p文件共享、存儲及檢索
P2P文件共享分為3類:(1)非結(jié)構(gòu)化p2p系統(tǒng)(2)結(jié)構(gòu)化p2p系統(tǒng)在(3)松散結(jié)構(gòu)化p2p系統(tǒng)
p2p分布式存儲(1)非結(jié)構(gòu)化p2p系統(tǒng)(2)結(jié)構(gòu)化p2p系統(tǒng)
3 p2p檢索技術(shù):使用戶能夠深度搜索文檔,而且這種檢索無需通過web服務(wù)器,也可不受信息文檔格式和宿主設(shè)備的限制,可達(dá)到傳統(tǒng)目錄式搜索引擎無可比擬的深度
4信息資源定位:(1)集中式目錄檢索(2)廣播方式(3)動態(tài)哈希表方式
第九章
1、?多媒體通信:多媒體通信是指在通信中所交換的信息類型不止一種,二十多種信息的綜合體,是一種對文本、圖形、圖像、音頻和視頻多媒體信息進行表示、存儲、檢索和傳輸?shù)募夹g(shù)。
2、?多媒體信息的基本特征歸納成以下三個方面:
a)?綜合性(2)相關(guān)性(3)動態(tài)性
3、?多媒體通信的特征:
a)?復(fù)合性(2)集成性(3)交互性(4)同步性和實時性
4、?多媒體通信的關(guān)鍵技術(shù):
a)?多媒體數(shù)據(jù)的壓縮編碼與同步技術(shù)(2)流媒體技術(shù)(3)虛擬現(xiàn)實技術(shù)
5、?虛擬現(xiàn)實技術(shù):虛擬現(xiàn)實技術(shù)是指多媒體計算機逼近現(xiàn)實世界的虛擬環(huán)境技術(shù)。
6、?多媒體通信對網(wǎng)絡(luò)的需求:多媒體通信對網(wǎng)絡(luò)的要求主要體現(xiàn)在以下幾個方面:
(1)多媒體通信網(wǎng)絡(luò)必須有足夠的帶寬(2)網(wǎng)絡(luò)必須保證服務(wù)質(zhì)量(3)網(wǎng)絡(luò)同步要求(4)差錯控制(5)多播
7、?多媒體通信網(wǎng)絡(luò):多媒體通信網(wǎng)絡(luò)(簡稱多媒體網(wǎng)絡(luò))是以光纖作為主要傳輸媒體、基于B-ISDN的網(wǎng)絡(luò)。從本質(zhì)上講,多媒體通信網(wǎng)絡(luò)就是綜合、集成運行多種多種媒體信息的計算機網(wǎng)絡(luò),可以是局域網(wǎng),也可以是廣域網(wǎng)。
8、?多媒體網(wǎng)絡(luò)終端:多媒體網(wǎng)絡(luò)終端一般由交互式檢索、編解碼、各種媒體同步、編輯和執(zhí)行等部分組成。??