天天看點

TCP/IP複習總結

總算是把TCP協定這些東西複習的差不多,就把複習過程中的一些問題用QA的方式來一個總結。

TCP協定與UDP協定主要差別

UDP是面向資料封包的,封包之間沒有互相關系,并且也不提供可靠傳輸等功能。

TCP是面向資料流的,封包段之間有次序關系,并且會提供可靠傳輸、流量控制、擁塞控制等功能。

舉個例子:

UDP隻關心把這個資料封包發送出去完事兒,至于對方收沒收到就不關心了。

TCP不僅關心封包段發沒發出去,還要知道對方收沒收到,是不是按次序收到的,會不會發送的太快對方來不及接收。

TCP為什麼要進行擁塞控制

網絡中的路由器會有一個資料包處理隊列,當路由器接收到的資料包太多而一下子處理不過來時,就會導緻資料包處理隊列過長。此時,路由器就會無條件的丢棄新接收到的資料封包。

這就會導緻上層的TCP協定以為資料包在網絡中丢失,進而重傳這些資料包,而路由器又會丢棄這些重傳的資料包,如此以往,就會導緻網絡性能急劇下降,引起網絡癱瘓。

是以,TCP需要控制資料包發送的數量來避免網絡性能的下降。

擁塞控制與流量控制的差別

引用書上的答案:

  • 擁塞控制就是防止過多的資料注入到網絡中,這樣可以防止網絡中的路由器或鍊路不緻過載。擁塞控制所要做的都有一個前提,就是網絡能夠承受現有的網絡負荷。擁塞控制是一個全局性的過程,涉及到所有的主機、所有的路由器,以及與降低網絡傳輸性能有關的所有因素。
  • 流量控制往往指點對點通信量的控制,是個端到端的問題。流量控制所要做的就是抑制發送端發送資料的速率,以便使接收端來得及接收。

TCP的發送視窗到底是多大

發送視窗的上限值 = Min{rwnd, cwnd}

rwnd:接收方接收視窗

cwnd:發送方擁塞視窗

繼續閱讀