為什么位于網絡邊緣的主機才有運輸層?
傳輸層為應用層提供通信服務,應用層屬于面向通信部分的最高層,用戶功能的最底層。傳輸層的功能是為相互通信的應用程序進程提供邏輯通信。對于應用進程的通信,通俗的說法就是兩臺主機通信,也叫端到端通信。邏輯通信是指傳輸層之間的通信可以看作是沒有物理連接的水平通信。
當網絡邊緣部分的主機通過網絡核心部分進行通信時,只有網絡邊緣部分的主機的協議棧有傳輸層,而網絡核心部分沒有,只使用接下來的三層:網絡層、數據鏈路層和物理層。
一般來說,傳輸層有兩個主要功能:
1、為應用程序進程提供端到端的邏輯通信
2、接收報文錯誤檢測。
5.1.2傳輸層的兩個主要協議
首先,什么是傳輸協議數據單元TPDU?兩個對等傳輸實體通信時傳輸的數據單元。
1,面向連接的TCP:傳輸控制協議
只提供盡力而為的、可靠的和面向連接的服務,所以TPDU的報頭中的開銷很大,并且占用了大量的處理器資源。邏輯信道是相當全雙工和可靠的,但信道不是。;我不知道它通過哪些路由器,而路由器不知道。;我不知道傳輸層是否已經建立了連接。傳輸的TPDU是TCP數據段。TCP不提供廣播和多播服務。
2、無連接UDP:用戶數據報協議
傳輸數據之前不需要建立連接,邏輯信道是不可靠的信道。傳輸的TPDU是UDP消息。一方的傳輸層在收到UDP消息后不需要給另一方任何確認。即便如此,有時UDP是最有效的工作。
5.1.3運輸層端口
主機如何判斷數據包屬于哪個進程?比如網頁,或者?使用進程標識符。
并且可以將端口想象成通信的端點。端口是傳輸層和應用層之間的服務接口。傳輸層的復用和解復用功能只能通過端口實現。
軟件端口:協議棧之間的抽象協議端口,以及應用層中各種協議進程與傳輸實體交互的地址。
硬件端口:路由器和交換機上的端口,以及不同硬件設備之間的交互接口。
TCP端口用一個16位的端口號來標識,這個端口號只有本地意義,只是為了標記這臺電腦應用層的進程。
三種類型的端口:
1、熟悉港口
2.注冊端口號
3、客戶端口號/短端口號
5.2用戶數據報協議UDP
UDP概述
UDP在IP數據報中增加了端口功能和錯誤檢測功能。;這就是全部。
主要特點:
NUDP是無連接的,即發送數據前不需要建立連接。
NUDP使用盡力傳送,即不保證可靠的傳送,并且不使用擁塞控制。
UDP是面向消息的。UDP沒有擁塞控制,非常適合多媒體通信。要求。
NUDP支持一對一、一對多、多對一、多對多的交互通信。
nUDP的報頭開銷很小,只有8個字節。
5.2.2UDP報頭格式
當計算校驗和時,"偽標題"和UDP用戶數據報臨時連接在一起。偽報頭僅用于計算校驗和。
5.3傳輸控制協議TCP概述
TCPTCP的主要特性
1、面向連接(虛擬連接)
2.每個TCP連接只有兩個端點,并且是點對點和一對一的。
3.提供可靠的交付服務
4.提供全雙工服務。
5、面向字節流
TCP根據對方給定的窗口值和當前的網絡擁塞程度(UDP發送的消息長度由應用進程給定)來決定一個消息段應該包含多少字節,所以它不我不在乎應用程序進程一次向TCP緩存發送消息需要多長時間。如果太長,它會劃分數據塊,重新發送。
TCP連接
TCP連接的端點不是主機,不是主機的IP地址,不是應用進程,也不是傳輸層的協議端口。TCP連接的端點稱為套接字或套接字。
套接字是通過連接端口號和IP地址形成的。
每個TCP連接都由通信兩端的兩個端點(即兩個套接字)唯一確定。
5.4可靠傳輸的工作原理
5.4.1停止等待協議
這種可靠的傳輸協議通常被稱為自動重復請求(ARQ)。
ARQ表示重傳請求是自動的。接收者不需要請求發送者重發錯誤的分組。
停止等待協議的優點是簡單,缺點是信道利用率太低。利用管道傳輸連續發送多個包,可以提高信道利用率。
5.4.2連續ARQ協議
滑動窗口協議,圖(a)顯示了發送方維護的發送窗口。發送方可以連續發送五個包,每發送一個包都不用停下來等待對方的確認。
因為信道上總是有不間斷的數據傳輸,所以這種傳輸可以獲得較高的信道利用率。
接收端采用累積確認,即不需要對接收到的數據包逐一發送確認,而是對按順序到達的最后一個數據包發送確認,這意味著直到這個數據包的所有數據包都已被正確接收。
優點:易于實現,即使確認丟失,也無需重發。
缺點:接收方已經正確接收到的所有數據包的信息無法反映給發送方。
Go-back-N:您需要再次返回以重新傳輸已經發送的N個數據包。
例如,發送方發送了前五個數據包,中間的第三個數據包丟失。這時,接收器只有前兩個數據包可以被確認。發送者可以Idon'我不知道最后三個數據包的位置,所以他必須再次重發所有最后三個數據包。
TCP可靠通信的具體實現:
TCP連接在兩端都有兩個窗口:發送和接收。這四個端口都是動態變化的。
TCP可靠傳輸機制由字節序列號控制,所有確認都基于序列號而不是消息段。
TCP連接的往返時間RTT不固定。有必要使用特定的算法來估計合理的重傳時間。
5.5TCP數據段的報頭格式
源端口和目的端口字段中的——各為2個字節。端口是傳輸層和應用層之間的服務接口。傳輸層的復用和解復用功能只能通過端口實現。
序列號字段——占用4個字節。TCP連接中傳輸的數據流中的每個字節都有編號。序列號字段的值是指本段發送的數據的第一個字節的序列號。
確認號字段——占用4個字節,這是預期從另一方接收的下一個消息段的數據的第一個字節的序號。
數據偏移(即報頭長度)——占用4位,表示TCP數據段的數據起點距離TCP數據段的起點有多遠。amp的單位"數據偏移"是一個32位字(按4個字節計算)。
檢查和——占2個字節。驗證和字段驗證的范圍包括表頭和數據。計算校驗和時,應該在TCP數據段前面添加一個12字節的偽報頭。
選項字段的——長度是可變的。TCP最初只指定了一個選項,即最大分段長度MSS。MSS告訴TCP:"我的緩存可以接收的消息段數據字段的最大長度是MSS字節。"
MSS(MaximumSegmentSize)是TCP數據段中數據字段的最大長度。數據字段加上TCP報頭等于整個TCP數據段。
5.6TCP可靠傳輸的實現
5.6.1滑動窗口(字節)
5.6.2超時重傳時間的選擇
5.6.3選擇確認SACK。
5.7TCP流量控制
5.7.1使用滑動窗口實現流量控制。
流量控制是為了使發送者s發送速率不要太快,這樣接收方才能及時收到,網絡也不會擁塞。
TCP對每個連接都有一個持久計時器。
只要TCP連接的一端從另一端收到零窗口通知,它就會啟動持續計時器。
如果持續定時器設置的時間到期,則發送零窗口檢測消息段(僅攜帶1)。字節的數據),而對方在確認這個探測段的時候給出了當前的窗口值。
如果窗口仍然為零,接收該消息段的一方重置持續時間計時器。
如果窗口不為零,則可以打破死鎖。
5.7.1必須考慮傳輸效率。
如果網絡中多個資源同時擁塞,網絡性能會明顯惡化,整個網絡的吞吐量會隨著輸入負載的增加而降低。
擁塞控制有一個前提,就是網絡能夠承受現有的網絡負載。
流量控制通常是指控制給定發送方和接收方之間的點對點流量。
流量控制要做的就是抑制發送方發送數據的速率,讓接收方能夠及時接收。
5.8TCP擁塞控制
5.8.1擁塞控制的一般原則:開環控制和閉環控制。
5.8.2幾種擁塞控制方法
1、慢啟動和擁塞避免
發件人s控制擁塞窗口的原理是,只要網絡不擁塞,擁塞窗口就會增大,以發送更多的數據包。但只要網絡擁塞,擁塞窗口就會縮小,以減少注入網絡的數據包數量。
2.快速重傳和快速恢復
5.9TCP傳輸連接管理
傳輸連接有三個階段:連接建立、數據傳輸和連接釋放。
TCP連接的建立
TCP連接由客戶端服務器建立。
使用三次握手建立TCP連接
TCP連接發布
您必須等待2MSL。
首先,為了確保A發送的最后一個ACK段能夠到達B..
第二,預防"無效的連接請求消息段"不會出現在這里。a.發送完最后一個ACK段后,需要2MSL才能使這個連接持續期間生成的所有段從網絡上消失。這樣,舊的連接請求消息段將不會出現在下一個新的連接中。
arq方法最基本的兩種方案?
反饋檢測方法
反饋檢測方法,也稱為回聲檢查或"回聲報方法,主要用于面向字符的異步傳輸,如終端與遠程計算機之間的通信。這是一種不使用任何特殊代碼的錯誤檢測方法。雙方傳輸數據時,接收方將接收到的數據(可以是字符,也可以是幀)發回發送方,發送方檢查是否與原始數據完全一致。如果不是,發送方發送一個控制字符(如DEL)通知接收方刪除錯誤數據,重新發送數據;如果是,則發送下一個數據。該反饋檢測方法原理簡單,易于實現,可靠性高。但是每個數據傳輸兩次,信道利用率很低。一般在面向字符的異步傳輸中,信道效率不是主要因素,所以這種差錯控制仍然被廣泛使用。