1. 程式人生 > >UDP與TCP

UDP與TCP

1.UDP使用者資料協議

  • UDP是無連線的,在傳送資料之前無需建立連線
  • UDP使用盡最大努力交付,即不保證可靠交付
  • UDP是面向報文的,既不合並也拆分報文,而是保留報文的邊界
  • UDP沒有擁塞控制,網路出現擁塞不影響傳送速度,沒有太大延遲。
  • UDP支援一對一、一對多、多對一、多對多的互動通訊
  • UDP的首部開銷小

傳輸控制協議TCP

  • TCP是面向連線的運輸層協議
  • TCP只能點對點(一對一)連線
  • TCP提供可靠交付
  • TCP提供全雙工通訊,允許通訊雙方任何時候傳送或接收資料,同時TCP連線的兩端都設有傳送/接收快取
  • 面向位元組流,TCP中的“流”指的是流入到程序或從程序中流出的位元組序列,TCP連線是一條虛連線(邏輯連線)

2.TCP連線

    TCP連線的埠是套接字(socket)或插口,由IP地址和埠號組成。

   套接字={IP地址:埠號}

   

3.可靠傳輸的工作原理

理想的傳輸條件有以下兩點:

  1. 傳輸通道不產生差錯
  2. 不管傳送方以多快的速度傳送資料,接收方總是來得及處理收到的資料

由於傳輸層以下無法提供可靠的傳輸,不具有以上兩點。

  3.1 停止等待協議

   1.無差錯情況

2.出現差錯

對於這兩種情況,B都不會發送任何資訊:

  • B收到M1時檢測出了差錯,就丟失M1
  • M1在傳輸過程丟失

可靠性傳輸協議這樣設計:

    超時重傳:A只要超過一段時間仍然沒有收到確認,就認為丟失了該分組,重傳該分組。

    實現超時重傳,通過為傳送的分組設定定時器,在計時器收到對方的確認,就撤銷已經設定的定時器。這裡需要注意的有三點:

  1.     A在傳送完一個分組後,必須暫時保留該分組的副本(在發生超時重傳時使用),只有收到確認後才清除該副本。
  2.     分組和確認分組都必須進行編號(明確哪個分組傳送失敗)
  3.     超市計時器設定的重傳時間應當比資料在分組傳輸的平均往返時間更長一些。

3.確認丟失和確認遲到

B收到M1分組,關於收到M1分組的確認丟失,因此A將重傳M1分組,B經採取以下行動:

  1. 丟失這個重複的分組M1
  2. 向A傳送確認

在傳輸過程沒有出現差錯,但B對分組M1的確認遲到了。A收到重複確認,收下後丟失,B收到重複分組,同樣丟失重複分組。

        上述的這種可靠傳輸協議常稱為自動重傳請求ARQ。

連續ARQ協議

         圖(b)表示傳送方收到了對第一個分組的確認傳送視窗向前地洞一個分組。如果原來已經發送了前5個分組,現在就可以傳送視窗內的第6個分組。

        接收方一般採用累積確認方式,也就是,接收方不對每個分組逐一發送確認,在收到幾個分組後,對按序到達的最後一個分組傳送確認,這就表示:到這個分組為止的所有分組都