計算機網路通常由三個部分組成,它們是資源子網、通信子網和通信協議。
所謂通信子網就是計算機網路中負責數據通信的部分;資源子網是計算機網路中面向用戶的部分,負責全網路面向應用的數據處理工作;而通信雙方必須共同遵守的規則和約定就稱為通信協議,它的存在與否是計算機網路與一般計算機互連系統的根本區別。
(1)計算機網路中傳輸層功能擴展閱讀:
一般地說,將分散的多台計算機、終端和外部設備用通信線路互聯起來,彼此間實現互相通信,並且計算機的硬體、軟體和數據資源大家都可以共同使用,實現資源共享的整個系統就叫做計算機網路。
連入網上的每台計算機本身都是一台完整獨立的設備。它自己可以獨立工作。例如 們可以對它進行啟動、運行和停機等操作。 們還可以通過網路去使用網路上的另外一台計算機。
計算機之間可以用雙絞線、電話線、同軸電纜和光纖等有線通信,也可以使用微波、衛星等無線媒體把它們連接起來。
參考資料:計算機網路系統_網路
② 簡述計算機網路的組成,以及各個組成部分的作用
計算機網路由七層組成:
1、物理層:傳遞信息需要利用一些物理傳輸媒體,如雙絞線、同軸電纜、光纖等。物理層的任務就是為上層提供一個物理的連接,以及該物理連接表現出來的機械、電氣、功能和過程特性,實現透明的比特流傳輸。
2、數據鏈路層:數據鏈路層負責在2個相鄰的結點之間的鏈路上實現無差錯的數據幀傳輸。在接收方接收到數據出錯時要通知發送方重發,直到這一幀無差錯地到達接收結點,數據鏈路層就是把一條有可能出錯的實際鏈路變成讓網路層看起來像不會出錯的數據鏈路。
3、網路層:網路中通信的2個計算機之間可能要經過許多結點和鏈路,還可能經過幾個通信子網。網路層數據傳輸的單位是分組。網路層的主要任務是為要傳輸的分組選擇一條合適的路徑,使發送分組能夠正確無誤地按照給定的目的地址找到目的主機,交付給目的主機的傳輸層。
4、傳輸層:傳輸層的主要任務是通過通信子網的特性,最佳地利用網路資源,並以可靠與經濟的方式為2個端系統的會話層之間建立一條連接通道,以透明地傳輸報文。傳輸層向上一層提供一個可靠的端到端的服務,使會話層不知道傳輸層以下的數據通信的細節。
5、會話層:在會話層以及以上各層中,數據的傳輸都以報文為單位,會話層不參與具體的傳輸,它提供包括訪問驗證和會話管理在內的建立以及維護應用之間的通信機制。如伺服器驗證用戶登錄便是由會話層完成的。
6、表示層:這一層主要解決用戶信息的語法表示問題。它將要交換的數據從適合某一用戶的抽象語法,轉換為適合OSI內部表示使用的傳送語法。即提供格式化的表示和轉換數據服務。數據的壓縮和解壓縮、加密和解密等工作都由表示層負責。
7、應用層:這是OSI參考模型的最高層。應用層確定進程之間通信的性質以滿足用戶的需求,以及提供網路與用戶軟體之間的介面服務。
(2)計算機網路中傳輸層功能擴展閱讀:
傳輸層作為整個計算機網路的核心,是惟一負責總體數據傳輸和控制的一層。因為網路層不一定保證服務的可靠,而用戶也不能直接對通信子網加以控制,因此在網路層之上,加一層即傳輸層以改善傳輸質量。
傳輸層利用網路層提供的服務,並通過傳輸層地址提供給高層用戶傳輸數據的通信埠,使系統間高層資源的共享不必考慮數據通信方面和不可靠的數據傳輸方面的問題。
③ 計算機網路中,網路層的功能是什麼
計算機網路中,網路層的功能是包括定址和路由選擇、連接的建立、保持和終止等。它提供的服務使傳輸層不需要了解網路中的數據傳輸和交換技術。如果您想用盡量少的詞來記住網路層,那就是"路徑選擇、路由及邏輯定址"。網路層的目的是實現兩個端系統之間的數據透明傳送。
網路層中涉及眾多的協議,其中包括最重要的協議,也是TCP/IP的核心協議——IP協議。IP協議非常簡單,僅僅提供不可靠、無連接的傳送服務。IP協議的主要功能有:無連接數據報傳輸、數據報路由選擇和差錯控制。與IP協議配套使用實現其功能的還有地址解析協議ARP、逆地址解析協議RARP、網際網路報文協議ICMP、網際網路組管理協議IGMP。
(3)計算機網路中傳輸層功能擴展閱讀:
計算機網路體系結構的通信協議劃分為七層,自下而上依次為:物理層(Physics Layer)、數據鏈路層(Data Link Layer)、網路層(Network Layer)、傳輸層(Transport Layer)、會話層(Session Layer)、表示層(Presentation Layer)、應用層(Application Layer)。其中第四層完成數據傳送服務,上面三層面向用戶。
除了標準的OSI七層模型以外,常見的網路層次劃分還有TCP/IP四層協議以及TCP/IP五層協議。
大多數的計算機網路都採用層次式結構,即將一個計算機網路分為若干層次,處在高層次的系統僅是利用較低層次的系統提供的介面和功能,不需了解低層實現該功能所採用的演算法和協議;較低層次也僅是使用從高層系統傳送來的參數,這就是層次間的無關性。因為有了這種無關性,層次間的每個模塊可以用一個新的模塊取代,只要新的模塊與舊的模塊具有相同的功能和介面,即使它們使用的演算法和協議都不一樣。
④ 物理層,數據鏈路層,網路層,傳輸層的功能和作用。
物理層:對應於網路的基本硬體,這也是Internet物理構成,即我們可以看得見的硬體設備,如PC機、互連網伺服器、網路設備等,必須對這些硬體設備的電氣特性作一個規范,使這些設備都能夠互相連接並兼容使用。
·網路介面層:它定義了將數據組成正確幀的規程和在網路中傳輸幀的規程,幀是指一串數據,它是數據在網路中傳輸的單位。
·互聯網層:本層定義了互聯網中傳輸的"信息包"格式,以及從一個用戶通過一個或多個路由器到最終目標的"信息包"轉發機制。
·傳輸層:為兩個用戶進程之間建立、管理和拆除可靠而又有效的端到端連接。
·應用層:它定義了應用程序使用互聯網的規程。
⑤ 網路體系結構中為什麼要設置傳輸層
因為兩個主機進行通信實際上是兩個主機中的應用進程通信,一個主機中經常有多個應用進程同時分別與另外一個主機中的多個應用進程互相通信,網路層協議能夠將分組送達目的主機,但它無法交付給主機中的應用程序,網路體系結構中要設置傳輸層,為主機之間提供邏輯通信。
傳輸層是整個網路體系結構中的關鍵層次之一,主要負責向兩個主機中進程之間的通信提供服務。由於一個主機同時運行多個進程,因此運輸層具有復用和分用功能。傳輸層在終端用戶之間提供透明的數據傳輸,向上層提供可靠的數據傳輸服務。
埠概念
傳輸層的任務是根據通信子網的特性,最佳的利用網路資源,為兩個端系統的會話層之間,提供建立、維護和取消傳輸連接的功能,負責端到端的可靠數據傳輸。在這一層,信息傳送的協議數據單元稱為段或報文。
網路層只是根據網路地址將源結點發出的數據包傳送到目的結點,而傳輸層則負責將數據可靠地傳送到相應的埠。計算機網路中的資源子網是通信的發起者和接收者,其中的每個設備稱為端點。
以上內容參考網路-傳輸層
⑥ [計算機網路之六] 傳輸層
傳輸層向它上面的應用層提供通信服務,它屬於面向通信部分的最高層,同時也是用戶功能中的最底層。
從傳輸層的角度,通信的真正端點並不是主機而是主機中的進程。
傳輸層有 分用 和 復用 的功能。 「復用」 是指在發送方不同的應用進程都可以使用同一個運輸層協議傳送數據, 「分用」 是指接收方的運輸層在剝去報文的首部後能夠把這些數據正確交付目的應用進程。
網路層和運輸層有明顯的區別,網路層為主機之間提供邏輯通信,而運輸層為應用進程之間提供端到端的邏輯通信。
知名埠號 :0~1023
登記埠號 :1024~49151
客戶端短暫埠號 :49152~65535
① 無連接。 發送數據之前不需要建立連接,因此減少了開銷和發送數據之前的時延。
② 盡最大努力交付。 即不保證可靠交付,因此主機不需要維持復雜的連接狀態表。
③ 面向報文的。 對應用層交下來的報文,既不合並,也不拆分,而是保留這些報文的邊界,UDP 一次交付一個完整的報文。
用戶數據報 UDP 有兩個欄位:數據欄位和首部欄位。首部欄位很簡單,只有 8 個位元組,由四個欄位組成,每個欄位的長度都是兩個位元組。各欄位意義如下:
① 源埠 在需要對方回信時選用。不需要時可用全0。
② 目的埠 目的埠號。這在終點交付報文時必須使用。
③ 長度 用戶數據報的長度,最小值為 8 (僅有首部)。
④ 檢驗和 檢測用戶數據報在傳輸中是否有錯。有錯就丟棄。
用戶數據報首部檢驗和的計算和校驗都要計算出一個偽首部。
① 面向連接。
應用程序在使用 TCP 協議之前,必須先建立 TCP 連接;傳送數據完畢後,必須釋放已經建立的 TCP 連接。類似於打電話:通話前要先撥號建立連接,通話結束後要掛機釋放連接。
② 一對一。
TCP 連接只能是點對點的(一對一)。
③ 可靠交付。
通過 TCP 連接傳送的數據,無差錯、不丟失、不重復,並且按序到達。
④ 全雙工通信。
通信雙方的應用進程在任何時候都能發送和接收數據,TCP 連接的兩端都設有發送緩存和接收緩存,用來臨時存放雙向通信的數據。
⑤ 面向位元組流。
TCP 中的 「流」 指的是流入到進程或從進程流出的位元組序列。
「面向位元組流」 的含義:雖然應用程序和 TCP 的互動式一次一個數據塊(大小不等),但 TCP 把應用程序交下來的數據僅僅看成是一連串無結構的位元組流。TCP 並不知道所傳送的位元組流的含義。TCP 不保證接收方應用程序鎖收到的數據塊和發送方應用程序所發出的數據塊具有對應的大小關系。但接收方應用程序收到的位元組流必須和發送方應用程序發出的位元組流完全一樣,當然接收方的應用程序必須有能力識別收到的位元組流,把它還原成有意義的應用層數據。
TCP 連接是協議軟體提供的一種抽象,每一條 TCP 連接唯一地被通信兩端的兩個端點(即兩個套接字)所確定,即:
TCP 連接 ::= {socket1, socket2} = {(IP1: port1), (IP2: port2)}
IP1 和 IP2 分別是兩個端點主機的 IP 地址,port1 和 port2 分別是兩端端點主機中的埠號。
網路只能提供最大努力的服務,是不可靠的,因此 TCP 必須採用適當的措施才能使得兩個運輸層之間的通信變得可靠。當出現差錯時讓發送方重傳出現差錯的數據,同時在接收方來不及處理收到的數據時,及時告知發送方適當降低發送數據的速度,這樣就可以在不可靠的傳輸信道實現可靠傳輸。
ARQ(Auto Repeat-reQuest):自動重傳請求。
發送方每發送完一個分組就停止發送,等待接收方確認,在收到確認後再發送下一個分組。
A 是發送方,B 是接收方。
A 每發送一個分組後,等待 B 對該分組的確認後,再接著發送下一個分組。
【發送方】A 發送的分組在傳輸過程中出錯,可能是丟失了,也可能是分組受到干擾出錯了
【接收方】這時 B 直接丟棄分組,什麼也不做(也不通知 A 受到的分組有差錯)。
【解決方案】發送方在每發送完一個分組時設置一個 超時計數器 ,只要超過一段時間仍然沒有接收到確認,就認為剛才發送的分組丟失了,因而重傳前面發送過的分組,這叫 超時重傳 。反之在超時計時器到期之前收到了相應的確認,就撤銷該超時計時器。
第一,A 在發送完一個分組後, 必須暫時保留已發送的分組的副本 (在發生超時重傳時使用)。只有在收到相應的確認後才能清楚暫時保留的分組副本。
第二,分組和確認分組都必須進行 編號 。這樣才能明確是哪一個發送出去的分組受到了確認,而哪一個分組還沒有收到確認。
第三,超時計時器設置的 重傳時間應當比數據在分組傳輸的平均往返時間更長一些 。
【發送方】超時重傳時間內沒有收到確認報文,無法確認是發送出錯、丟失,還是接收方的確認丟失,超時計時器到期後就要重傳。
【接收方】丟棄收到的重復分組,不向上層交付;向發送方發送確認。
【發送方】收下遲到的確認,並且丟棄
發送方大部分時間都在等待確認,信道的利用率低
使用流水線的 ARQ 可以提高信道利用率
【發送方】維持一個發送窗口,位於發送窗口內的分組都可連續發送出去,而不需要等待對方的確認。
回退N幀協議 :如果發送方發送了多個分組,但中間的某個分組丟失了,這時接收方只能對丟失分組之前的分組發出確認,而發送方無法知道丟失分組及後面分組的接收情況,只好把丟失分組及後面的分組重傳一次,這叫 Go-back-N ,表示需要再退回來重傳已發送過的 N 個分組。
前面 20 個位元組固定,因此 TCP 首部最小長度是 20 位元組。
TCP 的滑動窗口以位元組為單位,窗口後沿的部分表示已發送且已收到通知,窗口裡的序號表示允許發送的序號,窗口前沿之前的數據暫時不允許發送,需要等待收到接收方的確認後前沿往前移才可發送。
描述一個發送窗口需要三個指針:P1、P2 和 P3,如圖所示:
小於 P1 的是已發送並已收到確認的部分,而大於 P3 的是不允許發送的部分。
P3 - P1 = A 的發送窗口
P2 - P1 = 已發送但尚未收到確認的位元組數
P3 - P2 = 允許發送但當前尚未發送的位元組數(又稱為 可用窗口 或 有效窗口 )
接收方 B 接收窗口大小為20,因為未收到 31 的數據,即使已收到後面的序號 32、33 的數據,返回的確認號仍然是 31。
現在接收方收到了 31、32、33,並返回確認號 33,接收窗口往前滑動 3 個序號,發送方接收到確認,發送窗口也向前滑動 3 個序號大小,現在 A 可以發送序號 51~53 的數據了。
當發送方將發送窗口內的數據都發送出去,但是接收方的確認可能由於網路擁塞滯留,這時發送方發送窗口已滿,可用窗口為 0,只能等待接收方的確認報文到達。
TCP 為了保證可靠傳輸,要求必須受到對已發送報文的確認,如果超過一定時間未受到確認報文,則重傳已發送的報文。這個時間就叫 超時重傳時間 ,很明顯超時重傳時間的大小設置應該更貼近網路的實際情況,如果網路狀況好,就設短一點,否則使網路的空閑時間增大,降低了傳輸效率;網路差就設長一點,否則會引起很多不必要的重傳,使網路負荷增大。
TCP 採用了一種自適應的演算法:
RTT(報文段的往返時間)、RTTs(加權平均往返時間),RTTs 的計算公式:
RTTd(RTT 的偏差的加權平均值)、RTO(RetransmissionTime-Out 超時重傳時間):
【場景】TCP 的接收方在接收對方發送過來的數據位元組流的序號不連續,形成一些不連續的位元組塊,如果簡單按照回退N幀協議處理,意味著要重傳第一個未收到的序號數據塊及之後的數據,如果能通知發送方已收到了哪些數據(選擇確認),就可以讓發送方只發送接收方未收到的數據。
流量控制就是讓發送方的發送速率不要太快,要讓接收方來得及接收。
當發送方收到接收方通知,將窗口縮小為 0 時,發送方將暫時不能發送數據了,必須等接收方通知更新接收窗口大小,但是這個通知又有可能丟失,導致發送方沒收到通知。
為了避免雙方互相等待死鎖,TCP 為每個鏈接設有一個 持續計時器 ,只要 TCP 連接的一方收到對方的零窗口通知,就啟動持續計時器。若持續計時器設置的時間到期,就發送一個零窗口 探測報文段 (僅攜帶 1 位元組的數據),而對方就在確認這個探測報文段時給出了現在的窗口值。如果窗口仍然是零,那麼受到這個報文段的一方就重新設置持續計時器;如果窗口不是零,那麼死鎖的僵局就可以打破了。
【優點】提高網路利用率
【缺點】可能會發生某種程度的延遲
【場景】接收數據的主機如果每次都立刻回復確認應答的話,可能會返回一個較小的窗口,因為接收方剛接收完數,緩沖區已滿。
【糊塗窗口綜合征問題】
TCP 接收方緩存已滿,而互動式的應用進程一次只從接收緩存中讀取 1 個位元組(這樣就使接收緩存空間僅騰出 1 個位元組),然後向發送方發送確認,並把窗口設置為 1 個位元組(但發送的數據報是 40 位元組長,TCP 首部 + IP 數據報首部)。接著,發送方又發來 1 個位元組的數據(注意發送方發送的 IP 數據報是 41 位元組長)。接收方發回確認,仍然將窗口設置為 1 個位元組。這樣進行下去,使網路的效率很低。
TCP 文件傳輸中,就採用了兩個數據段返回一次確認應答,並且等待一定時間後沒有其他數據包到達時也依然發送確認應答。
當對網路中某一資源的需求超過了該資源所能提供的可用部分,網路的性能就要變壞,這種情況就叫做 擁塞 。
慢開始(slow-start)、擁塞避免(congestion avoidance)、快重傳(fast retransmit)和快恢復(fast recovery)。
【演算法思路】
當主機開始發送數據時,由於並不清楚網路的負荷情況,所以如果立即把大量數據位元組注入網路,那麼就有可能引起網路發生擁塞。較好的方法是先探測一下,即 由小到大逐漸增大發送窗口 ,也就是說, 由小到大逐漸增大擁塞窗口數值 。
【處理過程】
慢開始門限值 ssthresh 決定了擁塞窗口達到多大時要執行什麼演算法。
① 當 cwnd < ssthresh 時,使用慢開始演算法;
② 當 cwnd > ssthresh 時,停止使用慢開始演算法而改用擁塞避免演算法;
③ 當 cwnd = ssthresh 時,既可使用慢開始演算法,也可使用擁塞避免演算法。
在擁塞窗口 cwnd 達到門限值之前,發送方每一輪次收到確認應答後,cwnd 就增大為原來的兩倍;達到門限值後,執行擁塞避免演算法。
PS. 慢開始只是表示初始發送數據少,不代表發送速率增長速度慢,實際上是指數級增長非常快。
【演算法思路】
讓擁塞窗口 cwnd 緩慢地增大,即每經過一個往返時間 RTT 就把發送方的擁塞窗口 cwnd 加 1,而不是像慢開始階段那樣加倍增長。擁塞避免階段有 「加法增大」 的特點,按線性規律緩慢增長,使網路比較不容易出現擁塞 。
【處理過程】
在執行擁塞避免演算法階段,當網路出現超時時,發送方判斷為網路擁塞,調整門限值為當前擁塞窗口的一半,即 ssthresh = cwnd / 2,同時擁塞窗口重置為 1,即 cwnd = 1,進入慢開始階段。
【演算法原理】
① 快重傳
【場景】有時,個別報文段會在網路中丟失,但實際上網路並未發生擁塞。如果發送方遲遲收不到確認,就會產生超時,就會誤認為網路發生了擁塞,導致發送方錯誤地啟動慢開始,把擁塞窗口 cwnd 又設置為 1,因而降低了傳輸效率。
【方案】接收方不要等待自己發送數據時才進行捎帶確認,而是要立即發送確認,即使收到了失序的報文段也要立即發出對已收到的報文段的重復確認,當發送方 一連收到 3 個重復確認 ,就知道接收方確實沒有收到某個報文段,因而應當 立即進行重傳 。
② 快恢復:
發送方知道只是丟失了個別的報文段,於是不啟動慢開始,而是執行快恢復演算法,調整發送方門限值 ssthresh = cwnd / 2,同時設置擁塞窗口 cwnd = ssthresh = 8,並開始執行擁塞避免演算法。
擁塞控制的流程如下:
擁塞窗口 cwnd,接收方窗口 rwnd, 發送方發送窗口的上限值 = Min[rwnd, cwnd] 。
① 當 rwnd < cwnd,接收方的接收能力限制發送方窗口大小;
② 當 cwnd < rwnd,網路的擁塞程度限制發送方窗口大小。
【問題背景】
路由器採取分組丟棄策略,即按照 先進先出(FIFO) 規則處理分組,當隊列已滿時,則丟棄後面到達的分組,這叫 尾部丟棄策略 。
丟失的分組會導致發送方出現超時重傳,發送方轉而執行慢開始演算法,不同分組屬於不同 TCP 連接,導致很多 TCP 同時進入慢開始狀態,這種現象稱為 全局同步 。
【解決方案】
主動隊列管理 AQM:不等到路由器的隊列長度已經達到最大值時才不得不丟棄後面到達的分組,而是在隊列長度達到某個警惕值時就主動丟棄到達的分組,這樣就提醒了發送方放慢發送的速率,因而有可能使網路擁塞的程度減輕,甚至不出現網路擁塞。
TCP 是面向連接的協議,運輸連接有三個階段: 連接建立、數據傳送、連接釋放 。
TCP 連接建立過程要解決的幾個問題:
① 使每一方能夠確知對方的存在;
② 允許雙方協商一些參數(如最大窗口值、是否使用窗口擴大選項和時間戳選項以及服務質量等);
③ 能夠對運輸實體資源(如緩存大小、連接表中的項目等)進行分配。
TCP 建立連接的過程叫做握手,握手需要在客戶和伺服器之間交換三個 TCP 報文段,即 三次握手 。
最初客戶端和服務端都處於 CLOSED(關閉) 狀態,A(Client)主動打開連接,B(Server)被動打開連接。
一開始,B 的 TCP 伺服器進程先創建 傳輸控制塊 TCB ,准備接受客戶進程的連接請求。然後伺服器進程就處於 LISTEN(收聽)狀態,等待客戶端的連接請求。如有,即作出響應。
第一次握手 :A 的 TCP 客戶進程也是首先創建傳輸控制塊 TCB,准備接受客戶進程的連接請求。然後在打算建立 TCP 連接時,向 B 發出連接請求報文段,這時首部中的同步位 SYN = 1,同時選擇一個初始序號 seq = x。TCP 規定,SYN 報文段(即 SYN = 1 的報文段)不能攜帶數據,但要 消耗掉一個序號 。這時,TCP 客戶進程進入 SYN-SENT(同步已發送) 狀態。
第二次握手 :B 收到連接請求報文段後,如同意建立連接,則向 A 發送確認。在確認報文段中應把 SYN 位和 ACK 位都置 1,確認號是 ack = x + 1,同時也為自己選擇一個初始序號 seq = y。請注意,這個報文段也不能攜帶數據,但同樣 要消耗掉一個序號 。這時 TCP 伺服器進程進入 SYN-RCVD(同步收到) 狀態。
第三次握手 :TCP 客戶進程收到 B 的確認後,還要向 B 給出確認。確認報文段的 ACK 置 1,確認號 ack = y + 1,而自己的序號 seq = x + 1。TCP 的標准規定,ACK 報文段可以攜帶數據。但 如果不攜帶數據則不消耗序號 ,在這種情況下,下一個數據報文段的序號仍是 seq = x + 1。這時,TCP 連接已經建立,A 進入 ESTABLISHED(已建立連接) 狀態。當 B 收到 A 的確認後,也進入 ESTABLISHED(已建立連接)狀態。
數據傳輸結束後,通信的方法都可釋放連接。現在 A 和 B 都處於 ESTABLISHED 狀態。
第一次揮手 :A 的應用進程先向其 TCP 發出連接釋放報文段,並停止再發送數據,主動關閉 TCP 連接。A 把連接釋放報文段首部的終止控制位 FIN 置 1,其序號 seq = u,它等於前面已傳送過的數據的最後一個位元組的序號加 1。這時 A 進入 FIN-WAIT-1(終止等待 1)狀態,等待 B 的確認。請注意,TCP 規定,FIN 報文段即使不攜帶數據,它也消耗掉一個序號。
第二次揮手 :B 收到連接釋放報文後即發出確認,確認號是 ack = u + 1,而這個報文段自己的序號是 v,等於 B 前面已傳送過的最後一個位元組的序號加 1。然後 B 就進入 CLOSE-WAIT(關閉等待)狀態。TCP 伺服器進程這時應通知高層應用程序,因而從 A 到 B 這個方向的連接就釋放了,這時的 TCP 連接處於半關閉(half-close)狀態,即 A 已經沒有數據要發送了,但 B 若發送數,A 仍要接收。也就是說,從 B 到 A 這個方向的連接並未關閉,這個狀態可能會持續一段時間。A 收到來自 B 的確認後,就進入 FIN-WAIT-2(終止等待 2)狀態,等待 B 發出的連接釋放報文段。
第三次揮手 :若 B 已經沒有要向 A 發送的數據,其應用進程就通知 TCP 釋放連接。這時 B 發出的連接釋放報文段必須使 FIN = 1。現假定 B 的序號為 w(在半關閉狀態 B 可能又發送了一些數據)。B 還必須重復上次已發送過的確認號 ack = u + 1。這時 B 就進入 LAST-ACK(最後確認)狀態,等待 A 的確認。
第四次揮手 :A 在收到 B 的連接釋放報文段後,必須對此發出確認。在確認報文段中把 ACK 置 1,確認號 ack = w + 1,而自己的序號是 seq = u + 1(根據 TCP 標准,前面發送過的 FIN 報文段要消耗一個序號)。然後進入 TIME-WAIT(時間等待)狀態。請注意,現在 TCP 連接還沒有釋放掉。必須經過時間等待計時器(TIME-WAIT timer)設置的時間 2MSL 後,A 才進入到 CLOSED 狀態,然後撤銷傳輸控制塊,結束這次 TCP 連接。當然如果 B 一收到 A 的確認就進入 CLOSED 狀態,然後撤銷傳輸控制塊。所以在釋放連接時,B 結束 TCP 連接的時間要早於 A。
⑦ 傳輸層在網路各層的作用是什麼謝謝了.!
傳輸層
與數據鏈路層和網路層一樣,傳輸層的功能是保證數據可靠地從發送結點發送到目標結
點.例如,傳輸層確保數據以相同的順序發送和接收,並且傳輸後接收結點會給出響應.當
在網路中採用虛擬電路時,傳輸層還要負責跟蹤指定給每一電路的唯一標識值.這一I D稱為
埠,連接標識或套接字,是由會話層指定的.傳輸層還要確定包錯誤校驗的級別,最高的
級別可以確保包在可以接受的時間內無差錯地從結點發送到結點.
用於在傳輸層間通信的協議採用了多種可靠性措施.0類是最簡單的協議,不執行錯誤校
驗或流控制,依靠網路層來執行這些功能.1類協議監控包傳輸錯誤,如果檢查到了錯誤,就
通報發送結點的傳輸層讓它重新發送包.2類協議監控傳輸層和會話層間的傳輸錯誤並提供流
控制.流控制確保設備不會以高於網路或接收設備接收信息的速度來發送信息.3類協議除提
供1類和2類協議的功能外,還可以在某些環境下恢復丟失的包.最後,4類協議除執行3類協
議的功能外,還具有擴展的錯誤監控和恢復能力.
傳輸層的另一種功能就是當網路使用不同的要求包大小各異的協議時,將消息分段為較
小的單元.發送網路上由傳輸層分割的數據單元被接收端的傳輸層重新以正確的順序組合,
以便網路層解釋.
⑧ 計算機網路傳輸層
端到端的連接
網路層:提供主機之間的邏輯通信
傳輸層:提供應用進程之間的邏輯通信
位於網路層之上、依賴網路層服務、對網路層服務進行可能的增強
接收端:多路分用
相同目的地址目的埠號的UDP會被導向同一個socket
每個srcIp srcPort DestIp DestPort 導向自己獨有的socket(創建多個socket)
(伺服器也可以讓一個進程創建多個線程與tcp連接綁定)
發送端:多路復用
什麼是可靠? 不錯、不亂、不丟
可靠數據傳輸協議
GBN
1.發送方 分組頭部包含k-bit序列號
窗口尺寸為N,最多允許N個分組未確認
序列號 :表示本報文段所發送數據的第一個位元組的編號。而不是報文段的編號(這里防止被攻擊混入其他的段難以檢測的問題)。
建立TCP連接時,雙方隨即選擇序列號
ACKs 表示接收方期望收到發送方下一個報文段的第一個位元組數據的編號。
累計確認:該序列號之前所有的位元組均已被正確接收到(GBN)
TCP在IP層提供的不可靠服務基礎上實現可靠數據傳輸服務
流水線機制
累積確認
TCP使用單一重傳定時器
觸發重傳的事件
超時
收到重復ACK
漸進式
暫不考慮重復ACK
暫不考慮流量控制
暫不考慮擁塞控制
1.點對點 一個sender 一個 reciever
2.可靠的、按序的位元組流
3.流水線機制
案例:
何時應該指數性增長切換為線性增長(擁塞避免)?
當CongWin達到Loss事件前值的1/2時.
實現方法:利用一個變數 Threshold, Loss事件發生時, Threshold被設為Loss事件前CongWin值的1/2。
Loss事件處理辦法
3個重復ACKs:CongWin切到一半然後線性增長
Timeout事件:CongWin直接設為1個MSS,然後指數增長,達到threshold後, 再線性增長(擁塞更嚴重了)
TCP擁塞控制演算法
4.接收方/發送方緩存
5.全雙工:同一連接中能傳輸雙數據流
6.面向連接(連接管理)
TCP連接包括:兩台主機上的緩存、連接狀態變數、socket等
客戶端初始化的序列號是隨機的
7.流量控制機制:發送方不會傳輸的太多、太快以至於淹沒接收方(buffer溢出)
8.復用/分用
1.基於「盡力而為」的網路層,沒有做(可靠性)
丟失
非按序到達
2.基於Internet IP協議
復用/分用
簡單的錯誤校驗
3.無連接
UDP發送方和接收方之間不需要握手
每個UDP段的處理獨立於其他段
UPD優點:
1.無需建立連接(減少延遲)-DNS
2.實現簡單,無需維護連接狀態
3.頭部開銷小(8byte)
4.沒有擁塞控制:應用可更好的控制發送時間和速率
常用於流媒體應用
1.容忍丟失
2.速率敏感
DNS/SNMP
在UDP上實現可靠數據傳輸
UDP校驗和:檢測UDP段在傳輸過程中是否發生錯誤
⑨ TCP/IP網路模型從上至下哪四層組成各層主要功能是什麼
1、組成:應用層、傳輸層、網路層、鏈路層
2、各層主要功能:
應用層:負責向用戶提供應用程序,比如HTTP、FTP、Telnet、DNS、SMTP等。
傳輸層:負責對報文進行分組和重組,並以TCP或UDP協議格式封裝報文。
網路層:負責路由以及把分組報文發送給目標網路或主機。
鏈路層:負責封裝和解封裝IP報文,發送和接受ARP/RARP報文等。
(9)計算機網路中傳輸層功能擴展閱讀
OSI是開放系統互連參考模型 (Open System Interconnect 簡稱OSI),是國際標准化組織(ISO)和國際電報電話咨詢委員會(CCITT)聯合制定的開放系統互連參考模型,為開放式互連信息系統提供了一種功能結構的框架。
它從低到高分別是:物理層、數據鏈路層、網路層、傳輸層、會話層、表示層和應用層。
而TCP/IP簡單來說就是OSI的簡化版,把OSI的七層簡化為了四層。TCP/IP 定義了電子設備如何連入網際網路,以及數據如何在它們之間傳輸的標准。
協議採用了4層的層級結構,每一層都呼叫它的下一層所提供的協議來完成自己的需求。
⑩ 計算機網路上邏輯上劃分幾個層次每個層次的功能是什麼
七層: 物理層 、數據鏈路層、網路層、傳輸層、會話層、表示層、應用層。
1、物理層功能 : O S I 模型的最低層或第一層,該層包括物理連網媒介,如電纜連線連接器。物理層的協議產生並檢測電壓以便發送和接收攜帶數據的信號;
2、數據鏈路層: O S I 模型的第二層,它控制網路層與物理層之間的通信。它的主要功能是如何在不可靠的物理線路上進行數據的可靠傳遞;
3、網路層: O S I 模型的第三層,其主要功能是將網路地址翻譯成對應的物理地址,並決定如何將數據從發送方路由到接收方;
4、傳輸層: O S I 模型中最重要的一層。傳輸協議同時進行流量控制或是基於接收方可接收數據的快慢程度規定適當的發送速率;
5、會話層: 負責在網路中的兩節點之間建立和維持通信。 會話層的功能包括:建立通信鏈接,保持會話過程通信鏈接的暢通,同步兩個節點之間的對 話,決定通信是否被中斷以及通信中斷時決定從何處重新發送;
6、表示層: 應用程序和網路之間的翻譯官,在表示層,數據將按照網路能理解的方案進行格式化;這種格式化也因所使用網路的類型不同而不同;
7、應用層: 負責對軟體提供介面以使程序能使用網路服務。術語「應用層」並不是指運行在網路上的某個特別應用程序 ,應用層提供的服務包括文件傳輸、文件管理以及電子郵件的信息處理。