Ⅰ 計網:運輸層
本篇文章先概括介紹運輸層協議的特點、進程之間的通信和埠等重要概念,然後講述比較簡單的UDP協議。然後討論較為復雜但非常重要的TCP協議和可靠傳輸的工作原理,包括停止等待協議和ARQ協議。在詳細講述TCP報文段的首部格式之後,討論TCP的三個重要問題:滑動窗口、流量控制和擁塞控制機制。最後,介紹TCP的連接管理。
從通信和信息處理的角度看,運輸層向它上面的應用層提供通信服務,它屬於面向通信部分的最高層,同時也是用戶功能中的最低層。
當網路的邊緣部分中的兩台主機使用網路 的核心部分的功能進行端到端的通信時,只有主機的協議棧才有運輸層,而網路核心部分中的路由器在轉發分組時都只用到下三層的功能。
運輸層有一個很重要的功能 復用和分用:
從IP層來說,通信的兩端是兩台主機。但實際上,真正進行通信的實體是 在主機中的進程,是這台主機中的一個進程和另一台主機中的一個進程在交換數據(即通信)。運輸層提供應運蔽用進程間的邏輯通信。「邏輯通信」的意思是:從應用層來看,只要把應用層報文交給下面的運輸層, 運輸層就可以把這報文傳送到對方的運輸層。但事實上這兩個運輸層之間並沒有一條水平方向的物理連接。數據的傳送是沿著圖中的虛線方向(經過多個層次)傳送的。
從這里可以看出網路層和運輸層有明顯的區別。網路層為主機之間提供邏輯通信,而運輸層為應用進程之間提供端到端的邏輯通信。
運輸層還要對收到的報文進行差錯檢測,而在網路層,IP數據報首部中的檢驗和欄位,只檢驗首部是否出現差錯而不檢查數據部分。
根據應用程序的不同需求,運輸層需要有兩種不同的運輸協議,即面向連接的TCP和無連接的UDP,這兩種協議就是本章要討論的主要內容。
當運輸層採用面向連接的TCP協議時,盡管下面的網路是不可靠的(只提供盡最大努力服務),但這種邏輯通信信道就相當於一條全雙工的可靠信道。但當運輸層釆用無連接的UDP協議時,這種邏輯通信信道仍然是一條不可靠信道。
TCP/IP運輸層的兩個主要協議都是互聯網的正式標准,即:
在TCP/IP體系中,則根據所使用的協議是TCP或 UDP,分別稱之為TCP報文段或UDP用戶數據報。
UDP在傳送數據之前不需要先建立連接。遠地主機的運輸層在收到UDP報文後,不需要給出任何確認。雖然UDP不提供可靠交付,但在某些情況下UDP卻是一種最有效的工作方式。
TCP則提供面向連接的服務。在畝譽傳送數據之前必須先建立連接,數據傳送結束後要釋放連接。TCP不提供廣播或多播服務。由於TCP要提供可靠的、面向連接的運輸服務,因此不可避免地增加了許多的開銷,佔用許多處理機資源。
前面己經提到過運輸層的復用和分用功能。應用層所有的應用進程都可以通過運輸層再傳送到IP層(網路層),這就是復用。運輸層從IP層收到發送給各應用進程的數據後,必須分別交付指明的各應用進程,這就是分用。顯然,給應用層的每個應用進程賦予一個非常明確的標志是至關重要的。
為了使運行不同操作系統的計算機的應用進程能夠互相通信,就必須用統一的方法(而這種方法必須與特定操作系統無關)對TCP/IP體系的應用進程進行標志。
解決這個問題的方法就是在運輸層使用協議埠號,或通常簡稱為埠。這就是說,雖然通信的終點是應用進程,但只要把所傳送的報文交到目的主機的某個合適的目的埠,剩下的工作(即最後交付目的進程)就由TCP或UDP來完成。
在協議棧層間的抽象的協議埠是軟體埠,和路由器或交換機上的硬體埠是完全不同的概念。軟體埠是迅悄段應用層的各種協議進程與運輸實體進行層間交互的一種地址。
TCP/IP的運輸層用一個16位埠號來標志一個埠。但請注意,埠號只具有本地意義,它只是為了標志本計算機應用層中的各個進程在和運輸層交互時的層間介面。在互聯網不同計算機中,相同的埠號是沒有關聯的。
兩個計算機中的進程要互相通信,不僅必須知道對方的IP地址(為了找到對方的計算機),而且要知道對方的埠號(為了找到對方計算機中的應用進程)。
因此運輸層的埠號分為下面的兩大類:
用戶數據報協議UDP只在IP的數據報服務之上增加了很少一點的功能,這就是復用和分用的功能以及差錯檢測的功能。
UDP的主要特點是:
用戶數據報UDP有兩個欄位:數據欄位和首部欄位。首部欄位很簡單,只有8個位元組。由四個欄位組成,每個欄位的長度都是兩個位元組。各欄位意義如下:
當運輸層從IP層收到UDP數據報時,就根據首部中的目的埠,把UDP數據報通過相應的埠,上交最後的終點——應用進程。
如果接收方UDP發現收到的報文中的目的埠號不正確(即不存在對應於該埠號的應用進程),就丟棄該報文,並由網際控制報文協議ICMP發送「埠不可達」差錯報文給發送方。
UDP用戶數據報首部中檢驗和的計算方法有些特殊。在計算檢驗和時,要在UDP用戶 數據報之前增加12個位元組的偽首部。所謂「偽首部」是因為這種偽首部並不是UDP用戶數 據報真正的首部。只是在計算檢驗和時,臨時添加在UDP用戶數據報前面,得到一個臨時的 UDP用戶數據報。檢驗和就是按照這個臨時的UDP用戶數據報來計算的。偽首部既不向下傳
送也不向上遞交,而僅僅是為了計算檢驗和。
UDP計算檢驗和的方法和計算IP數據報首部檢驗和的方法相似。但不同的是:IP數據 報的檢驗和只檢驗IP數據報的首部,但UDP的檢驗和是把首部和數據部分一起都檢驗。
TCP是TCP/IP體系中非常復雜的一個協議,下面介紹TCP最主要的特點:
前面己經講過,每一條TCP連接有兩個端點,TCP連接的端點叫做套接字或插口。埠號拼接到IP地址即 構成了套接字。
因此,套接字的表示方法是在點分十進制的IP地址後面寫上埠號,中間用冒號或逗號隔開,例如說:
每一條TCP連接唯一地被通信兩端的兩個端點(即兩個套接字)所確定,例如:
這里IP1和IP2分別是兩個端點主機的IP地址,而port1和port2分別是兩個端點主機中的埠號。TCP連接的兩個套接字就是socket1和socket2。
總之,TCP連接就是由協議軟體所提供的一種抽象。
雖然有時為了方便,我們也可以說,在一個應用進程和另一個應用進程之間建立了一條TCP連接,但一定要記住:TCP連 接的端點是個很抽象的套接字,即(IP地址:埠號)。
我們知道,TCP發送的報文段是交給IP層傳送的。但IP層只能提供盡最大努力服務,也就是說,TCP下面的網路所提供的是不可靠的傳輸。因此,TCP必須釆用適當的措施才能使得兩個運輸層之間的通信變得可靠。
「停止等待」就是每發送完一個分組就停止發送,等待對方的確認。在收到確認後再發送下一個分組。
停止等待協議有以下四種情況:
停止等待協議的優點是簡單,但缺點是信道利用率太低。
信道利用率U可以用以下公式計算:
為了提高傳輸效率,發送方可以不使用低效率的停止等待協議,而是釆用流水線傳輸,這種傳輸方式可以獲得很高的信道利用率。
滑動窗口協議比較復雜,是TCP協議的精髓所在。這里先給出連續ARQ協議最基本的概念,但不涉及許多細節問題。
發送方維持的發送窗口,它的意義是:位於發送窗口內的分組都可連續發送出去,而不需要等待對方的確認。這樣,信道利用率就提高了。
連續ARQ協議規定,發送方每收到一個確認,就把發送窗口向前滑動一個分組的位置。
如果原來己經發送了前5個分組,那麼現在就可以發送窗口內的第6個分組了。
接收方一般都是釆用累積確認的方式。這就是說,接收方不必對收到的分組逐個發送 確認,而是在收到幾個分組後,對按序到達的最後一個分組發送確認,這就表示:到這個分組為止的所有分組都已正確收到了。
累積確認有優點也有缺點。優點是:容易實現,即使確認丟失也不必重傳。但缺點是不能向發送方反映出接收方己經正確收到的所有分組的信息。
如果發送方發送了前5個分組,而中間的第3個分組丟失了。這時接收方只能對前兩個分組發出確認。發送方無法知道後面三個分組的下落,而只好把後面的三個分組都再重傳一次。這就叫做Go-back-N(回退N)。
TCP雖然是面向位元組流的,但TCP傳送的數據單元卻是報文段。一個TCP報文段分為首部和數據兩部分,而TCP的全部功能都體現在它首部中各欄位的作用。
TCP報文段首部的前20個位元組是固定的,後面有4n位元組是根據需要而增加的選項。因此TCP首部的最小長度是20位元組。
首部固定部分各欄位的意義如下:
TCP的滑動窗口是以位元組為單位的。
現假定A收到了 B發來的確認報文段,其中窗口是20位元組,而確認號是31(這表明B期望收到的下一個序號是31,而序號30為止的數據已經收到了)。
A的發送窗口表示:在沒有收到B的確認的情況下,A可以連續把窗口內的數據都發送出去。凡是已經發送過的數據,在未收到確認之前都必須暫時保留,以便在超時重傳時使用。
發送窗口後沿的後面部分表示己發送且己收到了確認。發送窗口後沿的變化情況有兩種可能,即不動(沒有收到新的確認)和前移(收到了新的確認)。
發送窗口裡面的序號表示允許發送的序號。窗口越大,發送方就可以在收到對方確認之前連續發送更多的數據,因而可能獲得更高的傳輸效率。但A的發送窗口一定不能超過B的接收窗口數值。
發送窗口前沿的前面部分表示不允許發送的。發送窗口前沿通常是不斷向前移動,但也有可能不動。這對應於兩種情況:一是沒有收到新的確認,對方通知的窗口大小也不變;二是收到了 新的確認但對方通知的窗口縮小了,使得發送窗口前沿正好不動。
現在假定A發送了序號為31〜41的數據。這時,發送窗口位置並未改變, 但發送窗口內靠後面有11個位元組(灰色小方框表示)表示己發送但未收到確認。而發送窗口內靠前面的9個位元組(42〜50)是允許發送但尚未發送的。
從以上所述可以看出,要描述一個發送窗口的狀態需要三個指針:P1,P2和P3,小於P1的是已發送並已收到確認的部分,而大於P3的是不允許發送的部分:
再看一下B的接收窗口。B的接收窗口大小是20。在接收窗口外面,到30號為止的數據是已經發送過確認,並且已經交付主機了。因此在B可以不再保留這些數據。接收窗口內的序號(31〜50)是允許接收的。
此時B收到了序號為32和33的數據。這些數據沒有按序到達,因為序號為31的數據沒有收到(也許丟失了,也許滯留在網路中的某處)。請注意,B只能對按序收到的數據中的最高序號給出確認,因此B發送的確認報文段中的確認號仍然是31 (即期望收到的序號),而不能是32或33。
現在假定B收到了序號為31的數據,並把序號為31〜33的數據交付主機,然後B刪除這些數據。接著把接收窗口向前移動3個序號,同時給A發送確認,其中窗口值仍為20,但確認號是34。這表明B已經收到了到序號33為止的數據。我們注意到,B還收到了序號為37, 38和40的數據,但這些都沒有按序到達,只能先暫存在接收窗口中。
A在繼續發送完序號42〜53的數據後,指針P2向前移動和P3重合。發送窗口內的序號都已用完,但還沒有再收到確認(圖5-18)。由於A的發送窗口己滿,可用窗口已減小到零,因此必須停止發送。為了保證可靠傳輸,A只能認為B還沒有收到這些數據。於是,A在經過一段時間後(由超時計時器控制)就重傳這部分數據,重新設置超時計時器,直到收到B的確認為止。
CP的發送方在規定的時間內沒有收到確認就要重傳已發送的報文段。這種重傳的概念是很簡單的,但重傳時間的選擇卻是TCP最復雜的問題之一。
如果把超時重傳 時間設置得太短,就會引起很多報文段的不必要的重傳,使網路負荷增大。但若把超時重傳 時間設置得過長,則又使網路的空閑時間增大,降低了傳輸效率。
那麼,運輸層的超時計時器的超時重傳時間究竟應設置為多大呢?
TCP釆用了一種自適應演算法,它記錄一個報文段發出的時間,以及收到相應的確認的 時間。這兩個時間之差就是報文段的往返時間RTT。TCP保留了 RTT的一個加權平均往返時間RTT s 。
每當第一次測量到RTT樣本時,RTTs值就取為所測量到的RTT樣本 值。但以後每測量到一個新的RTT樣本,就按下式重新計算一次RTT s :
顯然,超時計時器設置的超時重傳時間RTO應略大於上面得 出的加權平均往返時間RTT s ,所以RTO應該這樣計算。
而RTT D 是RTT的偏差的加權平均值,它與RTTs和新的RTT樣本之差有關。
現在發送出一個報文段,設定的重傳時間到了,還沒有收到確認。於是重傳報文段。經過了一段時間後,收到了確認報文段。現在的問題是:如何判定此確認報文段 是對先發送的報文段的確認,還是對後來重傳的報文段的確認?
Kam演算法進行修正。方法是:報文段每重傳一次,就把超時重傳時間RTO增大一些。典型的做法是取新的重傳時間為舊的重傳時間的2倍。當不再發生報文段的重傳時,才根據上面給出的式子計算超時重傳時間。
現在還有一個問題沒有討論。這就是若收到的報文段無差錯,只是未按序號,中間還缺少一些序號的數據,那麼能否設法只傳送缺少的數據而不重傳已經正確到達接收方的數據?答案是可以的。選擇確認就是一種可行的處理方法。
舉一個例子來說明選擇確認的工作原理。TCP的接收方在接收對方發送過來的數據位元組流的序號不連續,結果就形成了一些不連續的位元組塊。
可以看出,序號1〜1000收到了,但序號1001〜1500沒有收到。接下來的位元組流又收到了,可是又缺少了3001〜3500。再後面從序號4501起又沒有收到。
也就是說,接收方收到了和前面的位元組流不連續的兩個位元組塊。如果這些位元組的序號都在接收窗口之內,那麼接收方就先收下這些數據,但要把這些信息准確地告訴發送方,使發送方不要再重復發送這些已收到的數據。
一般說來,我們總是希望數據傳輸得更快一些。但如果發送方把數據發送得過快,接 收方就可能來不及接收,這就會造成數據的丟失。所謂流量控制就是讓發送方的發送速率不要太快,要讓接收方來得及接收。
利用滑動窗口機制可以很方便地在TCP連接上實現對發送方的流量控制。
設A向B發送數據。在連接建立時,B告訴了A:「我的接收窗口rwnd = 400」。因此,發送方的發送窗口不能超過接收方給出的接收窗口的數值。
我們應注意到,接收方的主機B進行了三次流量控制。第一次把窗口減小到rwnd = 300, 第二次又減到rwnd = 100,最後減到rwnd = 0,即不允許發送方再發送數據了。這種使發送方暫停發送的狀態將持續到主機B重新發出一個新的窗口值為止。
TCP協議使得在發送方不發送很小的報文段的同時,接收方也不要 在緩存剛剛有了一點小的空間就急忙把這個很小的窗口大小信息通知給發送方。
在計算機網路中的鏈路容量(即帶寬)、交換結點中的緩存和處理機等,都是網路的資源。在某段時間,若對網路中某一資源的需求超過了該資源所能提供的可用部分,網路的性能就要變壞。這種情況就叫做擁塞,即對資源需求之和 > 可用資源。
網路擁塞往往是由許多因素引起的。簡單地將處理機的速率提高或簡單地擴大緩存的存儲空間,可能會使上述情況緩解一些,但往往又會將瓶頸轉移到其他地方。問題的實質往往是整個系統的各個部分不匹配。只有所有的部分都平衡了,問題才會得到解決。
擁塞控制與流量控制的關系密切,它們之間也存在著一些差別。擁塞控制就是防止過多的數據注入到網路中,這樣可以使網路中的路由器或鏈路不致過載。流量控制往往是指點對點通信量的控制,是個端到端的問題(接收端控制發送端)。
下圖中橫坐標是提供的負載,代表單位時間內輸入給網路的分組數目。縱坐標是吞吐量,代表單位時間內從網路輸出的分組數目。
實踐證明,擁塞控制是很難設計的,因為它是一個動態的(而不是靜態的)問題。
從大的方面看,可以分為 開環控制 和 閉環控制 兩種方法:
TCP進行擁塞控制的演算法有四種,即慢開始、擁塞避免、快重傳和快恢復。
為了集中精力討論擁塞控制,我們假定:
擁塞控制也叫做基於窗口的擁塞控制。為此,發送方維持一個叫做擁塞窗口cwnd的狀態變數。擁塞窗口的大小取決於網路的擁塞程度,並且動態地在變化。發送方讓自己的發送窗口等於擁塞窗口。
發送方控制擁塞窗口的原則是:只要網路沒有出現擁塞,擁塞窗口就可以再增大一些,以便把更多的分組發送出去,這樣就可以提高網路的利用率。但只要網路出現擁塞或有可能出現擁塞,就必須把擁塞窗口減小一些,以減少注入到網路中的分組數,以便緩解網路出現的擁塞。
發送方又是如何知道網路發生了擁塞呢?我們知道,當網路發生擁塞時,路由器就要丟棄分組。因此只要發送方沒有按時收到應當到達的確認報文,也就是說,只要出現了超時,就可以猜想網路可能出現了擁塞。現在通信線路的傳輸質量一般都很好,因傳輸出差錯而丟棄分組的概率是很小的(遠小於1%)。因此,判斷網路擁塞的依據就是出現了超時。
慢開始演算法的思路是這樣的:當主機開始發送數據時,由於並不清楚網路的負荷情況,所以如果立即把大量數據位元組注入到網路,那麼就有可能引起網路發生擁塞。因此我們由小到大逐漸增大擁塞窗口數值。
新的RFC5681把初始擁塞窗口cwnd設置為不超過2至4個SMSS(發送方的最大報文段)的數值。慢開始規定,在每收到一個對新的報文段的確認後,可以把擁塞窗口增加最多一個SMSS的數值。
下面用例子說明慢開始演算法的原理。在一開始發送方先設置cwnd = 1,發送第一個報文段M1,接收方收到後確認M1。發送 方收到對M1的確認後,把cwnd從1增大到2,於是發送方接著發送M2和M3兩個報文 段。接收方收到後發回對M2和M3的確認。發送方每收到一個對新報文段的確認(重傳的不算在內)就使發送方的擁塞窗口加1,因此發送方在收到兩個確認後,cwnd就從2增大到4,並可發送M4〜M7共4個報文段。
與慢開始演算法相輔助的演算法是擁塞避免演算法。
擁塞避免演算法的思路是讓擁塞窗口 cwnd緩慢地增大,即每經過一個往返時間RTT就 把發送方的擁塞窗口cwnd加1,而不是像慢開始階段那樣加倍增長。在擁塞避免階段,擁塞窗口 cwnd按線性規律緩慢增長,比慢開始演算法的擁塞窗口增長速率緩慢得多。
為了防止擁塞窗口 cwnd增長過大引起網路擁塞,還需要設置一個慢開始門限ssthresh 狀態變數。慢開始門限ssthresh的用法如下:
下面用圖片說明慢開始演算法和擁塞避免演算法相互配合的原理。
其中ssthresh的初始值設置為16,開始時使用慢開始演算法,成指數性增長,當到達ssthresh值時,TCP協議預測可能會出現擁塞,所以開始使用避免擁塞演算法,成線性增長,當發生超時重傳時,立即減小擁塞窗口,重復上述步驟。
但是,有時,個別報文段會在網路中丟失,但實際上網路並未發生擁塞。如果發送方遲遲收 不到確認,就會產生超時,就會誤認為網路發生了擁塞。這就導致發送方錯誤地啟動慢開 始,把擁塞窗口cwnd又設置為1,因而降低了傳輸效率。
釆用快重傳演算法可以解決上述問題。快重傳演算法可以讓發送方盡早知道發生了個別報文段的丟失。快重傳演算法首先要求接收方不要等待自己發送數據時才進行捎帶確認,而是要立即發送確認,即使收到了失序的報文段也要立即發出對已收到的報文段的重復確認。
下面舉一個例子來說明快重傳演算法的原理。接收方收到了M1和M2後都分別及時發出了確認。現假定接收方沒有收到M3但卻收到了 M4。本來接收方可以什麼都不做。但按照快重傳演算法,接收方必須立即發送對M2的重復確認,以便讓發送方及 早知道接收方沒有收到報文段M3。發送方接著發送M5和M6。接收方收到後也仍要再次分別發出對M2的重復確認。這樣,發送方共收到了接收方的4個對M2的確認,其中後3個都是重復確認。快重傳演算法規定,發送方只要一連收到3個重復確認,就知道接收方確實沒 有收到報文段M3,因而應當立即進行重傳(即「快重傳」),這樣就不會出現超時,發送方也不就會誤認為出現了網路擁塞。
快恢復演算法與快重傳演算法配合使用,當使用快重傳演算法發現是由於數據丟失而引起的超時(不是網路擁塞引起的),就使用快恢復演算法,此時發送方調整門限值ssthresh=cwnd/2,同時設置擁塞窗口cwnd=ssthresh,並開始執行擁塞避免演算法。
慢開始、擁塞避免、快重傳和快恢復這四種演算法相輔相成,構成了TCP的擁塞控制。
網路層的策略對TCP擁塞控制影響最大的就是路由器的分組丟棄策略。在最簡單的情 況下,路由器的隊列通常都是按照「先進先出」的規則處理到來的分組。
由於隊列長度總是有限的,因此當隊列已滿時,以後再到達的所有分組(如果能夠繼續排隊,這些分組都將排在隊列的尾部)將都被丟棄。這就叫做尾部丟棄策略。
路由器的尾部丟棄往往會導致一連串分組的丟失,這就使發送方出現超時重傳,使 TCP進入擁塞控制的慢開始狀態,結果使TCP連接的發送方突然把數據的發送速率降低到 很小的數值。更為嚴重的是,在網路中通常有很多的TCP連接(它們有不同的源點和終 點),這些連接中的報文段通常是復用在網路層的IP數據報中傳送。在這種情況下,若發生了路由器中的尾部丟棄,就可能會同時影響到很多條TCP連接,結果使這許多TCP連接在同一時間突然都進入到慢開始狀態。這在TCP的術語中稱為全局同步。
為了避免發生網路中的全局同步現象,可以使用主動隊列管理AQM。
所謂「主動」就是不要等到路由器的隊列長度已經達到最大值時才不得不丟棄後面到達的分組。這樣就太被動了。應當在隊列長度達到某個值得警惕的數值時 (即當網路擁塞有了某些擁塞徵兆時),就主動丟棄到達的分組。這樣就提醒了發送方放慢發送的速率,因而有可能使網路擁塞的程度減輕,甚至不出現網路擁塞。
TCP是面向連接的協議。運輸連接是用來傳送TCP報文的。TCP運輸連接的建立和釋放是每一次面向連接的通信中必不可少的過程。因此,運輸連接就有三個階段,即:連接建立、數據傳送和連接釋放。運輸連接的管理就是使運輸連接的建立和釋放都能正常地進行。
在TCP連接建立過程中要解決以下三個問題:
TCP連接的建立釆用客戶伺服器方式。主動發起連接建立的應用進程叫做客戶,而被動等待連接建立的應用進程叫做伺服器。
TCP建立連接的過程叫做握手,握手需要在客戶和伺服器之間交換三個TCP報文段。
下面舉一個例子來說明TCP建立連接的過程。假定主機A運行的是TCP客戶程序,而B運行TCP伺服器程序。最初兩端的TCP進程都處於CLOSED(關閉)狀態。圖中在主機下面的方框分別是TCP進程所處的狀態。請注意,在本例中,A主動打開連接,而B被動打開連接。
一開始,B的TCP伺服器進程先創建傳輸控制塊TCB,准備接受客戶進程的連接請求。然後伺服器進
Ⅱ 求自考《計算機網路及應用教程》的名稱解釋 越多越好
第一章
計算機網路四個發展階段:面向終端的計算機網路、計算機-計算機網路、開放式標准化網路、網際網路廣泛應用和高速網路技術發展。
我國三大網路:電信網路、廣播電視網路、計算機網路。
未來發展趨勢:寬頻、全光、多媒體、移動、下一代網路。
計算機網路由資源子網和通信子網構成。
計算機網路的定義:利用通訊設備和線路將地理位置不同的、功能獨立的多個計算機系統互連起來,以功能完善的網路軟體實現網路中資源共享和信息傳遞的系統。
計算機網路的功能:軟/硬體資源共享、用戶間信息交換。
計算機網路的應用:辦公自動化、遠程教育、電子銀行、證券及期貨交易、企業網路、智能大廈和結構化綜合布線系統。
計算機網路的分類:
按拓撲結構:星形、匯流排形、環形、樹形、混合形、網形。
按交換方式:電路交換網、報文交換網、分組交換網。
按覆蓋范圍:廣域網、城域網、區域網。
按傳輸技術:廣播方式網路、點對點方式網路。
ISO(國際標准化組織),ITU(國際電信聯盟),IETF(網際網路工程特別任務組)
第二章
網路協議:為計算機網路中進行數據交換而建立的規則、標准或約定的集合。
網路協議由三個要素組成:語義、語法、時序關系。
分層:將一個復雜的劃分為若干個簡單的
網路的體系結構:計算機網路各層次結構模型及其協議的集合
面向連接服務:開始時建立連接,傳輸時不用攜帶目的節點的地址。
無連接服務:開始時不需建立連接,每個分組都要攜帶完整的目的節點地址,不同分組可能選擇不同路徑達到目的節點,節點接收到的分組可能出現亂序、重復、丟失的現象。協議相對簡單,效率較高。
OSI/RM:物理層、數據鏈路層、網路層、傳輸層、會話層、表示層、應用層。
TCP/IP:主機-網路層、互聯層、傳輸層、應用層。
ORI/RM與TCP/IP的比較:
共同:1,兩者都以協議棧的概念為基礎,協議棧中的協議彼此相互獨立,2,都採用了層次結構的概念,各層功能大體相似。
不同:1,OSI有7層,TCP/IP有4層。TCP/IP網路層提供無連接通信,傳輸層支持2種。OSI網路層支持2種,傳輸層支持面向連接的通信。
第三章
物理層定義:在物理信道實體之間合理地通過中間系統,為比特傳輸所需的物理連接的激活、保持和去除提供機械的、電氣的、功能性和規程性的手段
DTE::數據終端設備,對屬於用戶所有的聯網設備或工作站的統稱,如計算機、終端等。
DCE:數據通信設備,為用戶提供入網連接點的網路設備的統稱,如數據機。
物理信道的特性:機械特性、電氣特性、功能特性、規程特性。
電氣特性分三種:1,非平衡方式(非平衡發送器+接收器+1導線+1地線),2,採用差動接收器的非平衡方式(非平衡發送器+差動接收器+1導線+2地線),3,平衡方式(平衡發送器+差動接收器+2導線+2地線)。
功能特性分四類:數據信號線、控制信號線、定時信號線、接地線。
EIA(美國電子工業協會) RS-232C,:提供了利用公用電話網路作為傳輸介質,通過數據機將遠程設備連接起來的技術規定。
RS-422(平衡方式),RS-423(採用差動接收器的非平衡方式)
X.21機械特性採用15芯標准
有線介質:雙絞線、同軸電纜、光纖。無線介質:無線電波、微波、紅外線、激光、衛星通信。
同軸電纜分基帶同軸電纜(阻抗50歐,支持百台設備)和寬頻同軸電纜(阻抗75歐,支持千台設備)。
光纖:多模是發光二極體LED,注入型激光二極體ILD是單模。
數據傳輸速率:是指每秒能傳輸的二進制信息位數,單位為位/秒(bps)。R=1/T*log2N (bps)
信號傳輸速率(調制速率):表示單位時間內通過信道傳輸的碼元個數。R=1/T (Baud)
信道容量:表徵一個信道傳輸數據的能力,單位為位/秒(bps)。
信道容量表示信道的最大數據傳輸速率,是信道傳輸數據能力的極限,數據傳輸速率表示實際的數據傳輸速率。
奈奎斯特公示:C=2*H*log2N (bps),香農公式:C=H*log2(1+S/N)(bps)(H:信道帶寬,S/N:信噪比)
誤碼率=出錯數/總數
數據機:數字轉模擬,CODEC:模擬轉數字
放大器:增強信號中的能量,同時使噪音分量增強。中繼器:重新生成信號。
數據通信:是一種通過計算機或其他數據裝置與通信線路,完成數據編碼信號的傳輸、轉接、存儲和處理的通信技術。
多路復用技術:頻分多路復用FDM,時分多路復用TDM,波分是頻分的變形。
FDM:物理信道分為若乾子信道,同時傳送若干信號。
TDM:物理信道按時間片輪流分給多個信號使用。
采樣,量化,編碼。字長=log2N
傳輸線路三個主要問題:衰減、延遲畸變、雜訊。
分組交換網分為虛電路和數據報兩種
第四章
數據鏈路層的功能:幀同步、差錯控制、流量控制、鏈路管理。
差錯控制:反饋重發、超時計時器、幀編號。
流量控制:數據鏈路層控制相鄰兩節點之間數據鏈路上的流量,傳輸層控制從源到最終目的之間端對端的流量。
雜訊有兩大類:隨即熱雜訊和沖擊雜訊。
停-等: 發送窗口=1,接收窗口=1;
Go-back-N: 發送窗口>1,接收窗口=1;
選擇重傳: 發送窗口>1,接收窗口>1;
非同步協議:字元內同步,字元間非同步;同步協議:許多字元和比特組成的幀同步。
BSC:面向字元,分為數據報文和監控報文兩類。
數據報文:
SYN SYN STX 報文 ETX BCC
SYN SYN SOH 報頭 STX 報文 ETX BCC
SYN SYN SOH 報頭 STX 報文 ETB BCC
SYN SYN STX 報文 ETB BCC
監控報文:
SYN SYN ACK
SYN SYN NAK
SYN SYN P/S前綴 站地址 ENQ
SYN SYN EOT
HDLC:面向比特,有信息幀(I幀),監控幀(S幀)和無編號幀(U幀)。
幀格式:標志 地址 控制 信息 幀校驗序列 標志
F A C I FCS F
01111110 8位 8位 N位 16位 01111110
PPP協議提供三類功能:成幀、鏈路控制、網路控制。
PPP的幀格式和HDLC的幀格式非常相似,但PPP面向字元。
第五章
網路層的功能:路由選擇、擁塞控制和網際互聯等。
分組交換方式中,通信子網向端系統提供虛電路和數據報兩種網路服務。
最優化原則:如果路由器J在從路由器I到K的最佳路由上,那麼從J到K的最佳路線就會在同一路由之中。
擴散法(泛射路由選擇法):一個網路節點從某條線路收到一個分組後,再向除該條線路外的所有線路發送收到的分組。
擁塞發生的原因:1,內存不夠,沒有足夠的內存存放同時到達的分組,2,路由器處理器的處理速度慢,難以完成排隊,更新路由表等工作
擁塞控制的任務是確保子網能夠承載所有到達的流量,這是一個全局的問題。流量控制只與特定的發送方和特定的接收方之間的點到點流量有關。
擁塞控制的解決方案可分成兩類:開環(不考慮網路的當前狀態)的和閉環的。
虛電路子網中的擁塞控制:1,准入控制,2,路由選擇,3,資源預留。
數據報子網中的擁塞控制:1,警告位,2,抑制分組,3,逐跳抑制分組。
QoS四個特徵:可靠性、延遲、抖動、帶寬。
集成服務:每個連接有專用資源。區分服務:每一類連接有專用資源。
標簽交換:類似虛電路,查表得到整條線路。
MPLS(多協議標簽交換協議)。
網路互連的目的是使一個網路上的用戶能訪問其它網路上的資源,使不同網路上的用戶互相通信和交換信息。
路由信息協議(RIP)分被動狀態和主動狀態兩種操作方式。
開放最短路徑優先協議(OSPF)是一種鏈路狀態路由協議。
網橋用來連接類型相似的區域網,區域網本身沒有網路層。
網橋工作在數據鏈路層,路由器工作在網路層。
路由器的主要服務功能:1,建立並維護路由表,2,提供網路間的分組轉發功能。
網管也稱協議轉換器,用於高層協議的轉換,對傳輸層到應用層均能支持。
IP(互聯網協議),ICMP(互聯網控制報文協議),ARP(地址轉換協議),RARP(反向地址轉換協議)。
IP協議提供不可靠的、無連接的數據包傳輸機制。
ARP:IP地址(32位)到物理網路地址(乙太網地址,DA,48位)的轉換。
RARP:物理網路地址到IP地址的轉換。
IGMP(網際網路組管理協議):只有兩種報文,詢問和響應。
IPv6把IP地址長度增加到128比特。
Ⅲ 運輸層知識要點——謝希仁《計算機網路》
為了在計算機網路中有條不紊地交換數據,就必須遵守一些事先約定好的規則。這些規則明確規定了所 交換數據的格式 以及有關的 同步 問題。
同步的含義:在一定條件下應當發生什麼事件,因而含有時序的意思。
網路協議:為進行網路中的數據交換而建立的規則、標准或約定。
網路協議由以下三個要素組成:
1)語法:即數據與控制信息的結構或格式
2)語義:即需要發出何種控制信息,完成何種動作以及做出何種反應
3)同步:即事件實現順序的詳細說明
一、運輸層協議的概述
1.1 進程之間的通信
1.2 運輸層的兩個主要協議
1.3 運輸層的埠
二、用戶數據報協議UDP
2.1 UDP概述
2.2 UDP的首部格式
三、傳輸控制協議TCP概述
3.1 TCP的最主要的特點
3.2 TCP的連接
四、可靠傳輸的工作原理
4.1 停止等待協議
4.2 連續ARQ協議
五、TCP報文段的首部格式
六、TCP可靠傳輸的實現
6.1 以位元組為單位的滑動窗口
6.2 超時重傳時間的選擇
6.3 選擇確認SACK
七、TCP的流量控制
7.1 利用滑動窗口實現流量控制
7.2 必須考慮傳輸效率
八、TCP的擁塞控制
8.1 擁塞控制的一般原理
8.2 幾種擁塞控制方法
8.3 隨機早期檢測RED
九、TCP的運輸連接管理
9.1 TCP的連接建立
9.2 TCP的連接釋放
9.3 TCP的有限狀態機
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1.1 進程之間的通信
1.只有主機的協議棧才有運輸層,而網路核心部分中的路由器在轉發分組時都只用到了下三層的功能
2.兩個主機進行通信就是兩個主機中的應用進程互相通信。從運輸層的角度看,通信的真正端點並不是主機而是主機中的進程。(IP協議能把分組送到目的主機)
網路層時為主機之間提供邏輯通信,而運輸層為應用進程之間提供端到端的邏輯通信。
3.運輸層一個重要功能——復用、分用。 (應用進程復用、分用運輸層)
1.2 運輸層的兩個主要協議
1.UDP—User Datagram Protocol 用戶數據報協議(無連接):DNS/RIP/DHCP/SNMP/NFS
TCP—Transmission Control Protocol 傳輸控制協議(面向連接):SMTP/TELNET/HTTP/ FTP
1.3 運輸層的埠
問題:為了使運行不同操作系統的計算機的應用進程能夠互相通信,就必須使用統一的方法(而這種方法必須與特定操作系統無關)對TCP/IP體系的應用進程進行標識。
為什麼不用進程號來區分?(第一,不同操作系統的進程標識符不同;第二,用功能來識別,而不是進程,例如郵件服務功能,而不管具體是哪個進程)
解決方案:在運輸層使用協議埠號,即埠。軟體埠是應用層的各種協議進程與運輸實體進行層間交互的一種地址。(埠號只具有本地意義,只是為了標識本計算機應用層中各個進程在和運輸層交互時的層間介面。)
埠分為兩大類:
1)伺服器使用的埠號:熟知埠號或系統埠號(0~1023);登記埠號(1024~49151)
2)客戶端使用的埠號:49152~65535
2.1 UDP概述
1.UDP只在IP的數據報服務至上增加了很少一點功能,就是復用、分用以及差錯檢測功能
2.特點
1)無連接
2)盡最大努力交付
3)面向報文 (不合並、不拆分、保留這些報文的邊界)
4)UDP沒有擁塞控制
5)UDP支持一對一、一對多、多對一和多對多的交互通信
6)UDP的首部開銷小,只有8位元組
應用進程本身可以在不影響應用的實時性的前提下,增加一些提高可靠性的措施,如採用前向糾錯或重傳已丟失的報文。
2.2 UDP的首部格式
1.traceroute 讓發送的UDP用戶數據報故意使用一個非法的UDP埠號,接收方丟棄報文,並由ICMP(網路控制報文協議)發送「埠不可達」差錯報文給發送方。
2.計算檢驗和。IP數據報的校驗和只檢驗IP數據報的首部,但UDP的校驗和是把首部和數據部分一起都檢驗。(12位元組的首部+真正的首部+數據來進行校驗和的計算)
Q1.為什麼計算校驗和要加12位元組的偽首部
Q2.計算校驗和的原理是什麼?
3.1 TCP的最主要的特點
1.面向連接的運輸層協議(建立連接、傳輸數據、釋放連接)
2.點對點,每一條TCP連接只能有兩個端點
3.可靠交付(無差錯、不丟失、不重復、並且按序到達)
4.全雙工通信。TCP連接的兩端都設有發送緩存和接收緩存。
5.面向位元組流。(流指的是流入到進程或從進程流出的位元組序列;面向位元組流:TCP把應用程序交下來的數據看成是一連串的無結構位元組流。 接收方的應用程序必須有能力識別接收到的位元組流,把它還原成有意義的應用層數據。 因此TCP可以根據窗口值和當前網路狀況調整發送的報文長度。劃分短一點,或者積累到足夠多再發送出去。)
3.2 TCP的連接
1.TCP把連接作為最基本的抽象。
2.每一條TCP連接有兩個端點。TCP連接的端點叫作套接字。
套接字soket = (IP地址:埠號)
每一條TCP連接唯一地被通信兩端的兩個端點(即兩個套接字)所確定。
TCP連接 ::= {socket1, socket2}
理想的傳輸條件有以下兩個特點:
1)傳輸信道不產生差錯
2)不管發送方以多快的速度發送數據,接收方總是來得及處理收到的數據
實際的網路並不具備,因此:
1)出現差錯時,讓發送方重傳
2)接收方來不及處理時,及時告訴發送方適當降低發送數據的速度
4.1 停止等待協議
1.「停止等待」就是沒發送完一個分組就停止發送,等待對方的確認,在收到確認後再發送下一個分組。
2.超時重傳。在每發完一個分組就設置一個超時計時器,如果在超時計時器之前收到對方的確認,就撤銷已設置的超時計時器。如果未收到,就認為剛才的分組丟失,並重傳。
3.三種情況:A發送的分組出錯、丟失;B發送的確認丟失;B發送的確認遲到
確認丟失:B丟棄重復的分組,向A重傳確認
確認遲到:A丟棄重復的確認,B丟棄重復分組,並向A重傳確認
4.常稱為自動重傳請求ARQ,重傳時自動進行的(超時即重傳)
5.缺點:信道利用率太低
U=Td/(Td+RTT+Ta)
為了提高傳輸效率,發送方不使用停止等待協議,而是採用流水線傳輸。流水線傳輸就是發送發可連續發送多個分組,不必等每發完一個分組就停頓下來等待對方的確認。(連續ARQ協議和滑動窗口協議)
4.2 連續ARQ協議
1.位於發送窗口內的分組都可連續發送出去,而不需要等待對方的確認。
2.累積確認:接收方不必對收到的分組逐個發送確認,而是在收到幾個分組後,對按序到達的最後一個分組發送確認。
3.缺點:Go-back-N (發送前5個分組,第3個分組丟失,後面三個要重傳)
1.源埠和目的埠
2.序號。 每個位元組都按順序編號。
3.確認號。 期望收到對方下一個報文段的第一個數據位元組的序號。
若確認號=N,則表明:到序號N-1為止的所有數據都已正確收到。
4.數據偏移。 指出TCP報文段的數據起始處距離TCP報文段的起始處有多遠(也即TCP報文段首部長度)。由於首部中還有長度不確定的選項欄位,因此數據偏移欄位是必要的。
5.窗口。窗口欄位明確指出了現在允許對方發送的數據量。窗口值是經常在動態變化著。
6.1 以位元組為單位的滑動窗口
1.發送緩存用來暫存:
1)發送應用程序傳送給發送方TCP准備發送的數據;
2)TCP已發送但未收到確認德爾數據
2.接收緩存用來存放:
1)按序到達的、但尚未被接收應收程序讀取的數據;
2)未按序到達的數據
3.注意三點:
1)A的發送窗口是根據B的接收窗口設置的,但是在同一時刻,由於網路傳輸的滯後,A的發送窗口並不總是B的接收窗口一樣大
2)TCP通常對不按序到達的數據是先臨時存放在接收窗口中,等到位元組流中所缺少的位元組收到後,再按序交付上層的應用進程
3)TCP接收方有累計確認功能(不能過分推遲發送確認,否則會導致發送方不必要的重傳)
6.2 超時重傳時間的選擇
1.超時重傳時間設置太短,會引起很多不必要的重傳;如果設置太長,使網路的空閑時間增大,降低傳輸效率。
2.新的RTTs = (1-a)x(舊的RTTs) + ax(新的RTT樣本),其中RTT樣本的時間為:記錄一個報文段發出的時間,以及收到相應的確認時間,時間差就是報文段的往返時間RTT。
3.RTO = RTTs + 4 x RTTd,其中RTO為超時重傳時間,RTTd是RTT的偏差的加權平均值。
新的RTTd = (1-b) x (舊的RTTd)+ b x |RTTs - 新的RTT樣本|
4.一個問題:發送一個報文段,設定的重傳時間到了,還沒有收到確認。於是重傳報文段。經過一段時間,收到了確認報文段。現在的問題是:如何判定此確認報文段是對先發送的報文段的確認,還是對後來重傳的報文段的確認?
1)解決方法1,在計算加權平均值RTTs時,只要報文段重傳了,就不採用其往返時間樣本。
引入的問題:報文段的時延突然增大的情況
2)解決方法2,報文段每重傳一次,就把超時重傳時間RTO增大一些(一般是2倍)。當不在發生報文段的重傳時,再根據加權平均計算。
6.3 選擇確認SACK
SACK文檔並沒有指明發送發應當怎樣響應SACK。因此大多數的實現還是重傳所有未被確認的數據塊。
7.1 利用滑動窗口實現流量控制
1.流量控制:就是讓發送方的發送速率不要太快,要讓接收方來得及接收。
2.利用滑動窗口機制可很方便地在TCP連接上實現對發送方的流量控制。發送方的發送窗口不能超過接收方給出的接收窗口的數值。
3.死鎖情況:B向A發送了零窗口的報文段後不久,B又有了一些緩存空間,因此B向A發送rwnd = 400.然而該報文段在傳送過程中丟失。A一直等待B發送的非零窗口的通知,B也一直等待A發送的數據。( 窗口通知不超時重傳?為什麼? )
解決方法:TCP為每個連接設有一個持續計時器。只要一方收到對方的零窗口通知,就啟動計時器。計時器到期後,發送一個零窗口探測報文段,而對方就在確認這個探測報文段時給出了現在的窗口值。若仍為零,收到報文段的一方重新設置持續計時器。
7.2 必須考慮傳輸效率
1.應用程序把數據傳送到TCP的發送緩存後,剩下的發送任務就由TCP來控制了。
2.三種不同的機制來控制TCP報文段的發送時機:
1)TCP維持一個變數,它等於最大報文段長度MSS,只要緩存中的存放的數據達到MSS,就組裝成一個TCP報文段發送出去
2)由發送方的應用進程指明要求發送報文段,即TCP支持推送操作
3)發送方設置一個定時器
3.問題一、若用戶只發送一個位元組,則非常浪費帶寬。
解決方法:若發送應用程序把要發送的數據逐個位元組地送到TCP的發送緩存,則發送方就把第一個數據位元組先發送出去,把後面到達的數據位元組都緩存起來。當發送方收到對第一個數據字元的確認後,再把發送緩存中的所有數據組裝成一個報文段發送出去。(採用收到確認就發送+並開始緩存的方式;同時當到達的數據已達到發送窗口大小的一半或已達到報文段的最大長度時,就立即發送一個報文段。)
4.問題二、糊塗窗口綜合症。接收緩存已滿,應用程序一次只讀取一個位元組,然後向發送方發送確認。
解決方法:讓接收方等待一段時間,使得接收緩存已有足夠空間容納一個最長的報文段,或者等到接收緩存已有一半空閑的空間。則接收方就發出確認報文。
8.1 擁塞控制的一般原理
1.擁塞的定義:對資源的需求 > 可用資源。 在計算機網路中的鏈路帶寬、交換結點中的緩存和處理機等,都是網路中的資源。
2.擁塞解決不能靠解決某一個部分的問題。因為這會將瓶頸轉移到其他地方。問題的實質往往是整個系統的各個部分不匹配。只有所有部分都平衡了,問題才會得到解決。
3.擁塞控制與流量控制的比較。
1)擁塞控制:防止過多的數據注入到網路中,這樣可以使網路中的路由器或鏈路不致過載。
擁塞控制有個前提:網路能夠承受現有的網路負荷
擁塞控制是一個全局性過程。(發送擁塞時,不知道在某處、什麼原因造成的)
2)流量控制:點對點通信量的控制,是個端到端的問題
流量控制:抑制發送端發送數據的速率,以便使接收端來得及接收。
4.尋找擁塞控制的方案無非就是使不等式 「對資源的需求 > 可用資源 」不再成立的條件。但是必須考慮該措施帶來的其他影響。
5.計算機網路是個復雜的系統。從控制理論的角度來看擁塞控制,可以分為開環控制和閉環控制兩種方法。
1)開環控制:設計網路時事先將有關發生擁塞的因素考慮周到,力求網路在工作時不產生擁塞。但一旦系統運行起來,就不再中途改正。
2)閉環控制:基於反饋環路。
步驟一、監測網路系統以便檢測到擁塞在何時、何處發生;
步驟二、把擁塞發生的信息傳送到可採取行動的地方
步驟三、調整網路系統的運行以解決出現的問題
8.2 幾種擁塞控制方法(只考慮網路擁塞程度,即假設接收方總是有足夠大的緩存空間)
1.慢開始和擁塞避免
1)發送方維持一個擁塞窗口。
擁塞窗口的大小取決於網路的擁塞程度,並且動態地在變化。
控制擁塞窗口的原則是:只要網路沒有出現擁塞,擁塞窗口增大;如果網路出現擁塞,則減小。
2)慢開始的思路:由小到大逐漸增大擁塞窗口數值。每收到一個對新的報文段的確認,把擁塞窗口增加至多一個MSS的數值。(沒經過一個傳輸輪次,擁塞窗口cwnd就加倍)
輪次:把擁塞窗口所允許發送的報文段都連續發送出去,並收到了對已發送的最後一位元組的確認。
慢開始的「慢」並不是指cwnd的增長速率慢,而是指TCP開始發送報文段時先設置cwnd=1(一個MSS數值)。
3)慢開始門限ssthresh
為防止擁塞窗口增長過大,引入一個慢開始門限ssthresh。
當cwnd < ssthresh時,使用上述的慢開始演算法
當cwnd > ssthresh時,停止使用慢開始演算法而改用擁塞避免演算法
4)擁塞避免演算法
思路:讓擁塞窗口cwnd緩慢增大,即沒經過一個往返時間RTT就把發送方的擁塞窗口cwnd增加1,而不是加倍。
5)慢開始門限的設置
只要發送方判斷網路出現擁塞(沒有按時收到確認),就把慢開始門限ssthresh設置為出現擁塞時發送方窗口值的一半,然後把擁塞窗口cwnd重置為1,執行慢開始演算法。
6)乘法減小和加法增大
乘法減小:網路出現擁塞時,把慢開始門限ssthresh減半(當前的ssthresh的一半),並執行慢開始演算法。
加法增大:執行擁塞避免方法
2.快重傳和快恢復
1)快重傳(盡快重傳未被確認的報文段)
首先,要求接收方每收到一個失序的報文段後就立即發出重復確認。(如接收方收到了M1和M2後都分別發出了確認,但接收方沒有收到M3但接著收到了M4。此時接收方立即發送對M2的重復確認。)
其次,發送方只要一連收到三個重復確認,就應當立即重傳對方尚未收到的報文段M3.
2)快恢復
要點一、當發送方連續收到三個重復確認,就執行「乘法減小」演算法,把慢開始門限ssthresh減半。
要點二、由於發送方認為網路很可能沒有發生擁塞(因為收到了連續的重復確認),把cwnd設置為慢開始門限ssthresh減半後的值,然後開始執行擁塞避免演算法
慢開始演算法只在TCP連接建立時和網路出現超時才使用。
3.發送方的窗口
發送方窗口的上限值 = Min [rwnd, cwnd]
8.3 隨機早期檢測RED(IP層影響TCP層的擁塞控制)
1.網路層的分組丟棄策略
網路層的策略對TCP擁塞控制影響最大的就是路由器的分組丟棄策略。
如果路由器隊列已滿,則後續到達的分組將都被丟棄。這就叫做尾部丟棄策略。
2.全局同步
由於TCP復用IP,若發生路由器中的尾部丟棄,就可能會同時影響到很多條TCP連接,結果就使許多TCP連接在同一時間突然都進入到慢開始狀態。全局同步使得全網的通信量突然下降了很多,網路恢復正常後,其通信量又突然增大很多。
3.隨機早期檢測RED
使路由器的隊列維持兩個參數,即隊列長度最小門限THmin和最大門限THmax。當每一個分組到達時,RED就先計算平均隊列長度Lav。RED演算法是:
1)若平均隊列長度小於最小門限THmin,則把新到達的分組放入隊列進行排隊
2)若平均隊列長度超過最大門限THmax,則把新到達的分組丟棄
3)若平均隊列長度在最小門限THmin和最大門限THmax之間,則按照某一概率p將新到達的分組丟棄。
隨機體現在3),在檢測到網路擁塞的早期徵兆時(即路由器的平均隊列長度超過一定的門限值時),就先以概率p隨機丟棄個別的分組,讓擁塞控制只在個別的TCP連接上進行,因而避免發生全局性的擁塞控制。
4.平均隊列長度Lav和分組丟棄概率p
Lav = (1-d) x (舊的Lav) +d x (當前的隊列長度樣本)
p = ptemp / (1- count x ptemp)
ptemp = pmax x (Lav - THmin) / (THmax - THmin)
TCP時面向連接的協議。
運輸連接就有三個階段:連接建立、數據傳送和連接釋放
運輸連接的管理:使運輸連接的建立和釋放都能正常地進行。
在TCP連接建立過程中要解決以下三個問題:
1)要使每一方能夠確知對方的存在
2)要允許雙方協商一些參數(如最大窗口值、是否使用窗口擴大選項和時間戳等等)
3)能夠對運輸實體資源(如緩存大小、連接表中的項目等)進行分配
9.1 TCP的連接建立
1.TCP規定,SYN=1報文段不能攜帶數據,但消耗一個序號
2.TCP規定,ACK=1報文段可以攜帶數據,如果不攜帶數據則不消耗序號
3.為什麼A還要發送一次確認?為了防止已失效的連接請求報文突然又傳送到B,因而產生錯誤。
「已失效的連接請求報文段」
A發出第一個連接請求報文段,在網路中滯留超時,又發出了第二個連接請求。但B收到第一個延遲的失效的連接請求報文段後,就誤認為是A又發出了一次新的連接請求。於是就向A發出確認報文段,同意建立連接。假定不採用三次握手,那麼只要B發出確認,新的連接就建立。此時A不會理睬B的確認,也不會發數據,但B一直等A發送數據,B的許多資源就浪費了。
採用三次握手,A不會向B發送確認,因此B就知道A並沒有要求建立確認。
9.2 TCP的連接釋放
1.TCP規定,FIN報文段基石不攜帶數據,也消耗一個序號
2.第二次握手後,TCP通知高層應用程序,因而從A到B這個方向的連接就釋放,TCP連接處於半關閉狀態
3.為什麼A在TIME-WAIT狀態必須等待2MSL的時間
1)為了保證A發送的最後一個ACK報文段能夠到達B。因為ACK可能丟失,此時B可能會超時重傳,然後A重傳確認,並重新啟動2MSL計時器
2)防止「已失效的連接請求報文段」出現在本連接中。可以使本連接持續時間內所產生的所有報文段都從網路中消失。
9.3 TCP的有限狀態機
Ⅳ 計算機網路慢啟動與擁塞避免的思想是什麼
從大的方面來看,分為兩種:和方式。開環方法:就是開始設計網路時事先將有關發生擁塞的因素考慮周到,力求網路在工作時不產生擁塞,一旦系統運行起來就不在進行修正了。設計難度較大,閉環方法是基於反饋環路的概念,具體方法:
①檢測網路系統以便擁塞在何時、何處發生。
②將擁塞信息傳輸到可採取行動的地方。
③調整網路系統的運行以解決出現的問題。
有許多的方法可以檢測的網路的擁塞。主要的指標有:缺少的緩存空間和被丟失的分組的百分比;平均隊列長度;超時傳輸的分組數;平均時延;分組時延的標准差等等。
另一種管理方式是在路由器的分組保留一個bit的空間,來判斷網路是否擁塞,這種方式能夠有效的控制系統產生的震盪。
求採納
Ⅳ 計算機控制系統主要分幾大類,並說明各類的特點同時指出計算機控制系統的主要性能指標
1、計算機控制系統主要分幾大類,並說明各類的特點?
計算機控制系統的分類 計算機控制系統的分類有三種方法:以自動控制行式分類,以參於控制方式分類或以調節規律分類。 一、以自動控制行式分類 以自動控制方式可以分成如下幾類: (一) 計算機開環控制(Computer Open Loop Control)系統 若計算機開環控制系統的輸出對生產過程能行使控制,但控制結果---生產過程的狀態沒有影響計算機控制的系統,計算機\控制器\生產過程等環節沒有構成閉合環路,則稱之為計算機開環控制系統.從圖上看出生產過程的狀態沒有反饋給計算機,而是由操作人員監視生產過程的狀態,決定控制方案,並告訴控制計算機使其行使控製作用. (二) 計算機閉環控制 計算機對生產對象或過程進行控制時,生產過程狀態能直接影響計算機控制的系統,稱之為計算機閉環控制系統.控制計算機在操作人員監視下,自動接受生產過程狀態檢測結果,計算並確定控制方案,直接指揮控制部件(器)的動作,行使控制生產過程作用. 在這樣的系統中,控制部件按控制機發來的控制信息對運行設備進行控制,另一方面運行設備的運行狀態作為輸出,由檢測部件測出後,作為輸入反饋給控制計算機;從而使控制計算機\控制部件\生產過程\檢測部件構成一個閉環迴路.我們將這種控制形式稱之為控制計算機閉環控制. 計算機閉環控制系統,利用數學模型設置生產過程最佳值與檢測結果反饋值之間的偏差,控制達到生產過程運行在最佳狀態. (三) 在線控制 只要計算機對受控對象或受控生產過程,能夠行使直接控制,不需要人工干預的都稱之為控制計算機在線控制或稱聯機控制系統. (四) 離線控制 控制計算機沒有直接參於控制對象或受控生產過程.它只完成受控對象或受控過程的狀態檢測,並對檢測的數據進行處理;而後制定出控制方案,輸出控制指示,操作人員參考控制指示,人工手動操作使控制部件對受控對象或受控過程進行控制.這種控制形式稱之為計算機離線控制系統. (五) 實時控制系統 控制計算機實時控制系統是指受控制的對象或受控過程,每當請求處理或請求控制時,控制機能及時處理並進行控制的系統,常用在生產過程是間斷進行的場合.如煉鋼,每煉一爐鋼是一個過程;又如軋鋼過程,每軋出一塊鋼算一個過程,每個過程都重復進行.只有進入過程才要求計算機進行控制.在計算機一旦進行控制時,就要求計算機對來自生產過程的信息在規定的時間內作出反應或控制.這種系統常使用完善的中斷系統和中斷處理程序來實現.綜上所述,一個在線系統並不一定是實時系統.但是一個實時系統必是一個在線系統. 二、 以參於控制方式來分類 按控制機參於控制方式來分類, 可分成如下幾種: (一)直接數字控制系統 由控制計算機取代常規的模擬調節儀表而直接對生產過程進行控制,由於計算機發出的信號為數字量,故得名DDC控制。實際上受控的生產過程的控制部件,接受的控制信號可以通過控制機的過程輸入/輸出通道中的數/模(D/A)轉換器將計算機輸出的數字控制量中轉換成模擬量;輸入的模擬量也要經控制機的過程輸入/輸出通道的模/數(A/D)轉換器轉換成數字量進入計算機. DDC控制系統中常使用小型計算機或微型機的分時系統來實現多個點的控制功能.實際上是屬於用控制機離散采樣,實現離散多點控制.這種DDC計算機控制系統已成為當前計算機控制系統中主要控制形式之一. DDC控制的優點是靈活性大,集中可靠性高和價格便宜.能用數字運算形式對若干個迴路,甚至數十個迴路的生產過程,進行比例--- 積分---微分(PID)控制,使工業受控對象的狀態保持在給定值上,偏差小且穩定.而且只要改變控制演算法和應用程序便可實現較復雜的控制.如前饋控制和最佳控制等.一般情況下,DDC級控制常作為更復雜的高級控制的執行級. (二) 計算機監督控制系統 計算機監督控制系統是針對某一種生產過程,依據生產過程的各種狀態,按生產過程的數學模型計算出生產設備應運行的最佳給定值,並將最佳值自動地或人工對DDC執行級的計算機或對模擬調節儀表進行調正或設定控制的目標值.由DDC或調節儀表對生產過程各個點(運行設備)行使控制. SCC系統的特點是能保證受控的生產過程始終處於最佳狀態情況下運行,因而獲得最大效益.直接影響SCC效果優劣的首先是它的數學模型,為此要經常在運行過程中改進數學模型,並相應修改控制演算法和應用控製程序. (三) 多級控制系統 在現代生產企業中,不僅需要解決生產過程的在線控制問題,而且還要求解決生產管理問題,每日生產品種、數量的計劃調度以及月季計劃安排,制定長遠規劃、預報銷售前景等, 於是出現了多級控制系統. DDC級主要用於直接控制生產過程,進行PID或前饋控制;SCC級主要用於進行最佳控制或自適應控制或自學習控制計算,並指揮DDC級控制同時向MIS級匯報情況.DDC級通常用微型計算機,SCC級一般用小型計算機或高檔微型計算機. 車間管理的MIS主要功能是根據工廠級下達的生產品種、數量命令和搜集上來的生產過程的狀態的信息,隨時進行合理調度,實現最優控制,指揮SCC級監督控制. 工廠管理級的MIS主要功能是接受公司下達的生產任務和本廠的實際情況,進行最優化計算,制訂本廠生產計劃和短期(旬或周或日)安排,
Ⅵ 網路五層結構
計算機網路五層結構是指應用層、傳輸層、網路層、數據鏈路層、物理層。
1、應用層
專門針對某些應用提供服務。
2、傳輸層
網路層只把數據送到主機,但不會送到進程。傳輸層負責負責進程與主機間的傳輸,主機到主機的傳輸交由網路層負責。傳輸層也稱為端到端送。
3、網路層
把包裡面的目的地址拿出來,進行路由選擇,決定要往哪個方向傳輸。
負責從源通過路由選擇到目的地的過程,達到從源主機傳輸數據到目標主機的目的。
4、數據鏈路層
通過物理網路傳送包,這里的包是通過網路層交過來的數據報。
只完成一個節點到另一個節點的傳送(單跳)。
5、物理層
通過線路(可以是有形的線也可以是無線鏈路)傳送原始的比特流。
只完成一個節點到另一個節點的傳送(單跳)。
(6)計算機網路開環擴展閱讀:
計算機網路是指將地理位置不同的具有獨立功能的多台計算機及其外部設備,通過通信線路連接起來,在網路操作系統,網路管理軟體及網路通信協議的管理和協調下,實現資源共享和信息傳遞的計算機系統。
計算機網路也稱計算機通信網。關於計算機網路的最簡單定義是:一些相互連接的、以共享資源為目的的、自治的計算機的集合。若按此定義,則早期的面向終端的網路都不能算是計算機網路,而只能稱為聯機系統(因為那時的許多終端不能算是自治的計算機)。但隨著硬體價格的下降,許多終端都具有一定的智能,因而「終端」和「自治的計算機」逐漸失去了嚴格的界限。若用微型計算機作為終端使用,按上述定義,則早期的那種面向終端的網路也可稱為計算機網路。