天天看點

可靠的TCP與不可靠的IP

很多朋友都不能很好了解《詳解卷一》中“TCP在不可靠的IP層上提供一個可靠的傳輸層”這句話。我最近又畫了一張圖,希望通過比喻的手法來說明這個問題。

<a target="_blank" href="http://blog.51cto.com/attachment/201110/204803213.jpg"></a>

我們可以把淘寶買賣雙方的關系,比作可靠的傳輸層TCP,因為他們之間的交易是需要确認的是可靠的。如果買家沒有收到貨物,肯定不能給賣家确認。但是快遞公司可比作不可靠的網絡層協定(IP)。賣家把一部銷售給買家的手機封在一個包裹内(IP封包的過程),并且把這個包裹交給快遞。對于快遞的收件員,其實他并不清楚這個包裹内的東西是什麼,他隻用負責把這個包裹按照上面寫的位址送到買家的手中(IP路由的過程)。由于網絡層協定(IP)和快遞一樣不總是都靠譜,是以丢包是難免的。一旦出現丢包,長期沒有收到快遞的憤怒的買家就會找到賣家,倒黴的賣家隻能把那部手機重新再發一次(一般快遞都會推脫責任不予賠償),這個過程就叫做TCP的逾時重傳。流着淚的賣家把新的包裹再次交給收件員,對于賣家而言這确實是再次。但是對于收件員而言,這隻是一個普通的包裹,絕對不可能知道這是上次丢失包裹的一次重傳。(這也是網絡分層的目的,向下層隐藏上層的工作細節)。非常幸運的是,這次快遞公司“不辱使命”成功完成了任務,把包裹交給了淘寶買家,買家對手機進行檢查并且給賣家進行确認(TCP對資料的确認),本次會話結束。

本文轉自Yeslab教主 51CTO部落格,原文連結:http://blog.51cto.com/xrmjjz/684563

繼續閱讀