1 / 33

第 6 章 傳輸層

第 6 章 傳輸層. 程序對程序. 不管是資料鏈結層或網路層,談的是主機與主機的連線,但資料通訊的交換則依賴終端應用程式的主從互動關係,即 端對端 (end-to-end) 的通訊。傳輸層的任務就是為資料傳送的兩個主機間,提供應用程式間的資料交換,即 程序對程序 (process-to-process) 間的服務 傳輸層提供的傳輸協定中,主要的有可靠的連接導向式 TCP 和不可靠的非連接導向式 UDP 。. 資料區段中的埠號. 埠號與主機. 傳輸層的多工.

quinn-rosa
Download Presentation

第 6 章 傳輸層

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第6章 傳輸層

  2. 程序對程序 • 不管是資料鏈結層或網路層,談的是主機與主機的連線,但資料通訊的交換則依賴終端應用程式的主從互動關係,即端對端(end-to-end)的通訊。傳輸層的任務就是為資料傳送的兩個主機間,提供應用程式間的資料交換,即程序對程序(process-to-process)間的服務 • 傳輸層提供的傳輸協定中,主要的有可靠的連接導向式TCP和不可靠的非連接導向式UDP。

  3. 資料區段中的埠號

  4. 埠號與主機

  5. 傳輸層的多工 • 多工(multiplexing)將多個信號或訊息結合起來後,以單一通道傳送;反之,解多工(de-multiplexing)則將單一傳輸通道收到的多種訊息或信號,萃取出來分別傳送到接收端

  6. 熟知埠號

  7. 可靠度 • 非連接導向 • 在不提供可靠的前提下,服務協定不會對封包的損壞、錯誤的順序或遺失做特殊的處理,其設計的目標就是快速和效能。 • 連接導向 • 如果資料傳送要求無誤,而不在於時效上,且資料量較大,那麼傳輸服務必須提供可靠的機制。付出的代價是複雜的流量控制機制和錯誤維護措施。

  8. 連接導向服務的意義 • 資料鏈結層有流量控制和錯誤控制,但它是節點之間可靠的服務;網路層是不可靠的,它無法確保資料封包的依序和如實送達,只是盡力而為;但我們需要端對端,即程序間的可靠服務,這就有賴傳輸層來達成此目標

  9. TCP表頭

  10. TCP連線建立:三向交握

  11. TCP連線終止

  12. TCP 半閉

  13. TCP流量控制 • TCP區段的每個位元組都有依序編號(序列號碼),且有確認回應資料接收狀況,向對方傳送確認seq = x表示已經收到x – 1個byte,預期接收的資料區段從第x個byte開始。TCP採用滑動視窗的流量控制。主機從網路收到的資料會先暫存於緩衝區,應用程式再從緩衝區讀取資料,緩衝區的空間於是釋放出來,視窗的大小就是根據緩衝區的可用量而定 • 傳送端送出區段後複製一份在佇列中並啟動計時器,如果逾時而未收到該區段的確認回應,或只收到部份的確認回應時,那麼得重送該區段或部份區段。

  14. 持留計時器 • 當傳送端收到視窗值為0的時候,會停止傳送資料,並啟動持留計時器(persist timer),以防範接收端的視窗值更新遺失,傳送端一直等待無法傳送資料,而造成TCP死鎖(deadlock)。如果持留計時器逾時仍然未收到視窗值的更新,傳送端可以嘗試傳送小資料包,接收端會再傳送視窗更新值。傳送端傳送小量的區段,這種現象稱為愚蠢視窗症狀(silly window syndrome)。

  15. 錯誤控制 • 傳輸層錯誤控制的範疇包含區段的內容有誤、有遺失的區段、有重複的區段及次序錯誤。除了次序錯誤需要重新排序之外,這些錯誤的解決方法都要透過重送來解決,而要偵測錯誤就得依賴檢查加總、確認回應、序列編號及計時器的TCP滑動視窗傳輸策略。重送使用的機制是回溯 - n ARQ或選擇性回絕ARQ

  16. 重傳計時器 • 當有資料區段傳送時就會啟動計時器,收到所有資料區段的確認後,計時器就會停止計時。網路狀況瞬息萬變,送出區段直到收到回應的時間,即來回時間( RTT),不會每次都一樣,其基本原理是取得多次RTT的平均值以得到平滑的RTT值( SRTT),因此RTO的值必須是可調適的。如果RTO的值設太小,發生重送的機率必會很高;如果設太大,效率必不彰,可能浪費太多時間等待。

  17. 造成壅塞的架構

  18. 壅塞控制 • 壅塞控制使用壅塞視窗(congestion window, cwnd)值來控制傳輸量,傳送者視窗大小取決於接收端視窗(rwnd)和cwnd中較小的一個。壅塞控制方式使用慢速啟動(slow start)、壅塞避免(congestion avoidance)以及快速重傳和快速回復(fast retransmission & fast recovery)三種階段的策略。

  19. 慢速啟動 • 壅塞控制分兩個階段,慢速啟動和壅塞避免。剛開始連線時,網路的狀況不得而知,沒有資訊提供定義cwnd的值,因此先從1個最大區塊(Maximum Segment Size, MSS)開始,536或512個 byte,每次收到ACK後,即RTT的時間,以指數的方式增加cwnd,cwnd = 1, 2, 4, 8 … ;但必須設定一門檻值(ssthresh)以避免網路壅塞或異常的提早發生,ssthresh的值一般設定為65,535 byte。當cwnd = ssthresh時,壅塞控制進入壅塞避免階段。

  20. 壅塞避免 • 避免壅塞使用的演算法是加法遞增和倍數遞減( AIMD),並結合慢速啟動來達到目標。慢速啟動與AIMD是各自獨立的機制,只是它們搭配進行。各系統最常用的演算法有TCP Tahoe和TCP Reno

  21. 壅塞避免:AIMD • 當cwnd = ssthresh時,為避免發生壅塞必須減緩cwnd值增加的速度。此時cwnd不再以指數的方式成長,當收到ACK後cwnd只增加1直到偵測到壅塞為止,這種方式稱為加法遞增(AI)。如果沒收到ACK表示發生壅塞,除了須重送資料區段外,cwnd須降為一半,這種方式稱為倍數遞減(MD)。 • 如果逾時,ssthresh 須設為目前cwnd的一半。但Tahoe將收到3個重覆的ACK和逾時沒收到ACK視為一樣的意義,此時cwnd設為1並開始慢速啟動的階段。 Reno則分別處理,當收到3個重覆的ACK時,cwnd調整為現在的一半,並執行快速重傳且進入快速回復階段:如果得到ACK的回覆,TCP停留在壅塞避免的階段,如果逾時則進入慢速啟動階段。快速重傳及回復機制可避免進入慢速啟動階段,充分利用頻寬增加時效。

  22. 壅塞控制與壅塞視窗的變化

  23. 壅塞控制流程

  24. QoS的調節機制 • 排程:先進先出、優先佇列、公平佇列、權重公平佇列 • 訊務雕塑 • 允入機制

  25. QoS:排程 • 先進先出佇列(FIFO) • 依照封包到達的順序依序處理,如果新進的封包到達時佇列已滿,那麼該新進封包會被捨棄,這種捨棄的準則稱為棄尾 • 優先佇列 • 將訊務分級,依照優先順序處理封包 • 公平佇列 • 同時維護多個FIFO資料流,路由器以循環的方式處理封包,棄尾的情形發生在各獨立的FIFO上 • 權重公平佇列 • 將公平佇列的每個資料流賦予權重

  26. 權重公平佇列

  27. 訊務雕塑 • 網路上的資料流具多樣性,有即時影音串流,或大量檔案傳輸,為有效利用網路頻寬,可對某些大量非即時性訊務在未進入網路之前採取限流(rate limiting)措施,避免影響其它須滿足服務品質之資料流。 • 訊務雕塑可利用漏斗(leaky bucket)原理來平滑其資料流,避免突爆。流入漏斗的水可以很快,但水則以固定緩慢的速度自漏斗流出

  28. 允入控制 • 路由器或交換器在資料流進入之前會根據其規範,如頻寬需求、資料流速和佇列機制等來決定是否讓資料流進入。 • 決定允入與否是一件困難的工作。資料流的資料封包是否遵循規範可透過監察(policing)的機制,以決定對此資料流的處理。

  29. QoS實施:IntServ • IntServ利用一種資源保留協定(Resource Reservation Protocol, RSVP)建立虛擬通道來為此專屬通道提供等級服務,其通道的狀態不若訊框中繼(frame relay)保持不變的硬狀態(hard state),它是一種柔狀態(soft state),必須定期更動。 • IntServ將資料流分為三種等級:保證服務(guaranteed service)、負載控制服務(controlled service)和盡力而為服務(best effort service)。保證服務等級的資料流決不會受到延遲;負載控制服務等級的資料流希望能感覺網路不是壅塞的狀況,資料遺失率須低於10%;而盡力而為的服務與原來IP的非連接導向式服務是一樣的。

  30. IntServ的RSVP傳訊

  31. QoS實施:DiffServ • 差別式服務主要是一種分級服務,分級的方法不像IntServ根據資料流的規範來允入訊務,它利用表頭DS欄位(TOS)中的6個位元DSCP(differentiated service code point)欄位值來決定級別。所以DifServ不需要去煩惱訊務的型式,它只根據DSCP值來決定其行為,即每站行為(Per Hop Behavior, PHB) • DSCP可以得到26 = 64個級別,不過一般應用上只使用EF PHB、AF PHB和DE PHB。EF(expedited forwarding),快速轉送的意思,專為低遺失率和低延遲的訊務服務;AF(assured forwarding),確保轉送的意思,在條件之內保證轉送;DE(default),預設的意思,也就是原來盡力而為的服務

  32. UDP表頭

  33. UDP特性 • 是一個不可靠的非連接導向傳輸協定;它之所以不可靠是因為它沒有確認告知資料的接收情形,資料包也沒有序號編列,更不用說資料流量或壅塞的控制。 • 因為它不講究可靠,所以小資料量,要求傳輸效益高且需要即時反應的一些服務,例如影音串流的多媒體即時應用程式反而更適用,因為這種型態的服務可以容忍資料遺失,而且要求速度。

More Related