欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1655|回復: 0
打印 上一主題 下一主題
收起左側

TCP是可靠數據傳輸協議

[復制鏈接]
跳轉到指定樓層
樓主
ID:107189 發表于 2016-3-5 23:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
眾所周知,TCP是可靠數據傳輸協議,其是基于不可靠的IP層傳輸之上,建立自身的數據傳輸控制協議,由控制算法實現了可靠的數據傳輸。參照TCP協議以及若干版本的TCP堆棧實現過程,我們可以實現任意基于IP的可靠數據傳輸堆棧。實現可靠以及高效的可靠數據傳輸,主要涉及到邏輯端口、滑動窗口、慢啟動、RTT、快速重傳、delay ack以及亂序丟包處理。
一、           邏輯端口
數據傳輸端口是傳輸建立對應關系的鍵值,其是網絡數據傳輸堆棧的邏輯數據,而并不是物理存在的單元。為了提高由端口查找對應邏輯數據控制塊的效率,一般實現方法是建立二叉樹結構保存端口和邏輯數據控制塊,同時為了接近二叉樹最高的查找效率,端口分配一般是采用遞增回繞的分配方式。
二、           滑動窗口
對于發送方在發送IP數據包的過程中,如何使傳輸既能高效,同時又不會因為發送過快導致接收方處理慢而使接收緩沖區溢出丟失后面的數據,tcp堆棧采用滑動窗口的機制。窗口大小由接收方通告發送方,發送方發送數據后右移可用窗口左邊框減少滑動窗口大小,接收方收到數據包發送確認,發送方收到確認后,首先提取窗口大小并更新,然后右移可用窗口右邊框增大滑動窗口大小。當接收方收到發送方發送的數據,會在確認的同時把數據放入接收緩沖區,當緩沖區可用空間大小小于窗口大小時,會更新窗口大小。當上層從接收緩沖區取出數據,緩沖區可用空間增大時,也會更新窗口大小。
三、           慢啟動
在實際的可靠網絡傳輸中,并不是數據傳輸雙方建立可靠連接后,發送方就直接發送接收方通告窗口大小的數據,這是為了避免在廣域網的多級路由環境下路由緩存限制造成的丟包問題。發送方增加一個窗口,稱為擁塞窗口,發送方發送數據時窗口大小會取通告窗口大小和擁塞窗口大小的最小值。當連接建立時,擁塞窗口大小初始化為一個報文段的大小,在傳輸過程中,每收到一個確認數據包,擁塞窗口大小會增加一個報文段大小,需要說明的是有些堆棧是指數級增加。
四、           超時時間rtt
發送端向接收端發送數據包之后,會把未確認的數據包放入未確認隊列,等待接收端的確認,如果數據包在鏈路中被丟失,發送端在收不到確認的情況下,需要進行重發。進行重發的條件為一個閥值時間內沒有收到確認,則重發。這個閥值時間我們成為RTT。發送一個數據包時,取當前時鐘的值,當該數據包的確認返回時,再取時鐘值,兩次時鐘偏差為本次的RTT值, 記為M。傳輸模型為了處理真實環境變化起伏較大的情況,引入均值和方差來計算RTT。
Err =    M – A
A  <-   A + gErr
D  <-   D + h(| Err| - D)
RTT = A + 4D
其中A 為均值 D 為方差    Jacob模型中g = 1/8   h = 1/4

五、           快速重傳
在實際傳輸環境中,發送方向接收方連續發送了n(n< 滑動窗口大小)個IP包,由于網絡原因,接收方有可能收到n – 1個包,其中第j個包沒有收到,當接收方收到第j+1, j + 2 , ..n個包后,立即返回確認(ack), ackno為第j – 1 個包的確認號。
發送方收到重復ackno的確認后,記錄該確認號的重復次數,當達到閥值后,則進入快速重傳流程。由于重新排序處理只可能產生1-2個重復的ACK,所以這個閥值設定為3。快速重傳的流程為:
1、  重傳第j個數據包,把擁塞窗口設置為當前擁塞窗口的一半加3個報文段大小。
2、  后面每收到一個重復的確認,則把擁塞窗口大小加一個報文段大小,并發送一個數據包。
3、  當收到正常的確認,即 第J或j + 包的確認,再把擁塞窗口大小設置為之前的一半,進入正常的傳輸流程。
快速重傳恢復算法是處理正?焖俚木W絡環境中,網絡設備偶然發生的丟包亂序現象,因為網絡環境并沒有惡化,所以沒有必要走慢啟動流程,而只是把發送速度減半,進行快速恢復。
六、           Delay [...]
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表