HCIA-R&S Notes 02 傳輸層協議簡述

傳輸層協議

TCP

傳輸控制協議(Transmission Control Protocol)
可靠 慢 面向連接的協議
保證可靠的四種方法:

  1. 建立連接(三次握手)
    在這裏插入圖片描述
  • PC向S發送一個SYN消息,攜帶一個序列號seq假設爲a。
  • S有沒有接收到PC發來的消息PC並不知道,所以S接收到SYN消息之後應該恢復一個確認消息ACK,攜帶一個確認號ack爲a+1,讓PC知道S已經收到seq爲a的SYN消息了。
    如果只是到這裏就結束了,證明PC發送的消息S可以接收到,這點PC和S都知道,但是S並不知道PC有沒有收到自己發過去的ACK消息,所以S決定也讓PC回個消息確認一下PC收到了沒。
    所以S在發送ACK消息給PC確認的時候,順便也發了個SYN消息,攜帶一個seq爲b。
  • PC收到了S發來的ACK和SYN消息之後,回覆一個ACK消息,攜帶ack爲b+1,seq爲a+1。

根據上述過程,我們很容易可以發現ack的作用,就是確認上一個報文,同時也是下一個報文的序列號

  1. 丟包重傳
    在這裏插入圖片描述
  • PC和S通信過程中,PC一直給S發包,順序號依次是a+2,a+3,a+4,但是很不幸的事發生了——seq爲a+4這個包丟了!
  • 這個時候,如果S不告訴PC,PC就永遠不知道丟了個包,也就無法保證數據的可靠性,聰明的S想到個辦法,就是給PC發送確認信息。
  • S會給PC發送確認信息,攜帶的ack的值爲收到的最大seq+1(也就是a+4),PC就會重新發送seq爲a+4的包,從而保證了數據的可靠性。
  1. 窗口大小(滑動窗口)
    有個大佬說的特別好,鏈接:link

  2. 斷開連接(四次分手)
    原理和建立連接的三次握手差不多,唯一的區別就是S在回覆PC的時候,ACK和FIN會分成兩個報文發送。

UDP

用戶數據報協議(User Datagram Protocol)
不可靠 快 無連接的協議
UDP頭部:

0-15 16-31
源端口 目的端口
長度 校驗和

長度:UDP長度+數據長度
沒有確認機制

本人也是小白菜,如有錯誤請指出!謝謝大佬!!最後,圖是我徒手畫的!非常簡陋很抱歉!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章