亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1930|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

TCP是可靠數(shù)據(jù)傳輸協(xié)議

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

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

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表