計算機網路複習(第五章 運輸層)
5.運輸層
5.1運輸層協議概述
5.1.1程序之間的通訊
使用者功能中的最低層。
運輸層功能:複用和分用。
網路層為主機之間提供邏輯通訊,運輸層為應用程序之間提供端到端的邏輯通訊。
運輸層進行差錯檢測。
5.1.2運輸層的兩個主要協議
1.使用者資料報協議UDP
2.傳輸控制協議TCP
應用層主要使用TCP的協議:簡單郵件傳送協議SMTP,遠端終端協議TELNET,超文字傳送協議HTTP,檔案傳送協議FTP。
5.1.3運輸層的埠
協議埠號、埠。
軟體埠是應用層的各種協議程序與運輸實體進行層間互動的一種地址。
16位——65535個不同的埠號。
熟知埠號/系統埠號——0~1023
登記埠號——1024~49151
客戶端使用的埠號——49152~65535
5.2使用者資料協議報UDP
5.2.1UDP概述
主要特點:
1.UDP是無連線的
2.UDP使用盡最大努力交付
3.UDP是面向報文的
UDP保留應用層報文的邊界
4.UDP沒有擁塞控制
5.UDP支援一對一,一對多,多對多的互動通訊
6.UDP首部開銷小,8位元組
5.2.2UDP的首部格式
首部:源埠,目的埠,長度,檢驗和,都是兩位元組。
接收方接受的目的埠號不正確,ICMP傳送“ 埠不可達”差錯報文。
檢驗和:增加12位元組偽首部(4位元組源IP,4位元組目的IP,1位元組0,1位元組17,2位元組UDP長度)進行計算。把首部和資料部分一起都校驗。把全零放入檢驗和欄位,把UDP使用者資料報看成許多16位元組串接起來,最後可以填零來湊,但不傳送。二進位制反碼求和。
接收方連同偽首部一起反碼求和,結果全1表示正確。
5.3傳輸控制協議TCP概述
5.3.1TCP最主要的特點
1.TCP是面向連線的運輸層協議。
2.每個TCP兩個端點,點到點。
3.TCP提供可靠交付的服務。
4.TCP提供全雙工通訊。
5.面向位元組流。TCP把資料看成一連串的務結構的位元組流。
5.3.2TCP的連線
TCP把連線作為最基本的抽象。
TCP連線的端點叫做套接字(埠號拼接到IP)或者插口。
5.4可靠傳輸的工作原理
5.4.1停止等待協議
每傳送完一個分組就停止傳送,等待對方確認,收到確認後,傳送下一個分組。
超時未收到確認,就重傳前面傳送過的分組。
注意三點:1.必須保留已傳送的分組副本。2.分組和確認分組都必須進行編號3.超時計時器設定的重傳時間應當比資料在分組傳輸的平均往返時間更長一些。
若接收方的確認丟失,則應採取兩個行動:1.丟棄這個重複分組2.向A傳送確認。
上述稱為自動重傳請求ARQ
5.4.2連續ARQ協議
流水線傳輸,提高通道利用率。
維持傳送視窗。接收方採用累積確認的方式,對按序到達的最後一個分組傳送確認。
5.5TCP報文段的首部格式
20位元組固定+4n位元組根據需要增加
1.源埠,目的埠,各兩位元組。
2.報文段序號,四位元組。TCP連線每一個位元組都按順序編號。首部序號是所要傳送資料的第一個位元組的序號。
3.確認號ack,期望收到對方下一個報文段的第一個資料位元組的序號。
4.資料偏移,四位元組,資料距離TCP報文段的距離。TCP首部最大60位元組(資料偏移單位是4位元組)
5.保留,佔6位。
6.緊急URG,表明緊急資料,應儘快傳送,TCP將之插到報文段資料的最前面,需要與緊急指標配合。
7.確認ACK,連線建立後,ACK置1.
8.推送PSH,很少使用,互動式通訊,希望立即收到響應,收到後直接交付程序而不等待快取填滿後交付。
9.復位RST,表明TCP連接出現嚴重差錯,必須釋放連線,重建位,重置位。
10.同步SYN,建立連線時用來同步序號。
11.終止FIN,用來釋放連線。
12.視窗,2位元組,接收視窗,視窗值作為接收方讓傳送方設定其傳送視窗的依據。
13.檢驗和,2位元組,包括首部和資料。,加上偽首部,第四個欄位為6.
14.緊急指標,2位元組,指出緊急資料的末尾在報文段中的位置。視窗為0也可傳送緊急資料。
15.選項,長度可變,最大4位元組。最大報文段長度MSS,預設值536.
視窗擴大選項,三位元組,一個位元組表示移位值S,最大值是14
時間戳選項,10位元組,時間戳值4位元組,時間戳回送回答4位元組,1,計算往返時間RTT,傳送方把時間給到時間戳值,接收方把時間戳值複製到時間戳回送回答。 2.處理TCP序號超過2^32的情況,防止序號繞回PAWS,用時間戳區分。
選擇確認選項
5.6TCP可靠傳輸的實現
5.6.1以位元組為單位的滑動視窗
傳送視窗,兩部分,已傳送未確認,允許傳送未傳送。
接收視窗,只能對按序收到的資料中的最高序號給出確認。
傳送視窗發完,沒有確認,經過一段時間後,重傳這部分資料,重設超時計時器。
接收方不應過分推遲傳送確認(0.5s)
5.6.2超時重傳的時間確認
記錄一個加權平均往返時間RTTS=(1-w)*(舊的RTT)+w*(新的RTT樣本) w=0.125
超時重傳時間RTO=RTTS+4*RTTD
RTTD是RTT的偏差的加權平均值=(1-a)*舊的RTTD+a*|RTTS-新的RTT樣本| a=0.25
計算RTTS,重傳了,就不採用其往返時間樣本。報文每重傳一次,就把RTO增大一些(典型做法是取兩倍)
5.6.3選擇確認SACK
只傳送缺少的資料,不重傳已經收到的資料。
左邊界是第一的序號,右邊界-1是最後一個的序號。
32邊界+4SACK選項+4指明選項佔用多少位元組=40
沒有指出傳送方如何響應SACK,所以大多數實現還是重傳未被確認的資料塊。
5.7TCP的流量控制
5.7.1利用滑動視窗實現流量控制
流量控制:讓傳送方的傳送速率不要太快,要讓接收方來得及接收。
改變接收視窗rwnd實現流量控制
TCP為每一個連線設有一個持續計時器,收到零視窗通知,啟動持續計時器,傳送零視窗探測報文段,對方確認現在的視窗值,仍是零,重新維持計時器。
5.7.2必須考慮傳輸效率
最大報文段長度MSS
Nagle演算法:第一個發出去,收到確認後把當前所有發出去,再次收到確認,再把當前所有發出去。到達資料達到傳送視窗大小一半或已達到報文段的最大長度時,就立即傳送。
糊塗視窗綜合徵:每次接收一個,傳送一個,網路效率很低。視窗一直是1.可以讓接收方等待一段時間,或者等到接收快取已有一半空閒的空間。
5.8TCP的擁塞控制
5.8.1擁塞控制的一般原理
擁塞控制:防止過多資料注入到網路,這樣可以使網路中的路由器或鏈路不致過載,全域性性的過程。
流量控制往往指點對點通訊量的控制。
開環控制:事先設計好
閉環控制:1.檢測擁塞發生 2.傳送擁塞資訊到可採取行動的地方 3.調整網路系統的執行解決出現的問題。
5.8.2幾種擁塞控制的方法
傳送方讓自己的傳送視窗等於擁塞視窗cwnd。
1.慢開始和擁塞避免
慢開始:從1開始,每經過一個傳輸輪次,擁塞視窗加倍。
慢開始門限:超了用擁塞避免
擁塞避免:每次加1,線性增加擁塞視窗。
無論哪個階段出現擁塞,就把慢開始門限設為當前擁塞視窗的一般,並把擁塞視窗賦為1,執行慢開始演算法。
2快重傳和快恢復
快重傳:要求就收方每收到一個失序的報文段後就立即發出重複確認,使傳送方及早知道有報文沒有到達對方。傳送方一連收到三個重複確認,就重傳未收到的報文。傳送方能儘早重傳未被確認的報文。
快恢復:1.傳送方收到三個重複確認,把慢開始門限ssthresh減半,接下去不執行慢開始演算法 2.把cwnd設定為ssthreh減半後的數值,執行擁塞避免。
接受視窗rwnd又稱通知視窗,傳送視窗不能超過接受視窗的值。
5.8.3隨機早期檢測RED
路由器:尾部丟棄策略。
路由器維持兩個引數,佇列長度最小門線THmin,最大門線THmax,每一個分組抵達時,RED首先計算平均佇列長度Lav
路由器實現RED演算法:1.平均長度小於最小門限,放入佇列。2.平均長度超過最大門限,丟棄。3.兩者之間,按照概率p丟棄。
THmax=2*THmin比較合適。
在兩者之間時,p線性從0~pmax
加權平均的方法計算平均佇列長度Lav。
Lav=(1-w)*oldLav+w*nowLav
p=ptemp/(1-count*ptemp) count代表新到達的分組有多少個已經進入了佇列。
過渡分組丟棄概率ptemp=pmax*(Lav-THmin)/(THmax-THmin)
5.9TCP的運輸連線管理
傳輸控制塊TCB
5.9.1TCP的連線建立
三次握手:
第一次(A—>B),SYN=1,seq=x
A進入SYN-SENT狀態
第二次(B—>A),SYN=1,ACK=1,seq=y,ack=x+1
B進入SYN-RCVD狀態
第三次(A—>B),ACK=1,seq=x+1,ack=y+1
A進入ESTAB-LISHED狀態
seq是資料包本身的序列號;ack是期望對方繼續傳送的那個資料包的序列號。
ACK報文段可以攜帶資料,如果不攜帶資料則不消耗序列號,所以下一次資料報文段序號仍是seq=x+1.
A還要傳送一次確認:防止已失效的連線請求報文突然又傳送到了B,因而產生錯誤。
5.9.2TCP的連線釋放
四次握手:
第一次(A—>B),FIN=1,seq=u
A進入FIN-WAIT-1狀態
第二次(B—>A),ACK=1,seq=v,ack=u+1
B進入CLOSE-WAIT狀態,A收到後進入FIN-WAIT-2狀態,A->B的連線釋放了。
第三次(B—>A),FIN=1,ACK=1,seq=w,ack=u+1
B重複上次確認,進入LAST-ACK狀態,等待A的最後確認
第四次(A—>B),ACK=1,seq=u+1,ack=w+1
A進入TIME-WAIT-1狀態
A經過時間等待計時器設定的時間後在進入CLOSED狀態。
為什麼等待:1.保證A的最後一個ACK報文能夠到達B,B若沒收到則會重傳ACK+FIN報文 2.防止已失效的連線請求報文,經過2MSL後,本次連線所有相關報文都會消失。
保活計時器:伺服器確認客戶還在不在。通常兩小時。然後每隔75min探測,10次則關閉連線。
5.9.3TCP的有限狀態機
相關推薦
計算機網路複習(第五章 運輸層)
5.運輸層 5.1運輸層協議概述 5.1.1程序之間的通訊 使用者功能中的最低層。 運輸層功能:複用和分用。 網路層為主機之間提供邏輯通訊,運輸層為應用程序之間提供端到端的邏輯通訊。 運輸層進行差錯檢測。 5.1.2運輸層的兩個主要
計算機網路原理知識點(第五章:運輸層)
** *第五層:運輸層* ** 1. 概述: (1)真正資料通訊的意思其實是: 在主機的程序中, 由A主機的程序與B主機的程序進行資料交換的 過程而不是主機之間的資料交換. 很顯然,
讀書筆記之《計算機網路》---第五章 運輸層
本章目錄 運輸層協議概述 使用者資料報協議UDP 傳輸控制協議TCP概述 可靠傳輸的工作原理 TCP報文段首部格式 TCP可靠傳輸的實現 TCP流量控制 TCP擁塞控制 TCP的運輸連線管理 運輸層協議概述 兩個主機進行通訊其實就是兩個主機中的應用程序互相通
計算機網路教程第五章運輸層課後習題答案
第五章 傳輸層5—01 試說明運輸層在協議棧中的地位和作用,運輸層的通訊和網路層的通訊有什麼重要區別?為什麼運輸層是必不可少的?答:運輸層處於面向通訊部分的最高層,同時也是使用者功能中的最低層,向它上面的應用層提供服務 運輸層為應用程序之間提供端到
第五章 運輸層(UDP和TCP三次握手,四次揮手分析)
序言 通過這章,可以知道其實三次握手和四次揮手其實真的好簡單,通過這章的學習,我相信你也會同樣的認為,以後在也不需要聽到別人問三次握手的過程而自己一臉懵逼了,覺得人家好屌,其實也就是他懂你不懂,僅此而已,不懂就去學。學了你就會覺得其實也就那樣,沒有什麼厲害的,這讓我回想以前剛學習程式設
讀書筆記: C# 7.0 in a nutshell (第 五 章 Framework Overview)
內容: 第五章 框架總覽 Overview .NET Standard 2.0 CLR 和核心框架 應用技術 1. Overview 幾乎所有 .NET 框架的作用都通過一系列的 Managed Types暴露出
讀書筆記:LearningPython第五版 (第五章 數字型別)
Chap5 數字型別 5.1 數字型別基礎 Python支援基本的數字型別,以及更高階的物件,用來處理高階工作: integer 和 float 物件 complex number 物件 decimal : 固定精度物件 fraction : fracti
《機器學習》--周志華 (第五章學習筆記)
神經網路 神經元模型 神經網路是由具有適應性的簡單單元組成的廣泛並行互連的網路,它的組織能夠模擬生物神經系統對真實世界物體所作出的互動反應 神經網路中最基本的成分是神經元模型,即“簡單單元”,在生物神經網路中,每個神經元與其他神經元相連
學習筆記之計算機網路(王道考研) 第五章 傳輸層
傳輸層屬於面向通訊的最高層,同時也是使用者功能中的最低層 傳輸層提供應用程序之間的邏輯通訊(即端到端的通訊),與網路層的區別是,網路層提供的是主機之間的邏輯通訊 傳輸層的複用和分用:複用是指傳送方不同的應用程序都可以使用同一個傳輸層協議傳送資料;分用是指接收方的傳輸層在剝去報文的首
讀書筆記 ---- 《計算機網路—謝希仁第7版》---- 第5章 運輸層
網路層(上篇):https://blog.csdn.net/pcwl1206/article/details/83999363 網路層(下篇):https://blog.csdn.net/pcwl1206/article/details/84098381 第5章:運輸層 5.1&nb
網路作業系統課後作業(第五章)
1.比較說明FAT檔案系統和NTFS檔案系統的特點。 FAT檔案系統 檔案分配表(File Allocation Table,FAT)是用來記錄檔案所在位置的表格,它對於硬碟驅動器的使用非常重要,假若檔案分配表丟失,那麼硬碟
計算機網路 自頂向下方法 第三章 運輸層
Tags:計算機網路 第三章 運輸層 3.1 概述和運輸層服務 3.1.1 運輸層和網路層的關係 網路層提供了 主機 之間的邏輯通訊。而運輸層為執行在 不同主機上的程序 提供邏輯通訊。 運輸層協議只工作在端系統上。 運輸協議能提供
(OK) 第五章 傳輸層(tcp)到網路層(ip)--基於Linux3.10
根據資料的流向跟蹤程式碼,由於資料傳送是從tcp層到網路層再到網路到主機層,所以先來看tcp層向ip層傳送資料的函式。 tcp的傳送函式和接收函式一樣位於net/ipv4/資料夾,檔名是tcp_output.c檔案,傳輸層和網路層聯絡的函式是tcp_transmit
計算機網路第5章 運輸層(上)
《計算機網路(第七版)-謝希仁》 第5章 運輸層(上) 運輸層協議的特點,程序之間的通訊和埠等概念,UDP協議和TCP協議等相關基礎概念。 運輸層協議的概述 程序之間的通訊 運輸層向它上面的應用層提供通訊服務,它屬於面向通訊部分的最高層,同時也是
計算機網路原理筆記(五、運輸層)
5.運輸層 5-1.運輸層協議概述 從通訊和資訊處理的角度看,運輸層向它上面的應用層提供通訊服務,它屬於面向通訊部分的最高層,同時也是使用者功能中的最低層。 當網路的邊緣部分中的兩個主機使用網路的核心部分的功能進行端到端的通訊時,只有位於網路
計算機網路第5章 運輸層(下)
《計算機網路(第七版)-謝希仁》 第5章 運輸層(下) TCP協議 相關內容詳細介紹 TCP可靠傳輸的實現 假定資料傳輸只在一個方向進行 以位元組為單位的滑動視窗 傳送視窗表示:在沒有收到B的確認的情況下,A 可以連續把視窗內的資料都發送出
構建之法(第五章 團隊和流程)
功能 實用 運用 驗證 的人 秘密 開發 個性化 社區 第五章主要講了典型的軟件團隊模式和開發流程。以及我們也將討論團隊模式和開發效率之間的一些關系。 1.非團隊和團隊 團隊的主要特點: 1) 團隊有一致的集體目標,團隊要一起完成這個目標。一個團
java-web學習筆記(第五章)
war 客戶 腳本元素 utf 輸出 PE 行動 包含 筆記 第五章:JSP語法 一:Servlet和JSP的區別和各自優勢? Servlet和JSP均基於java語言,Servlet以java類的形式體現,JSP以腳本語言形式體現,兩者均需要在web
吳恩達機器學習(第五章)--特徵縮放和學習率
一、特徵縮放 ----(1) 對於我們假設的式子(1),可能存在這樣一種情況就是有些資料遠大於另一些資料(eg:x_1>>x_2) 比如房子價格的例子: 房子的面積要遠大於房子的層數和房間數。在這種情況下可以看下圖,所產生的等高線的圈會很窄,在做梯度下降
為什麼我要放棄javaScript資料結構與演算法(第五章)—— 連結串列
這一章你將會學會如何實現和使用連結串列這種動態的資料結構,這意味著我們可以從中任意新增或移除項,它會按需進行擴張。 本章內容 連結串列資料結構 向連結串列新增元素 從連結串列移除元素 使用 LinkedList 類 雙向連結串列 迴圈連結串列 第五章 連結串列 連結串列資