⑴ 計算機的網路協議分成幾層
TCP/IP參考模型將計算機網路協議劃分為4層,以下不屬於這4層的是物理層。基於TCP/IP的參考模型將協議分成四個層次,它們分別是:網路訪問層、網際互聯層(主機到主機)、傳輸層、和應用層。
網路訪問層是以IP為代表的網路協議, 這是真正的互聯網通信,兩台電腦之間可能鏈路層傳出的數據協議不一樣,但是都轉換成統一的IP數據協議,通過網線進行通信。
鏈路層主要包括設備驅動程序,網卡,以及區域網,將操作系統上的數據以位流形式封裝成幀,往上發送,也將來自上一層的數據幀,拆裝為位流形式的數據轉發到電腦操作系統中。
運輸層是以TCP,UDP協議為主,因為IP協議發送的數據可靠性不高,並且是最多精確到電腦,TCP協議採用超時重傳、發送和接收端到端的確認分組等機制確保數據傳輸的可靠度,並且可以精確到進程,將數據傳遞給進程。
應用層對應於OSI參考模型的高層,為用戶提供所需要的各種服務,例如:FTP、Telnet、DNS、SMTP等。
(1)計算機網路運輸層和傳輸層一樣嗎擴展閱讀:
在TCP/TP協族中,網路層IP提供的是一種不可靠的服務。它只是盡可能快地把分組從源節點送到目的節點,但不提供任何可靠性的保證。Tcp在不可靠的ip層上,提供了一個可靠的運輸層,為了提供這種可靠的服務,TCP採用了超時重傳、發送和接收端到端的確認分組等機制。
在7層模型中,每一層都提供一個特殊的網路功能。從網路功能的角度觀察:下面4層(物理層、數據鏈路層、網路層和傳輸層)主要提供數據傳輸和交換功能,即以節點到節點之間的通信為主;第4層作為上下兩部分的橋梁,是整個網路體系結構中最關鍵的部分;
而上3層(會話層、表示層和應用層)則以提供用戶與應用程序之間的信息和數據處理功能為主。簡言之,下4層主要完成通信子網的功能,上3層主要完成資源子網的功能。
⑵ TCP/IP的五個層是什麼
五個層分別是物理層、數據鏈路層、網路層、傳輸層、應用層。
假設兩台機器AB,以A給B發信息,作為例子解釋:
【物理層】
目標:實現AB之間可以發送01信號。
意義:就是物理上實現連接,AB之間用網線連接;或者無線鏈接。
【數據鏈路層】
目標:把信息編碼成01,並找到B後發給它。
編碼:將信息封裝成一個數據包,包括頭和數據兩部分;頭裡麵包含了A和B的物理地址,世上任何兩台機器有唯一的物理地址。
發送:A以廣播的形式,發給所有A可以發送到的機器,如果自己是B則拿過來,如果不是則丟棄。
【網路層】
目標:改善數據包發送的范圍,減少網路負擔。
問題:由於A會發送給所有機器,則如果連接的機器越多負擔越重。
方案:將世界的機器分區域,一個區域內的網路通過廣播發送,區域之間則通過新協議(IP)交流。
協議:物理地址是網卡本身的地址,IP4,IP6則是人為分配的地址,可以通過子網掩碼來判斷AB是否屬於同一個區域。
【傳輸層】
目標:區分AB上不同應用程序對網路的使用。
方案:通過埠(0-65535),0-1023已經被系統使用了;埠好像進入一個大廈後,要進入房間的門牌號,埠的選擇則通過新協議(TCP/UDP)實現。
協議:TCP、UDP分別是兩種可靠性級別不同的協議。
【應用層】
目標:實現對AB不同應用程序的數據編碼。
原因:不同應用程序根據自己的需求,對數據進行A上編碼和B上解碼。
⑶ 試說明運輸層在協議棧中的地位和作用,運輸層的通信和網路層的通信有什麼重要區別
運輸層地位:是面向網路通信的低三層協議。
運輸層作用:運輸層負責端到端的通信,既是七層模型中負責數據通信的最高層,又是面向網路通信的低三層和面向信息處理的最高三層之間的中間層。
運輸層跟網路層的區別:
一、七層位置不同
1、運輸層:利用網路層子系統提供給服務去開發本層的功能,並實現本層對會話層的服務。
2、網路層:位於物聯網三層結構中的第二層,其功能為「傳送」,即通過通信網路進行信息傳輸。
二、通信解決問題不同
1、運輸層:解決的是計算機程序到計算機程序之間的通信問題,即所謂的「端」到運輸層「端」的通信。
2、網路層:是實現兩個端系統之間的數據透明傳送,具體功能包括定址和路由選擇、連接的建立、保持和終止等。它提供的服務使傳輸層不需要了解網路中的數據傳輸和交換技術。如果您想用盡量少的詞來記住網路層,那就是「路徑選擇、路由及邏輯定址」。
三、服務協議特點不同
1、運輸層:用戶數據報協議UDP(User Datagram Protocol):提供無連接服務;傳輸控制協議TCP(Transmission Control Protocol):提供面向連接服務。
2、網路層:網路層的核心是IP協議,它是TCP/IP協議族中最主要的協議之一。IP協議非常簡單,僅僅提供不可靠、無連接的傳送服務。IP協議的主要功能有:無連接數據報傳輸、數據報路由選擇和差錯控制。
⑷ 計算機網路(5)| 運輸層
從通信和處理信息的角度看,運輸層是向它上面的應用層提供通信服務的,它屬於面向通信部分的最高層,同時也是用戶功能中的最低層。當網路的邊緣部分中的兩台主機使用網路的核心部分的功能進行端到端的通信時,只有主機的協議棧才有運輸層,而網路核心部分中的路由器在轉發分組時都只用到下三層的功能。
運輸層的兩個主要協議 TCP/IP 都是互聯網的正式標准,即:
(1)用戶數據報協議UDP
(2)傳輸控制協議TCP
TCP則是面向連接的服務。在傳送數據之前必須先建立連接,數據傳送結束後要釋放連接。TCP不提供廣播或者多播服務。由於TCP要提供可靠的面向連接的運輸服務,因此需要增加很多的開銷。
TCP/IP的運輸層用一個16位埠號來標志一個埠。埠號只有本地意義。它是為了標志本計算機應用層中的各個進程在和運輸層交互時的層間介面。
運輸層的埠號分為以下兩類:
(1)伺服器端使用的埠號: 它主要分為系統埠號0~1023和登記埠號1024~49151。
(2)客戶端使用的埠號: 49152~65535,這類埠號僅在客戶端進程運行時才動態選擇。當伺服器收到客戶端進程的報文時,就知道客戶端進程的埠號。因而可以把數據發送給客戶進程。
用戶數據報協議相比於IP的數據報服務就是只增加了復用、分用和差錯檢測功能。UDP的主要特點是:
(1)UDP是無連接的, 發送數據之前不需要建立連接,因此減少開銷和發送數據之前的時延。
(2)UDP使用盡最大努力交付, 即不保證可靠交付,因此主機不需要維持復雜的連接狀態表。
(3)UDP是面向報文的。 發送方的UDP對應用交下來的報文,添加首部後就向下交付給IP層。不對報文做任何處理,因此當報文過長時,IP層可能需要進行分片處理。
(4)UDP沒有擁塞控制, 網路出現的擁塞不會使源主機的發送速率減低。
(5)UDP支持一對一、一對多、多對一和多對多的交互通信。
(6)UDP的首部開銷小, 只有8個位元組。
UDP有兩個欄位:數據欄位和首部欄位。先介紹首部欄位,它是由4個欄位組成的,每個欄位只有2個位元組,總共有8個位元組。各個欄位的意義如下:
(1)源埠: 源埠號。在需要對方回信時選用。不需要時可用全0。
(2)目的埠: 目的埠號。在這終點交付報文時必須使用。
(3)長度: UDP用戶數據報的長度,其最小值是8(只有首部)。
(4)檢驗和: 檢測UDP用戶數據報在傳輸中是否有錯,有錯則丟棄。
當在傳送用戶數據報時,如果接收方UDP發現收到的報文中目的埠號不正確(即不存在對應於該埠號的應用進程),就丟棄該報文,並由網際控制報文協議ICMP發送「埠不可達」差錯報文給發送方。
TCP的主要特點如下:
(1)TCP是面向連接的運輸層協議。 應用程序在使用TCP協議之前,必須先建立TCP連接。傳送數據完畢後,必須釋放TCP連接。
(2)每一條TCP連接只能有兩個端點。 每一條TCP連接只能是點對點的。
(3)TCP提供可靠交付的服務。 通過TCP連接傳送的數據,無差錯、不丟失、不重復,並且按序到達。
(4)TCP提供全雙工通信。 TCP允許通信雙方的應用進程在任何時候都能發送數據。
(5)面向位元組流。 TCP中的流指的是流入到進程或進程流出的位元組序列。雖然應用程序和TCP的交互是一次一個數據塊,但TCP把應用程序交下來的數據看成一連串的無結構的位元組流。TCP不保證發送方發送的數據塊和接收方接收的數據塊一致,但保證程序接收到的位元組流和程序發送的位元組流一致。
TCP連接的端點叫做套接字或者插口。套接字是指將埠號拼接到IP地址之後,即:
每一條TCP連接唯一的被通信兩端的兩個端點所確定。即:
如圖所示,A發送分組M1,發送完畢就暫停發送,等待B的確認,B收到了M1就向A發死你確認。A在收到了對M1的確認之後,就再發送下一個分組M2,以此類推。
如圖所示,當B接收M1時檢測出了差錯,就丟棄M1,其他什麼也不做。而A只要超過了一段時間沒有收到確認,就會認為剛才發送的分組丟失了,因而重傳前面發送過的分組,這就叫做超時重傳,而實現超時重傳則需要A為每一個已發送的分組都設置一個超時計時器。
需要注意以下三點:
(1)A在發送完一個分組後,必須暫時保留已發送的分組的副本。
(2)分組和確認分組必須編號,這樣才能明確哪一個發出的分組收到了確認。
(3)超時計時器設置的重傳時間應當比數據在分組傳輸的平均往返時間更長。
如圖所示,B所發送的對M1確認丟失了,A在設定的超時重傳時間內沒有收到確認,所以無法知道自己發送的分組是怎樣出錯的,所以會重傳M1,而當B又收到了重傳的分組M1,這時應該採取兩個行動:
(1)丟棄這個重復分組M1。
(2)向A發送確認。
還有一種情況就是在傳輸過程中沒有出現差錯,但B對分組M1的確認遲到了,而A會收到重復的確認,A收下後就會丟棄,B仍然會收到重復的M1,並且同樣要丟棄重復的M1,並且重傳確認分組。
停止等待協議的優點是簡單,缺點則是信道的利用率太低。我們用TD表示A發送分組需要的時間,TA表示B發送確認分組需要的時間,RTT為往返時間,則:
為了提高傳輸的效率,發送方可以不使用低效率的停止等待協議,而是採用流水線傳輸的方式。即不必每發完一個分組就停下來等待對方的確認,這樣就可以使信道上一直有數據在不間斷的傳送。
如圖表示的是發送方維持的發送窗口,它指的是位於發送窗口內的5個分組都可以連續發送出去而不需要等待對方的確認。同時連續ARP協議規定,發送方每收到一個確認,就把發送窗口向前滑動一個分組的位置。
對於接收方採用的則是累計確認的方式,即接收方不必對收到的分組逐個發送確認。而是在收到幾個分組後,對按序到達的最後一個分組發送確認,這就表示:到這個分組為止的所有分組都已正確收到了。這種方式的優點是:容易實現,即使確認丟失也不必重傳(意思是發送方不必重傳)。但缺點是不能向發送方反映出接收方已經正確收到的所有分組信息。
TCP雖然是面向位元組流的,但傳送TCP的數據單元卻是報文段。一個TCP報文段可以分為首部和數據兩部分。
為了後面講述的方便,我們假設數據傳輸只在一個方向進行,即A發送數據,B給出確認。
TCP的滑動窗口是以位元組為單位的。如圖所示,現在假定A收到了B發來的確認報文段,其中的窗口是20位元組,而確認號是31,根據這2個數據,A就構造出自己的發送窗口。
發送窗口表示:在沒有收到B的確認的情況下,A可以連續把窗口內的數據都發送出去。凡是已經發送過的數據,在未收到確認之前都必須暫時保留,以便在超時重傳時使用。發送窗口後面的部分表示已發送且已經收到了確認。而發送窗口前沿的部分表示不允許發送的。
現在假定A發送了序號為31~41的數據。這時發送窗口位置並未改變但是發送窗口內靠後面有11個位元組表示已發送但是未收到確認。而發送窗口內靠前面的9個位元組時允許發送但未發送的。如圖所示:
而對於B,它的接收窗口大小是20,在接收窗口外面到30號位置的數據是接收並確認的,因此可以丟棄。在下圖中,B收到了32和33的數據,但它們不是按序到達的,因為並沒有收到31號數據。B只能對按序達收到的數據中的最高序號給出確認,因此B發送的確認報文欄位的確認號依然是31號。
現在假定B收到了序號為31的數據,並把31~33的數據交付主機,然後B刪除這些數據。接著把窗口向前移動3個序號,同時給a發送確認,其中的窗口值仍為20,但確認號變為34。表明B已經收到序號33為止的數據。
因為TCP的發送方在規定的時間內沒有收到確認就要重傳已經發送的報文段,但是重傳時間的選擇卻TCP最復雜的問題之一。為此TCP採用了一種自適應演算法,它記錄了一個報文段發出的時間以及收到相應的確認的時間。這兩個時間之差就是報文段的往返時間RTT,同時TCP保留了RTT的加權平均往返時間RTTs。而RTTD是RTT的偏差加權平均值,它與RTTs和新的RTT樣本之差有關。
超時重傳時間的演算法如下:
第一次測量時,加權平均往返時間取往返時間RTT,以後每次測量到一個新的RTT,按以下公式計算:
第一次測量時,RTT偏差的加權平均等於RTT的一半,以後的測里中,按以下公式計算:
綜上超時重傳時間RTO計算如下:
若收到的報文無差錯,只是未按序號,使用選擇確認SACK可是讓發送方發送那些未收到的數據,而不重復發送已經收到的那些數據。如果要使用選擇確認SACK,那麼在建立TCP連接時,就要在TCP首部的選項中加上「允許SACK」的選項,並且雙方必須都事先商量好。
流量控制就是指讓發送方的發送速率不要太快,要讓接收方來得及接收。而利用滑動窗口機制就可以很方便的在TCP連接上實現對發送方的流量控制。
如上圖所示,接收方B進行了三次流量控制。第一次把窗口減小到rwnd=300,第二次又減到rwnd=100,最後是rwnd=0,即不允許發送方再發送數據了。
但是我們應該考慮一種情況,就是當接收方B的存儲已滿時,會向發送方發送零窗口的報文段,接著B的存儲又有了一些空間,B再向A發送一個不為零的窗口值,但這個報文丟失了,結果就是雙方一直等待下去。所以為了解決這個問題,TCP為每一個連接設有一個持續計時器。只要TCP連接的一方收到對方的零窗口通知,就啟動持續計時器,當計時器到期後,就發送一個探測段文段,而對方就在確認這個探測段時給出了現在的窗口值。如果窗口仍然是0,那麼收到這個報文段的一方就重新設置持續計時器,反之則死鎖的僵局就可以打破了。
應用程序把數據傳送到TCP的發送緩存後,TCP在何時發送這些數據?,在TCP的實現中廣泛使用了Nagle演算法。具體演算法如下:
(1)若發送應用進程要把數據逐個位元組地送到TCP的發送緩存,則發送方就把第一個數據位元組先發出去,把後面到達的數據位元組都緩存起來。
(2)方發送方收到對第一個數據位元組的確認後,再把發送緩存中的所有數據組裝成一個報文發送出去,同時繼續對後續到來的數據進行緩存。
(3)只有收到對前一個報文段的確認後才繼續發送下一個報文段。
當數據到達快而網路速度慢時,這種方法可以明顯減少網路帶寬。Nagle還規定:當到達的數據達到窗口的一半或最大報文長度時就立即發送一個報文。
但還還需要考慮一個叫做糊塗綜合征的問題,具體內容是若接收方的緩存已滿,應用進程每次只從緩存中取1個位元組,然後向發送方確認,並把窗口設為1個位元組(緩存只空了1個位元組的空間),接著發送方發來1個位元組,接收方發回確認,仍然將窗口設為1,這樣進行下去,網路的利用率很低。
為了解決這個問題,可以讓接收方等待一段時間,使得或者緩存已有足夠的空間或者等到接收緩存已有一半的空閑空間。此時,接收方就發出確認報文,並向發送方通知當前窗口的大小。
擁塞 是指在某一段時間內,若對網路中某一資源的需求超過了該資源所能提供的可用部分,網路的性能就會變壞的情況。而所謂的 擁塞控制 就是防止過多的數據注入到網路當中,這樣可以使網路中的路由器或者鏈路不致過載,它是一個全局性的過程,涉及到所有的主機和路由器,而流量控制往往是指點對點通信量的控制。擁塞控制所要做的都有一個前提,就是網路能夠承受現有的網路負荷。
TCP進行擁塞控制的演算法有4種:慢開始、擁塞避免、快重傳和快恢復。下面在討論這些演算法時我們假定:
(1)數據是單方向傳送的,對方只傳送確認報文。
(2)接收方總是有足夠大的緩存空間。
發送方維持一個擁塞窗口的狀態變數,其大小取決於擁塞程度,並且動態變化。發送方讓自己的發送窗口小於擁塞窗口(如果考慮接收方的接收能力的話,發送窗口可能小於擁塞窗口)。發送方控制擁塞窗口的原則是:只要網路沒有擁塞,擁塞窗口就再增大一點,以便把更多的分組發送出去,只要出現擁塞,就減小擁塞窗口,以減少注入到網路的分組數。
下面會從「慢開始演算法」講起來討論擁塞窗口的大小如何變化的。
慢開始的演算法思路是:當主機開始發送數據時,由於並不清楚網路的負荷情況,所以如果立即把大量數據位元組注入到網路中,就有可能引起網路擁塞。因此會採用由小逐漸增大發送窗口。即在通常開始發送報文時,先將擁塞窗口cwnd的值設為一個最大報文段MSS的數值,而在每收到一個新的報文段確認後,把擁塞窗口增加至多一個MSS的數值。
如上圖所示,開始時cwnd=1,發送方發送一個M1,接收方收到M1發送確認,發送方收到一個確認後將cwnd加1,此時cwnd=2,因此發送方發送M2和M3兩個報文段,接收方收到後返回兩個確認,因此cwnd增加兩次,此時cwnd=4,接著發送方發送M4~M7四個報文段。依次類推。因此使用慢開始演算法後,每經過一個傳輸輪次,擁塞窗口就加倍。
但是為了防止擁塞窗口cwnd增加過大導致網路擁塞,需要設置一個慢開始門限ssthresh,慢開始門限用法如下:
當cwnd<ssthresh時,使用上述的慢開始演算法。
當cwnd>ssthresh時,停止使用慢開始演算法,使用擁塞避免演算法。
當cwnd=ssthresh時,既可以使用慢開始演算法,也可以使用擁塞避免演算法。
這里的擁塞避免演算法是指讓擁塞窗口緩慢的增大,即每經過一個往返時間RTT就把發送方的擁塞窗口cwnd加1,而不是像慢開始階段那樣加倍增長。
需要注意的是無論在慢開始階段還是擁塞避免階段,只要發送方判斷網路出現擁塞(根據是沒有按時收到確認),立即把慢開始門限ssthresh設為出現擁塞時的發送窗口的一半。然後發送窗口cwnd重新設為1,執行慢開始演算法。目的是迅速減少主機發送到網路分組的分組數。
快重傳演算法要求接收方每收到一個失序的報文段後就立即發送重復確認,如下圖接收了M1和M2後,又接收到一個M4,M4屬於失序報文,則發送對M2的重復確認。發送方只要連續收到三次確認重復就立即重傳對方未收到的報文段M3。
與快重傳演算法配合的還有快恢復演算法,過程如下:
(1)當發送方連續收到三個重復確認時,就把慢開始門限ssthresh減半,這是為了防止網路擁塞,接著並不執行慢開始演算法。
(2)由於上圖這種情況很可能不是因為網路擁塞引起的,因此這里不執行慢開始演算法(即不把擁塞窗口cwnd設為1,這樣速度太慢),而是把cwnd值設置為慢開始門限ssthresh減半後的數值,然後開始執行擁塞避免演算法。
TCP的運輸連接有是三個階段:連接建立、數據傳送和連接釋放。在TCP的連接過程中要解決以下三個問題:
(1)要使每一方能夠確知對方的存在。
(2)要允許雙方協商一些參數(如最大窗口值、是否使用窗口擴大選項和時間戳選項以及服務質量)。
(3)能夠對運輸實體資源進行分配。
TCP建立連接的過程叫做握手,握手需要在客戶和伺服器之間交換3個TCP報文段。如圖是三報文握手建立的連接過程:
A最後還要發送一次確認的原因是為了防止已經失效的連接請求報文段突然又傳送到了B,因而產生錯誤。試想一種情況:如果只有第一次和第二次握手,第二次B向A發送的確認丟失了,此時B進入了連接建立狀態,A沒有收到確認,過一段時間後會再次向B發送連接請求,B收到後又會再次建立連接,白白浪費B的資源。
A在TIME-WAIT狀態等待2MSL(MSL,最長報文段壽命),主要是因為以下兩點考慮:首先是為了保證A發送的最後一個ACK報文段能夠到達B,因為這個ACK報文段可能丟失,此時B會重傳連接釋放報文,如果A已經關閉,則無法收到這個報文。其次,當A在發送完最後一個ACK報文段後,再經過時間2MSL,就可以使本連接持續時間內產生的所有報文段都從網路中消失。這樣,下一個新連接中不會出現這種舊的連接請求報文段。
在圖中每一個方框即TCP可能具有的狀態。每個方框中的大寫英文字元串時TCP標准所使用的的TCP連接狀態名。狀態之間的箭頭表示可能發生的狀態變遷。箭頭旁邊的字表明引起這種變遷的原因,或表明發生狀態變遷後又出現什麼動作,在圖中粗實線箭頭表示對客戶進程的正常變遷,粗虛線箭頭表示對伺服器進程的正常變遷,細線箭頭表示異常變遷。
⑸ 計算機網路——5.運輸層
1.網路層和運輸層的區別
2.運輸層的作用
3.基於埠的分用和復用功能
3.兩種不同的運輸協議
TCP和UDP:
解決這個問題的方法就是 在運輸層使用協議埠號 。
1.軟體埠和硬體埠:
硬體埠是 不同的硬體設備進行交互 的介面,而軟體埠是應用層的各種協議進程與運輸實體進行層間交互的 一種地址 。
2.TCP/IP運輸層埠
3.兩大類埠
常用的熟知埠 :
UDP只在IP數據報服務至上增加了很少一點功能: 復用和分用 , 差錯檢測(對數據部分) 。
1.UDP的主要特點
計算UDP檢驗和 :
TCP面向流的概念:
"停止等待"就是 每發送完一個分組就立即停止發送 , 等待對方確認 之後再發送下一個分組 (全雙工通信的雙方既是發送方又是接收方) 。
1.無差錯情況
2.出現差錯
3.確認丟失和確認遲到
在上面說到的接收方B如果收到發送方A發送的分組之後會發送回一個確認。那麼這個確認在發送的過程中也會出現錯誤情況,例如 確認丟失 和 確認遲到 。
自動重傳請求ARQ:
4.信道利用率
停止等待協議的優點是 簡單 ,缺點是 信道利用率太低 。
5.流水線傳輸
發送緩存:
接收緩存:
重傳時間的選擇時TCP最復雜的問題之一,這個時間一般比往返傳播時延稍長一點,並且 往返傳播時延很難確認 ,也就是 往返時延的方差 很大。另外,由於發送方對接收方發來的確認無法分別出到底是第一次發送的的確認還是重傳後的確認,因此往返時延變得很難確定與計算。
當發送方發送數據1,2,4,5,而3在途中丟失的情況下,接收方無法給出數據3的確認,但是數據4,5的確認已經被發送方給接收了。因此在發送方會找不到數據3以數據3後面的數據,會選擇從3開始往後全部重傳,怎麼避免這樣的問題,使得只重傳第3個數據。方法就是: 選擇確認 。
之前說過 發送方發送數據的速度取決於接收方能夠接收的速度 。一旦當發送方的發送速度過快時,接收方就會來不及接收,那麼就可能造成 數據的丟失 ,這個 傳輸就不可靠 了。流量控制就是接收方告訴發送方,你發送的數據太快了我來不及接收。這個時候就要用到 滑動窗口 。
檢測網路的擁塞的指標:
1.概述
TCP 採用 基於窗口 的方法進行 擁塞控制 。TCP發送方維持一個 擁塞窗口CWND (Congestion Window)。
2.控制擁塞窗口的原則
控制擁塞窗口的 原則 就是:只要網路 沒有出現擁塞 ,擁塞窗口就可以增大一點,以便把更多的分組發送出去,這樣就可以提高網路的利用率。但只要 網路出現擁塞 或 有可能出現擁塞 ,就必須把擁塞窗口減小一些,以減少注入到網路中的分組數,以便緩解網路出現的擁塞。
3.擁塞的判斷
4.TCP擁塞控制演算法
慢開始 (slow-start)
擁塞避免 (congestion avoidance)
⑹ 計算機網路技術:TCP/IP體系結構將網路分為哪幾層TCP/IP體系結構與OSI模型的對應關系是
計算機網路技術:TCP/IP體系結構將網路分為應用層,表示層,會話層,傳輸層,網路層,數據鏈路層,物理層。
TCP/IP體系結構與OSI模型的對應關系是:osi的上三層對應tcp的應用層,傳輸層與網路層是一一對應的。
應用層、表示層、會話層三個層次提供的服務相差不是很大,所以在TCP/IP協議中,它們被合並為應用層一個層次。由於運輸層和網路層在網路協議中的地位十分重要,所以在TCP/IP協議中它們被作為獨立的兩個層次。
(6)計算機網路運輸層和傳輸層一樣嗎擴展閱讀:
對不同種類的應用程序它們會根據自己的需要來使用應用層的不同協議,郵件傳輸應用使用了SMTP協議、萬維網應用使用了HTTP協議、遠程登錄服務應用使用了有TELNET協議。
在TCP/IP協議中,網路介面層位於第四層。由於網路介面層兼並了物理層和數據鏈路層所以,網路介面層既是傳輸數據的物理媒介,也可以為網路層提供一條准確無誤的線路。
⑺ 網路的七層各自的作用是什麼要簡單的解釋,有例子最好
申請一下,來自COPY
OSI七層模型介紹
OSI是一個開放性的通行系統互連參考模型,他是一個定義的非常好的協議規范。OSI模型有7層結構,每層都可以有幾個子層。下面我簡單的介紹一下這7層及其功能。
OSI的7層從上到下分別是
7 應用層
6 表示層
5 會話層
4 傳輸層
3 網路層
2 數據鏈路層
1 物理層
其中高層,既7、6、5、4層定義了應用程序的功能,下面3層,既3、2、1層主要面向通過網路的端到端的數據流。下面我給大家介紹一下這7層的功能:
(1)應用層:與其他計算機進行通訊的一個應用,它是對應應用程序的通信服務的。例如,一個沒有通信功能的字處理程序就不能執行通信的代碼,從事字處理工作的程序員也不關心OSI的第7層。但是,如果添加了一個傳輸文件的選項,那麼字處理器的程序員就需要實現OSI的第7層。示例:telnet, HTTP,FTP,WWW,NFS,SMTP等。
(2)表示層:這一層的主要功能是定義數據格式及加密。例如,FTP允許你選擇以二進制或ASII格式傳輸。如果選擇二進制,那麼發送方和接收方不改變文件的內容。如果選擇ASII格式,發送方將把文本從發送方的字元集轉換成標準的ASII後發送數據。在接收方將標準的ASII轉換成接收方計算機的字元集。示例:加密,ASII等。
(3)會話層:他定義了如何開始、控制和結束一個會話,包括對多個雙向小時的控制和管理,以便在只完成連續消息的一部分時可以通知應用,從而使表示層看到的數據是連續的,在某些情況下,如果表示層收到了所有的數據,則用數據代表表示層。示例:RPC,SQL等。
(4)傳輸層:這層的功能包括是否選擇差錯恢復協議還是無差錯恢復協議,及在同一主機上對不同應用的數據流的輸入進行復用,還包括對收到的順序不對的數據包的重新排序功能。示例:TCP,UDP,SPX。
(5)網路層:這層對端到端的包傳輸進行定義,他定義了能夠標識所有結點的邏輯地址,還定義了路由實現的方式和學習的方式。為了適應最大傳輸單元長度小於包長度的傳輸介質,網路層還定義了如何將一個包分解成更小的包的分段方法。示例:IP,IPX等。
(6)數據鏈路層:他定義了在單個鏈路上如何傳輸數據。這些協議與被討論的歌種介質有關。示例:ATM,FDDI等。
(7)物理層:OSI的物理層規范是有關傳輸介質的特性標准,這些規范通常也參考了其他組織制定的標准。連接頭、針、針的使用、電流、電流、編碼及光調制等都屬於各種物理層規范中的內容。物理層常用多個規范完成對所有細節的定義。示例:Rj45,802.3等。
OSI分層的優點:
(1)人們可以很容易的討論和學習協議的規范細節。
(2)層間的標准介面方便了工程模塊化。
(3)創建了一個更好的互連環境。
(4)降低了復雜度,使程序更容易修改,產品開發的速度更快。
(5)每層利用緊鄰的下層服務,更容易記住個層的功能。
大多數的計算機網路都採用層次式結構,即將一個計算機網路分為若干層次,處在高層次的系統僅是利用較低層次的系統提供的介面和功能,不需了解低層實現該功能所採用的演算法和協議;較低層次也僅是使用從高層系統傳送來的參數,這就是層次間的無關性。因為有了這種無關性,層次間的每個模塊可以用一個新的模塊取代,只要新的模塊與舊的模塊具有相同的功能和介面,即使它們使用的演算法和協議都不一樣。
網路中的計算機與終端間要想正確的傳送信息和數據,必須在數據傳輸的順序、數據的格式及內容等方面有一個約定或規則,這種約定或規則稱做協議。網路協議主要有三個組成部分:
1、語義:
是對協議元素的含義進行解釋,不同類型的協議元素所規定的語義是不同的。例如需要發出何種控制信息、完成何種動作及得到的響應等。
2、語法:
將若干個協議元素和數據組合在一起用來表達一個完整的內容所應遵循的格式,也就是對信息的數據結構做一種規定。例如用戶數據與控制信息的結構與格式等。
3、時序:
對事件實現順序的詳細說明。例如在雙方進行通信時,發送點發出一個數據報文,如果目標點正確收到,則回答源點接收正確;若接收到錯誤的信息,則要求源點重發一次。
70年代以來,國外一些主要計算機生產廠家先後推出了各自的網路體系結構,但它們都屬於專用的。
為使不同計算機廠家的計算機能夠互相通信,以便在更大的范圍內建立計算機網路,有必要建立一個國際范圍的網路體系結構標准。
國際標准化組織ISO 於1981年正式推薦了一個網路系統結構----七層參考模型,叫做開放系統互連模型(Open System Interconnection,OSI)。由於這個標准模型的建立,使得各種計算機網路向它靠攏, 大大推動了網路通信的發展。
OSI 參考模型將整個網路通信的功能劃分為七個層次,見圖1。它們由低到高分別是物理層(PH)、鏈路層(DL)、網路層(N)、傳輸層(T)、會議層(S)、表示層(P)、應用層(A)。每層完成一定的功能,每層都直接為其上層提供服務,並且所有層次都互相支持。第四層到第七層主要負責互操作性,而一層到三層則用於創造兩個網路設備間的物理連接.
1.物理層
物理層是OSI的第一層,它雖然處於最底層,卻是整個開放系統的基礎。物理層為設備之間的數據通信提供傳輸媒體及互連設備,為數據傳輸提供可靠的環境。
1.1媒體和互連設備
物理層的媒體包括架空明線、平衡電纜、光纖、無線信道等。通信用的互連設備指DTE和DCE間的互連設備。DTE既數據終端設備,又稱物理設備,如計算機、終端等都包括在內。而DCE則是數據通信設備或電路連接設備,如數據機等。數據傳輸通常是經過DTE——DCE,再經過DCE——DTE的路徑。互連設備指將DTE、DCE連接起來的裝置,如各種插頭、插座。LAN中的各種粗、細同軸電纜、T型接、插頭,接收器,發送器,中繼器等都屬物理層的媒體和連接器。
1.2物理層的主要功能
1.2.1為數據端設備提供傳送數據的通路,數據通路可以是一個物理媒體,也可以是多個物理媒體連接而成.一次完整的數據傳輸,包括激活物理連接,傳送數據,終止物理連接.所謂激活,就是不管有多少物理媒體參與,都要在通信的兩個數據終端設備間連接起來,形成一條通路.
1.2.2傳輸數據.物理層要形成適合數據傳輸需要的實體,為數據傳送服務.一是要保證數據能在其上正確通過,二是要提供足夠的帶寬(帶寬是指每秒鍾內能通過的比特(BIT)數),以減少信道上的擁塞.傳輸數據的方式能滿足點到點,一點到多點,串列或並行,半雙工或全雙工,同步或非同步傳輸的需要.
1.3物理層的一些重要標准
物理層的一些標准和協議早在OSI/TC97/C16 分技術委員會成立之前就已制定並在應用了,OSI也制定了一些標准並採用了一些已有的成果.下面將一些重要的標准列出,以便讀者查閱.ISO2110:稱為"數據通信----25芯DTE/DCE介面連接器和插針分配".它與EIA(美國電子工
業協會)的"RS-232-C"基本兼容。ISO2593:稱為"數據通信----34芯DTE/DCE----介面連接器和插針分配"。 ISO4092:稱為"數據通信----37芯DTE/DEC----介面連接器和插針分配".與EIARS-449兼容。CCITT V.24:稱為"數據終端設備(DTE)和數據電路終接設備之間的介面電路定義表".其功能與EIARS-232-C及RS-449兼容於100序列線上.
2.數據鏈路層
數據鏈路可以粗略地理解為數據通道。物理層要為終端設備間的數據通信提供傳輸媒體及其連接.媒體是長期的,連接是有生存期的.在連接生存期內,收發兩端可以進行不等的一次或多次數據通信.每次通信都要經過建立通信聯絡和拆除通信聯絡兩過程.這種建立起來的數據收發關系就叫作數據鏈路.而在物理媒體上傳輸的數據難免受到各種不可靠因素的影響而產生差錯,為了彌補物理層上的不足,為上層提供無差錯的數據傳輸,就要能對數據進行檢錯和糾錯.數據鏈路的建立,拆除,對數據的檢錯,糾錯是數據鏈路層的基本任務。
2.1鏈路層的主要功能
鏈路層是為網路層提供數據傳送服務的,這種服務要依靠本層具備的功能來實現。鏈路層應具備如下功能:
2.1.1鏈路連接的建立,拆除,分離。
2.1.2幀定界和幀同步。鏈路層的數據傳輸單元是幀,協議不同,幀的長短和界面也有差別,但無論如何必須對幀進行定界。
2.1.3順序控制,指對幀的收發順序的控制。
2.1.4差錯檢測和恢復。還有鏈路標識,流量控制等等.差錯檢測多用方陣碼校驗和循環碼校驗來檢測信道上數據的誤碼,而幀丟失等用序號檢測.各種錯誤的恢復則常靠反饋重發技術來完成。
2.2數據鏈路層的主要協議
數據鏈路層協議是為發對等實體間保持一致而制定的,也為了順利完成對網路層的服務。主要協議如下:
2.2.1ISO1745--1975:"數據通信系統的基本型控制規程".這是一種面向字元的標准,利用10個控制字元完成鏈路的建立,拆除及數據交換.對幀的收發情況及差錯恢復也是靠這些字元來完成.ISO1155, ISO1177, ISO2626, ISO2629等標準的配合使用可形成多種鏈路控制和數據傳輸方式.
2.2.2ISO3309--1984:稱為"HDLC 幀結構".ISO4335--1984:稱為"HDLC 規程要素 ".ISO7809--1984:稱為"HDLC 規程類型匯編".這3個標准都是為面向比特的數據傳輸控制而制定的.有人習慣上把這3個標准組合稱為高級鏈路控制規程.
2.2.3ISO7776:稱為"DTE數據鏈路層規程".與CCITT X.25LAB"平衡型鏈路訪問規程"相兼容.
2.3鏈路層產品
獨立的鏈路產品中最常見的當屬網卡,網橋也是鏈路產品。MODEM的某些功能有人認為屬於鏈路層,對些還有爭議.數據鏈路層將本質上不可靠的傳輸媒體變成可靠的傳輸通路提供給網路層。在IEEE802.3情況下,數據鏈路層分成了兩個子層,一個是邏輯鏈路控制,另一個是媒體訪問控制。下圖所示為 IEEE802.3LAN體系結構。
AUI=連接單元介面 PMA=物理媒體連接
MAU=媒體連接單元 PLS=物理信令
MDI=媒體相關介面
3.網路層
網路層的產生也是網路發展的結果.在聯機系統和線路交換的環境中,網路層的功能沒有太大意義.當數據終端增多時.它們之間有中繼設備相連.此時會出現一台終端要求不只是與唯一的一台而是能和多台終端通信的情況,這就是產生了把任意兩台數據終端設備的數據鏈接起來的問題,也就是路由或者叫尋徑.另外,當一條物理信道建立之後,被一對用戶使用,往往有許多空閑時間被浪費掉.人們自然會希望讓多對用戶共用一條鏈路,為解決這一問題就出現了邏輯信道技術和虛擬電路技術.
3.1網路層主要功能
網路層為建立網路連接和為上層提供服務,應具備以下主要功能:
3.1.1路由選擇和中繼.
3.1.2激活,終止網路連接.
3.1.3在一條數據鏈路上復用多條網路連接,多採取分時復用技術 .
3.1.4差錯檢測與恢復.
3.1.5排序,流量控制.
3.1.6服務選擇.
3.1.7網路管理.
3.2網路層標准簡介
網路層的一些主要標准如下:
3.2.1 ISO.DIS8208:稱為"DTE用的X.25分組級協議"
3.2.2 ISO.DIS8348:稱為"CO 網路服務定義"(面向連接)
3.2.3 ISO.DIS8349:稱為"CL 網路服務定義"(面向無連接)
3.2.4 ISO.DIS8473:稱為"CL 網路協議"
3.2.5 ISO.DIS8348:稱為"網路層定址"
3.2.6 除上述標准外,還有許多標准。這些標准都只是解決網路層的部分功能,所以往往需要在網路層中同時使用幾個標准才能完成整個網路層的功能.由於面對的網路不同,網路層將會採用不同的標准組合.
在具有開放特性的網路中的數據終端設備,都要配置網路層的功能.現在市場上銷售的網路硬設備主要有網關和路由器.
4.傳輸層
傳輸層是兩台計算機經過網路進行數據通信時,第一個端到端的層次,具有緩沖作用。當網路層服務質量不能滿足要求時,它將服務加以提高,以滿足高層的要求;當網路層服務質量較好時,它只用很少的工作。傳輸層還可進行復用,即在一個網路連接上創建多個邏輯連接。傳輸層也稱為運輸層.傳輸層只存在於端開放系統中,是介於低3層通信子網系統和高3層之間的一層,但是很重要的一層.因為它是源端到目的端對數據傳送進行控制從低到高的最後一層.
有一個既存事實,即世界上各種通信子網在性能上存在著很大差異.例如電話交換網,分組交換網,公用數據交換網,區域網等通信子網都可互連,但它們提供的吞吐量,傳輸速率,數據延遲通信費用各不相同.對於會話層來說,卻要求有一性能恆定的界面.傳輸層就承擔了這一功能.它採用分流/合流,復用/介復用技術來調節上述通信子網的差異,使會話層感受不到.
此外傳輸層還要具備差錯恢復,流量控制等功能,以此對會話層屏蔽通信子網在這些方面的細節與差異.傳輸層面對的數據對象已不是網路地址和主機地址,而是和會話層的界面埠.上述功能的最終目的是為會話提供可靠的,無誤的數據傳輸.傳輸層的服務一般要經歷傳輸連接建立階段,數據傳送階段,傳輸連接釋放階段3個階段才算完成一個完整的服務過程.而在數據傳送階段又分為一般數據傳送和加速數據傳送兩種。傳輸層服務分成5種類型.基本可以滿足對傳送質量,傳送速度,傳送費用的各種不同需要.傳輸層的協議標准有以下幾種:
4.1 ISO8072:稱為"面向連接的傳輸服務定義"
4.2 ISO8072:稱為"面向連接的傳輸協議規范"
5.會話層
會話層提供的服務可使應用建立和維持會話,並能使會話獲得同步。會話層使用校驗點可使通信會話在通信失效時從校驗點繼續恢復通信。這種能力對於傳送大的文件極為重要。會話層,表示層,應用層構成開放系統的高3層,面對應用進程提供分布處理,對話管理,信息表示,恢復最後的差錯等.
會話層同樣要擔負應用進程服務要求,而運輸層不能完成的那部分工作,給運輸層功能差距以彌補.主要的功能是對話管理,數據流同步和重新同步。要完成這些功能,需要由大量的服務單元功能組合,已經制定的功能單元已有幾十種.現將會話層主要功能介紹如下.
5.1為會話實體間建立連接。為給兩個對等會話服務用戶建立一個會話連接,應該做如下幾項工作:
5.1.1將會話地址映射為運輸地址
5.1.2選擇需要的運輸服務質量參數(QOS)
5.1.3對會話參數進行協商
5.1.3識別各個會話連接
5.1.4傳送有限的透明用戶數據
5.2數據傳輸階段
這個階段是在兩個會話用戶之間實現有組織的,同步的數據傳輸.用戶數據單元為SSDU,而協議數據單元為SPDU.會話用戶之間的數據傳送過程是將SSDU轉變成SPDU進行的.
5.3連接釋放
連接釋放是通過"有序釋放","廢棄","有限量透明用戶數據傳送"等功能單元來釋放會話連接的.會話層標准為了使會話連接建立階段能進行功能協商,也為了便於其它國際標准參考和引用,定義了12種功能單元.各個系統可根據自身情況和需要,以核心功能服務單元為基礎,選配其他功能單元組成合理的會話服務子集.會話層的主要標准有"DIS8236:會話服務定義"和"DIS8237:會話協議規范".
6.表示層
表示層的作用之一是為異種機通信提供一種公共語言,以便能進行互操作。這種類型的服務之所以需要,是因為不同的計算機體系結構使用的數據表示法不同。例如,IBM主機使用EBCDIC編碼,而大部分PC機使用的是ASCII碼。在這種情況下,便需要會話層來完成這種轉換。
通過前面的介紹,我們可以看出,會話層以下5層完成了端到端的數據傳送,並且是可靠,無差錯的傳送.但是數據傳送只是手段而不是目的,最終是要實現對數據的使用.由於各種系統對數據的定義並不完全相同,最易明白的例子是鍵盤,其上的某些鍵的含義在許多系統中都有差異.這自然給利用其它系統的數據造成了障礙.表示層和應用層就擔負了消除這種障礙的任務.
對於用戶數據來說,可以從兩個側面來分析,一個是數據含義被稱為語義,另一個是數據的表示形式,稱做語法.像文字,圖形,聲音,文種,壓縮,加密等都屬於語法范疇.表示層設計了3類15種功能單位,其中上下文管理功能單位就是溝通用戶間的數據編碼規則,以便雙方有一致的數據形式,能夠互相認識. ISO表示層為服務,協議,文本通信符制定了DP8822,DP8823,DIS6937/2等一系列標准.
7.應用層
應用層向應用程序提供服務,這些服務按其向應用程序提供的特性分成組,並稱為服務元素。有些可為多種應用程序共同使用,有些則為較少的一類應用程序使用。應用層是開放系統的最高層,是直接為應用進程提供服務的。其作用是在實現多個系統應用進程相互通信的同時,完成一系列業務處理所需的服務.其服務元素分為兩類:公共應用服務元素CASE和特定應用服務元素SASE.CASE提供最基本的服務,它成為應用層中任何用戶和任何服務元素的用戶,主要為應用進程通信,分布系統實現提供基本的控制機制.特定服務SASE則要滿足一些特定服務,如文卷傳送,訪問管理,作業傳送,銀行事務,訂單輸入等.
這些將涉及到虛擬終端,作業傳送與操作,文卷傳送及訪問管理,遠程資料庫訪問,圖形核心系統,開放系統互連管理等等.應用層的標准有DP8649"公共應用服務元素",DP8650"公共應用服務元素用協議",文件傳送,訪問和管理服務及協議.
討論:OSI七層模型是一個理論模型,實際應用則千變萬化,因此更多把它作為分析、評判各種網路技術的依據;對大多數應用來說,只將它的協議族(即協議堆棧)與七層模型作大致的對應,看看實際用到的特定協議是屬於七層中某個子層,還是包括了上下多層的功能。
這樣分層的好處有:
1.使人們容易探討和理解協議的許多細節。
2.在各層間標准化介面,允許不同的產品只提供各層功能的一部分,(如路由器在一到三層),或者只提供協議功能的一部分。(如Win95中的Microsoft TCP/IP)
3. 創建更好集成的環境。
4. 減少復雜性,允許更容易編程改變或快速評估。
5. 用各層的headers和trailers排錯。
6.較低的層為較高的層提供服務。
7. 把復雜的網路劃分成為更容易管理的層。