這篇文章轉(zhuǎn)載自http://blog.chinaunix.net/uid-26275986-id-4109679.html
文章從滑動窗口,流量控制,擁塞控制等幾個方面闡述了TCP可靠傳輸?shù)膶崿F(xiàn)。為尊重知識產(chǎn)權(quán),請到作者博客閱覽,感謝作者的貢獻(xiàn)。
另外,TCP和UDP的區(qū)別是初級面試中比較常問到的。個人覺得最主要的區(qū)別就是TCP可靠,UDP不可靠??梢猿橄蟮陌裈CP認(rèn)為是為了解決UDP不可靠的解決方案。
因為無連接不可靠,所以TCP需要建立連接;
因為丟包不可靠,所以TCP需要丟包重傳;
因為無序到達(dá)不可靠,所以TCP需要滑動窗口;
因為滑動窗口出現(xiàn),所以要流量控制,擁塞控制;
......
那是不是UDP就沒用了呢,當(dāng)然不是,很多時候可靠不一定最有價值。
比如直播,如果發(fā)生丟包,你是選擇忍受重傳的延時呢還是最快的跟上比賽節(jié)奏?
至于什么時候選擇TCP,什么時候選擇UDP,大牛們都說,當(dāng)不確定的時候選TCP...