3傳輸層

3.1傳輸層服務(wù)

3.1.1傳輸層服務(wù)概述

傳輸層服務(wù)和協(xié)議

■傳輸層協(xié)議為運(yùn)行在不同Host上的進(jìn)程提供了一種邏輯通信機(jī)制

■端系統(tǒng)運(yùn)行傳輸層協(xié)議§ 發(fā)送方:將應(yīng)用遞交的消息分成一個或多個的Segment悔政,并向下傳給網(wǎng)絡(luò)層岗喉。

§ 接收方:將接收到的segment組裝成消息刘绣,并向上交給應(yīng)用層柄延。

■傳輸層可以為應(yīng)用提供多種協(xié)議§Internet上的TCP§Internet上的UD

傳輸層vs.網(wǎng)絡(luò)層

v■網(wǎng)絡(luò)層:提供主機(jī)之間的邏輯通信機(jī)制v■傳輸層:提供應(yīng)用進(jìn)程之間的邏輯通信機(jī)制§ 位于網(wǎng)絡(luò)層之上

§ 依賴于網(wǎng)絡(luò)層服務(wù)§ 對網(wǎng)絡(luò)層服務(wù)進(jìn)行(可能的)增強(qiáng)

Internet傳輸層協(xié)議

v■可靠蒙畴、按序的交付服務(wù)(TCP)§ 擁塞控制§ 流量控制§ 連接建立v■不可靠的交付服務(wù)(UDP)§ 基于“盡力而為(Best-effort)”的網(wǎng)絡(luò)層,沒有做(可靠性方面的)擴(kuò)展■v兩種服務(wù)均不保證§ 延遲§ 帶寬

3.2多路復(fù)用和多路分用

Why彼城?v 如果某層的一個協(xié)議對應(yīng)直接上層的多個協(xié)議/實(shí)體,則需要復(fù)用/分用



分用如何工作候生?

v■主機(jī)接收到IP數(shù)據(jù)報(datagram)

§ 每個數(shù)據(jù)報攜帶源IP地址、目的IP地址绽昼∥ㄑ迹§ 每個數(shù)據(jù)報攜帶一個傳輸層的段(Segment)。

§ 每個段攜帶源端口號和目的端口號

v■主機(jī)收到Segment之后硅确,傳輸層協(xié)議提取IP地址和端口號信息肿孵,將Segment導(dǎo)向相應(yīng)的Socket

`TCP做更多處理



無連接分用

■利用端口號創(chuàng)建

SocketDatagramSocket mySocket1 = new DatagramSocket(99111);

DatagramSocket mySocket2 = new DatagramSocket(99222);

■UDP的Socket用二元組標(biāo)識§(目的IP地址,目的端口號)

■主機(jī)收到UDP段后§ 檢查段中的目的端口號§ 將UDP段導(dǎo)向綁定在該端口號的Socket

■來自不同源IP地址和/或源端口號的IP數(shù)據(jù)包被導(dǎo)向同一個Socket (源端口號提供返回地址)



面向連接的分用

■TCP的Socket用四元組標(biāo)識

§ 源IP地址

§ 源端口號

§ 目的IP地址

§ 目的端口號

■接收端利用所有的四個值將Segment導(dǎo)向合適的Socketv

■服務(wù)器可能同時支持多個TCP Socket

§ 每個Socket用自己的四元組標(biāo)識

■Web服務(wù)器為每個客戶端開不同的Socket



面向連接的分用:多線程Web服務(wù)器



3.3無連接傳輸協(xié)議-UDP

UDP: User Datagram Protocol [RFC 768]

v ■基于Internet IP協(xié)議§ 復(fù)用/分用§ 簡單的錯誤校驗(yàn)

(端到端的原則:不能保證下面各層都有錯誤檢測機(jī)制疏魏,也不能保證在各層傳輸過程中不會出錯,所以需要在靠近應(yīng)用層做一個錯誤校驗(yàn)晤愧。)

■“Best effort”服務(wù)大莫,UDP段可能

§ 丟失

§ 非按序到達(dá)

■無連接

§UDP發(fā)送方和接收方之間不需要握手

§ 每個UDP段的處理獨(dú)立于其他段

UDP為什么存在?

無需建立連接(減少延遲)

實(shí)現(xiàn)簡單:無需維護(hù)連接狀態(tài)

?頭部開銷少

沒有擁塞控制:應(yīng)用可更好地控制發(fā)送時間和速率

v■常用于流媒體應(yīng)用

§ 容忍丟失

§ 速率敏感

v■UDP還用于

§DNS

§SNMP

v■在UDP上實(shí)現(xiàn)可靠數(shù)據(jù)傳輸?

§ 在應(yīng)用層增加可靠性機(jī)制§ 應(yīng)用特定的錯誤恢復(fù)機(jī)制



UDP校驗(yàn)和(checksum)

目的:檢測UDP段在傳輸中是否發(fā)生錯誤(如位翻轉(zhuǎn))

v■發(fā)送方

§ 將段的內(nèi)容視為16-bit整數(shù)

§ 校驗(yàn)和計(jì)算:計(jì)算所有整數(shù)的和只厘,進(jìn)位加在和的后面烙丛,將得到的值按位求反,得到校驗(yàn)和

§ 發(fā)送方將校驗(yàn)和放入校驗(yàn)和字段

v■接收方§ 計(jì)算所收到段的校驗(yàn)和

§ 將其與校驗(yàn)和字段進(jìn)行對比

? 不相等:檢測出錯誤

? 相等:沒有檢測出錯誤(但可能有錯誤)



3.4可靠數(shù)據(jù)傳輸?shù)脑?/b>

■什么是可靠羔味?

§ 不錯河咽、不丟、不亂

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

§ 可靠數(shù)據(jù)傳輸對應(yīng)用層赋元、傳輸層忘蟹、鏈路層都很重要

§ 網(wǎng)絡(luò)Top-10問題

§ 信道的不可靠特性決定了可靠數(shù)據(jù)傳輸協(xié)議(rdt)的復(fù)雜性

可靠數(shù)據(jù)傳輸協(xié)議基本結(jié)構(gòu):接口



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

v■漸進(jìn)地設(shè)計(jì)可靠數(shù)據(jù)傳輸協(xié)議的發(fā)送方和接收方

v■只考慮單向數(shù)據(jù)傳輸

§ 但控制信息雙向流動

v■利用狀態(tài)機(jī)(Finite State Machine, FSM)刻畫傳輸協(xié)議



Rdt 1.0:可靠信道上的可靠數(shù)據(jù)傳輸

v■底層信道完全可靠

?不會發(fā)生錯誤(bit error)

?不會丟棄分組

v■發(fā)送方和接收方的FSM獨(dú)立



Rdt 2.0:產(chǎn)生位錯誤的信道(會有位錯誤)

v ■底層信道可能翻轉(zhuǎn)分組中的位(bit)§ 利用校驗(yàn)和檢測位錯誤

v■如何從錯誤中恢復(fù)?

§ 確認(rèn)機(jī)制(Acknowledgements, ACK):接收方顯式地告知發(fā)送方分組已正確接收

§NAK:接收方顯式地告知發(fā)送方分組有錯誤§ 發(fā)送方收到NAK后搁凸,重傳分組

v ■基于這種重傳機(jī)制的rdt協(xié)議稱為ARQ(Automatic Repeat reQuest)協(xié)議

v ■Rdt 2.0中引入的新機(jī)制

§ 差錯檢測

§ 接收方反饋控制消息: ACK/NAK

§ 重傳



停等協(xié)議:發(fā)送方?jīng)]有收到接收方的確認(rèn)ACK不會發(fā)送下一個分組媚值。

Rdt 2.0有什么缺陷?

v ■如果ACK/NAK消息發(fā)生錯誤/被破壞(corrupted)會怎么樣护糖?? 為ACK/NAK增加校驗(yàn)和褥芒,檢錯并糾錯(花銷較大)

? 發(fā)送方收到被破壞ACK/NAK時不知道接收方發(fā)生了什么,添加額外的控制消息(額外消息任然可能會壞掉)

? 如果ACK/NAK壞掉嫡良,發(fā)送方重傳

? 不能簡單的重傳:產(chǎn)生重復(fù)分組

v ■如何解決重復(fù)分組問題?

§序列號(Sequence number):發(fā)送方給每個分組增加序列號§ 接收方丟棄重復(fù)分組





Rdt 2.1 vs. Rdt 2.0

v■發(fā)送方:·p為每個分組增加了序列號·p兩個序列號(0, 1)就夠用,為什么浪藻?(因?yàn)槭褂昧送5葏f(xié)議)·p需校驗(yàn)ACK/NAK消息是否發(fā)生錯誤·p狀態(tài)數(shù)量翻倍p狀態(tài)必須“記住”“當(dāng)前”的分組序列號v■接收方p·需判斷分組是否是重復(fù)p當(dāng)前所處狀態(tài)提供了期望收到分組的序列號p·注意:接收方無法知道ACK/NAK是否被發(fā)送方正確收到

Rdt 2.2:無NAK消息協(xié)議

v ■與rdt 2.1功能相同赞哗,但是只使用ACK

v ■如何實(shí)現(xiàn)藤乙?

? 接收方通過ACK告知最后一個被正確接收的分組? 在ACK消息中顯式地加入被確認(rèn)分組的序列號(發(fā)送確定收到最后一個分組的序列號)

v ■發(fā)送方收到重復(fù)ACK之后,采取與收到NAK消息相同的動作? 重傳當(dāng)前分組



Rdt 3.0

■如果信道既可能發(fā)生錯誤缔俄,也可能丟失分組,怎么辦馅巷?

§ “校驗(yàn)和+序列號+ ACK +重傳”夠用嗎敞曹?加定時器

v■方法:發(fā)送方等待“合理”時間§ ·如果沒收到ACK橄登,重傳

§ ·如果分組或ACK只是延遲而不是丟了

?重傳會產(chǎn)生重復(fù),序列號機(jī)制能夠處理

?接收方需在ACK中顯式告知所確認(rèn)的分組

§ ·需要定時器



Rdt 3.0性能分析

v■Rdt 3.0能夠正確工作您市,但性能很差

v■示例:1Gbps鏈路钉鸯,15ms端到端傳播延遲邮辽,1KB分組



§ 發(fā)送方利用率:發(fā)送方發(fā)送時間百分比



§ 在1Gbps鏈路上每30毫秒才發(fā)送一個分組è33KB/sec§ 網(wǎng)絡(luò)協(xié)議限制了物理資源的利用

3.5流水線機(jī)制與滑動窗口協(xié)議





流水線協(xié)議

■允許發(fā)送方在收到ACK之前連續(xù)發(fā)送多個分組§ 更大的序列號范圍§ 發(fā)送方和/或接收方需要更大的存儲空間以緩存分組



滑動窗口協(xié)議



v■滑動窗口協(xié)議: Sliding-window protocol

v■窗口§ 允許使用的序列號范圍§ 窗口尺寸為N:最多有N個等待確認(rèn)的消息

v■滑動窗口

§ 隨著協(xié)議的運(yùn)行唠雕,窗口在序列號空間內(nèi)向前滑動

v■滑動窗口協(xié)議:GBN, SR

Go-Back-N(GBN)協(xié)議:發(fā)送方

■分組頭部包含k-bit序列號

v■窗口尺寸為N,最多允許N個分組未確認(rèn)(累積N確認(rèn)吨述,N之前的全部都確認(rèn)收到了)



v■ACK(n):確認(rèn)到序列號n(包含n)的分組均已被正確接收§ 可能收到重復(fù)ACK

■為空中的分組設(shè)置計(jì)時器(timer)

v■超時Timeout(n)事件:重傳序列號大于等于n岩睁,還未收到ACK的所有分組





■ACK機(jī)制:發(fā)送擁有最高序列號的、已被正確接收的分組的ACK§ 可能產(chǎn)生重復(fù)ACK

§ 只需要記住唯一的expectedseqnum

v■亂序到達(dá)的分組:

§ 直接丟棄

è接收方?jīng)]有緩存

§ 重新確認(rèn)序列號最大的锐极、按序到達(dá)的分組



Selective Repeat協(xié)議

v■GBN有什么缺陷笙僚?

v■接收方對每個分組單獨(dú)進(jìn)行確認(rèn)

§ 設(shè)置緩存機(jī)制,緩存亂序到達(dá)的分組

v■發(fā)送方只重傳那些沒收到ACK的分組

§ 為每個分組設(shè)置定時器

v■發(fā)送方窗口

§N個連續(xù)的序列號

§ 限制已發(fā)送且未確認(rèn)的分組



SR協(xié)議

■發(fā)送方的時間和動作

從上層收到數(shù)據(jù):檢查下一個可用分組的序號灵再,如果序號是在窗口內(nèi)則打包發(fā)送肋层,

超時:重發(fā)分組,重新定時

收到ACK(n)翎迁,在窗口內(nèi)栋猖,就會將已確認(rèn)的分組標(biāo)記為已接收。如果這個分組是該窗內(nèi)最小分組即send_base就挪動窗口汪榔,發(fā)送窗口內(nèi)為發(fā)送的分組蒲拉。

■接收方的時間和動作

分組序號在[rcvbase, rcvbase+N-1]:發(fā)送ACK(n),超過則緩沖,在序號內(nèi)雌团,滑動窗口燃领,并且將已經(jīng)確認(rèn)有序的分組交付給上層。

序號在[rcvbase-N,rcvbase-1]:發(fā)送ACK(n)锦援。

■其他情況:忽略



問題:序列號空間大小與窗口尺寸需滿足什么關(guān)系猛蔽?§N_send+N_recv<=2k

3.6面向連接傳輸協(xié)議-TCP

TCP概述: RFCs-793, 1122, 1323, 2018, 2581

v■點(diǎn)對點(diǎn)§ 一個發(fā)送方,一個接收方

v■可靠的灵寺、按序的字節(jié)流v■流水線機(jī)制

§TCP擁塞控制和流量控制機(jī)制設(shè)置窗口尺寸

v■發(fā)送方/接收方緩存

v■全雙工(full-duplex)§ 同一連接中能夠傳輸雙向數(shù)據(jù)流

v■面向連接§ 通信雙方在發(fā)送數(shù)據(jù)之前必須建立連接曼库。

§ 連接狀態(tài)只在連接的兩端中維護(hù),在沿途節(jié)點(diǎn)中并不維護(hù)狀態(tài)略板。

§TCP連接包括:兩臺主機(jī)上的緩存毁枯、連接狀態(tài)變量、socket等

v■流量控制機(jī)制

TCP段結(jié)構(gòu)



TCP:序列號和ACK

序列號:§ 序列號指的是segment中第一個字節(jié)的編號叮称,而不是segment的編號

§ 建立TCP連接時种玛,雙方隨機(jī)選擇序列號ACKs:

§ 希望接收到的下一個字節(jié)的序列號

§ 累計(jì)確認(rèn):該序列號之前的所有字節(jié)均已被正確接收到Q:接收方如何處理亂序到達(dá)的Segment?

§A: TCP規(guī)范中沒有規(guī)定颅拦,由TCP的實(shí)現(xiàn)者做出決策

TCP可靠數(shù)據(jù)傳輸概述

v■TCP在IP層提供的不可靠服務(wù)基礎(chǔ)上實(shí)現(xiàn)可靠數(shù)據(jù)傳輸服務(wù)

v■流水線機(jī)制

v■累積確認(rèn)

v■TCP使用單一重傳定時器

v■觸發(fā)重傳的事件

§ 超時

§ 收到重復(fù)ACK

v■漸進(jìn)式

§ 暫不考慮重復(fù)ACK

§ 暫不考慮流量控制

§ 暫不考慮擁塞控制

TCP RTT和超時

v■問題:如何設(shè)置定時器的超時時間蒂誉?

v■大于RTT§ 但是RTT是變化的

v■過短:

§ 不必要的重傳

v■過長:

§ 對段丟失時間反應(yīng)慢

v■問題:如何估計(jì)RTT?

v■SampleRTT:測量從段發(fā)出去到收到ACK的時間

§ 忽略重傳

v■SampleRTT變化

§ 測量多個SampleRTT距帅,求平均值右锨,形成RTT的估計(jì)值EstimatedRTT





TCP發(fā)送方事件

v■從應(yīng)用層收到數(shù)據(jù)§ 創(chuàng)建Segment§ 序列號是Segment第一個字節(jié)的編號

§ 開啟計(jì)時器§ 設(shè)置超時時間:TimeOutInterval

v■超時

§ 重傳引起超時的Segment

§ 重啟定時器(只重傳一個超時的那個)

v■收到ACK

§ 如果確認(rèn)此前未確認(rèn)的Segment

? 更新SendBase

? 如果窗口中還有未被確認(rèn)的分組,重新啟動定時器

TCP發(fā)送端程序 (偽碼)









快速重傳機(jī)制

v■TCP的實(shí)現(xiàn)中碌秸,如果發(fā)生超時绍移,超時時間間隔將重新設(shè)置,即將超時時間間隔加倍讥电,導(dǎo)致其很大

§ 重發(fā)丟失的分組之前要等待很長時間

v■通過重復(fù)ACK檢測分組丟失

§Sender會背靠背地發(fā)送多個分組

§ 如果某個分組丟失蹂窖,可能會引發(fā)多個重復(fù)的ACK

v■如果sender收到對同一數(shù)據(jù)的3個ACK,則假定該數(shù)據(jù)之后的段已經(jīng)丟失

§ 快速重傳:在定時器超時之前即進(jìn)行重傳



TCP流量控制





TCP連接管理

v■TCP sender和receiver在傳輸數(shù)據(jù)前需要建立連接

v■初始化TCP變量

§Seq. #

§Buffer和流量控制信息

v■Client:連接發(fā)起者Socket clientSocket = new Socket("hostname","port number");

v■Server:等待客戶連接請求Socket connectionSocket = welcomeSocket.accept();

三次握手協(xié)議:


(1)[endif]第一次握手:Client將標(biāo)志位SYN置為1恩敌,隨機(jī)產(chǎn)生一個值seq=client_isn瞬测,并將該數(shù)據(jù)包發(fā)送給Server,Client進(jìn)入SYN_SENT狀態(tài)纠炮,等待Server確認(rèn)月趟。

(2)第二次握手:Server收到數(shù)據(jù)包后由標(biāo)志位SYN=1知道Client請求建立連接,Server將標(biāo)志位SYN和ACK都置為1恢口,ack=client_isn+1孝宗,隨機(jī)產(chǎn)生一個值seq=server_isn,并將該數(shù)據(jù)包發(fā)送給Client以確認(rèn)連接請求耕肩,Server進(jìn)入SYN_RCVD狀態(tài)因妇。(3)第三次握手:Client收到確認(rèn)后问潭,檢查ack是否為client_isn+1,ACK是否為1婚被,如果正確則將標(biāo)志位ACK置為1狡忙,ack=server_isn+1,并將該數(shù)據(jù)包發(fā)送給Server址芯,Server檢查ack是否為server_isn+1去枷,ACK是否為1,如果正確則連接建立成功是复,Client和Server進(jìn)入ESTABLISHED狀態(tài),完成三次握手竖螃,隨后Client與Server之間可以開始傳輸數(shù)據(jù)了淑廊。

TCP為什么是三次握手,為什么不是兩次或四次特咆?

如果兩次握手的話,客戶端有可能因?yàn)榫W(wǎng)絡(luò)阻塞等原因會發(fā)送多個請求報文,這時服務(wù)器就會建立連接,浪費(fèi)掉許多服務(wù)器的資源.如果四次握手:三次已經(jīng)互相確認(rèn)了可以進(jìn)行連接了季惩,在來一次確認(rèn)浪費(fèi)資源



TCP連接管理:關(guān)閉

Step 1: client向server發(fā)送TCP FIN控制segment

Step 2: server收到FIN,回復(fù)ACK.關(guān)閉連接,發(fā)送FIN.

Step 3: client收到FIN,回復(fù)ACK.

§ 進(jìn)入“等待” –如果收到FIN,會重新發(fā)送ACK

Step 4: server收到ACK.連接關(guān)閉







3.7擁塞控制原理

擁塞(Congestion)

v■非正式定義:“太多發(fā)送主機(jī)發(fā)送了太多數(shù)據(jù)或者發(fā)送速度太快腻格,以至于網(wǎng)絡(luò)無法處理”

v■表現(xiàn):§ 分組丟失(路由器緩存溢出)

§ 分組延遲過大(在路由器緩存中排隊(duì))

v■擁塞控制vs.流量控制











擁塞控制的方法

v■端到端擁塞控制:

§ 網(wǎng)絡(luò)層不需要顯式的提供支持

§ 端系統(tǒng)通過觀察loss画拾,delay等網(wǎng)絡(luò)行為判斷是否發(fā)生擁塞

§TCP采取這種方法

v■網(wǎng)絡(luò)輔助的擁塞控制:

§ 路由器向發(fā)送方顯式地反饋網(wǎng)絡(luò)擁塞信息§ 簡單的擁塞指示(1bit):SNA,DECbit, TCP/IP ECN, ATM)

§ 指示發(fā)送方應(yīng)該采取何種速率

案例:ATM ABR擁塞控制

v■ABR:available bit rate

§ ·“彈性服務(wù)”

§· 如果發(fā)送方路徑“underloaded”?使用可用帶寬

§ ·如果發(fā)送方路徑擁塞?將發(fā)送速率降到最低保障速率

v■資源管理單元RM(resource management cells)

§ 發(fā)送方發(fā)送§ 交換機(jī)設(shè)置RM cell位(網(wǎng)絡(luò)輔助)

?NI bit: rate不許增長

?CI bit:擁塞指示§RM cell由接收方返回給發(fā)送方



v ■在RM cell中有顯式的速率(ER)字段:兩個字節(jié)

§ 擁塞的交換機(jī)可以將ER置為更低的值

§ 發(fā)送方獲知路徑所能支持的最小速率

v ■數(shù)據(jù)cell中的EFCI位:擁塞的交換機(jī)將其設(shè)為1

§ 如果RM cell前面的data cell的EFCI位被設(shè)為1,那么發(fā)送方在返回的RM cell中置CI位

3.8TCP擁塞控制

TCP擁塞控制的基本原理

v■Sender限制發(fā)送速率LastByteSent-LastByteAcked<= CongWin.



v■CongWin:§ 動態(tài)調(diào)整以改變發(fā)送速率§ 反映所感知到的網(wǎng)絡(luò)擁塞

■問題:如何感知網(wǎng)絡(luò)擁塞菜职?

Loss事件=timeout或3個重復(fù)ACKv發(fā)生loss事件后青抛,發(fā)送方降低速率

■如何合理地調(diào)整發(fā)送速率?

加性增—乘性減:?

AIMDv慢啟動: SS

加性增—乘性減: AIMD

v■原理:逐漸增加發(fā)送速率酬核,謹(jǐn)慎探測可用帶寬蜜另,直到發(fā)生lossv

■方法: AIMD§Additive Increase:每個RTT將CongWin增大一個MSS——擁塞避免

§Multiplicative Decrease:發(fā)生loss后將CongWin減半



TCP慢啟動: SS

v■TCP連接建立時,CongWin=1

§ 例:MSS=500 byte,RTT=200msec

§ 初始速率=20k bps

■可用帶寬可能遠(yuǎn)遠(yuǎn)高于初始速率:

§ 希望快速增長

v■原理:

§ 當(dāng)連接開始時嫡意,指數(shù)性增長



v■指數(shù)性增長§ 每個RTT將CongWin翻倍

§ 收到每個ACK進(jìn)行操作v

■初始速率很慢举瑰,但是快速攀升



Threshold變量

■Q:何時應(yīng)該指數(shù)性增長切換為線性增長(擁塞避免)?

A:當(dāng)CongWin達(dá)到Loss事件前值的1/2時.

■實(shí)現(xiàn)方法:v 變量ThresholdvLoss事件發(fā)生時, Threshold被設(shè)為Loss事件前CongWin值的1/2。



Loss事件的處理

v ■3個重復(fù)ACKs:

§CongWin切到一半

§ 然后線性增長v

?■Timeout事件:

§CongWin直接設(shè)為1個MSS

§ 然后指數(shù)增長

§ 達(dá)到threshold后,再線性增長

注:3個重復(fù)ACKs表示網(wǎng)絡(luò)還能夠傳輸一些segments蔬螟,timeout事件表明擁塞為嚴(yán)重

TCP擁塞控制:總結(jié)

■當(dāng)congwin小于Threadhold此迅,發(fā)送方處于滿啟動狀態(tài),congwin以指數(shù)增長旧巾。

■當(dāng)congwin在Threadhold以上耸序,發(fā)送方處于擁塞避免階段,congwin以線性增長

■當(dāng)出現(xiàn)擁塞事件的時候菠齿,Threadhold更新為congwin/2佑吝,congwin為Threadhold大小

■當(dāng)出現(xiàn)超時事件時,Threadhold更新為congwin/2绳匀,congwin設(shè)置為1





TCP性能分析

TCP throughput:吞吐率

v■給定擁塞窗口大小和RTT芋忿,TCP的平均吞吐率是多少炸客?

§ 忽略掉Slow start

■假定發(fā)生超時時CongWin的大小為W,吞吐率是W/RTT

v■超時后戈钢,CongWin=W/2痹仙,吞吐率是W/2RTT

v■平均吞吐率為:0.75W/RTT





TCP的公平性



TCP是公平的


連接1,2的速率增加到擁塞時同時減半,然后有增加殉了,最終會收斂于45°斜線

v■公平性與UDP

§ 多媒體應(yīng)用通常不使用TCP开仰,以免被擁塞控制機(jī)制限制速率

§ 使用UDP:以恒定速率發(fā)送,能夠容忍丟失

§ 產(chǎn)生了不公平

v■公平性與并發(fā)TCP連接

§ 某些應(yīng)用會打開多個并發(fā)連接§Web瀏覽器§ 產(chǎn)生公平性問題v

■例子:鏈路速率為R薪铜,已有9個連接

§ 新來的應(yīng)用請求1個TCP众弓,獲得R/10的速率

§ 新來的應(yīng)用請求11個TCP,獲得R/2的速率

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末隔箍,一起剝皮案震驚了整個濱河市谓娃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蜒滩,老刑警劉巖滨达,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異俯艰,居然都是意外死亡捡遍,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門竹握,熙熙樓的掌柜王于貴愁眉苦臉地迎上來画株,“玉大人,你說我怎么就攤上這事涩搓∥鄹眩” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵昧甘,是天一觀的道長良拼。 經(jīng)常有香客問我,道長充边,這世上最難降的妖魔是什么庸推? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮浇冰,結(jié)果婚禮上贬媒,老公的妹妹穿的比我還像新娘。我一直安慰自己肘习,他們只是感情好际乘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著漂佩,像睡著了一般脖含。 火紅的嫁衣襯著肌膚如雪罪塔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天养葵,我揣著相機(jī)與錄音征堪,去河邊找鬼。 笑死关拒,一個胖子當(dāng)著我的面吹牛佃蚜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播着绊,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼谐算,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了归露?” 一聲冷哼從身側(cè)響起氯夷,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎靶擦,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體雇毫,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡玄捕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了棚放。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枚粘。...
    茶點(diǎn)故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖飘蚯,靈堂內(nèi)的尸體忽然破棺而出馍迄,到底是詐尸還是另有隱情,我是刑警寧澤局骤,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布攀圈,位于F島的核電站,受9級特大地震影響峦甩,放射性物質(zhì)發(fā)生泄漏赘来。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一凯傲、第九天 我趴在偏房一處隱蔽的房頂上張望犬辰。 院中可真熱鬧,春花似錦冰单、人聲如沸幌缝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽涵卵。三九已至浴栽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間缘厢,已是汗流浹背吃度。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贴硫,地道東北人椿每。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像英遭,于是被迫代替她去往敵國和親间护。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 傳輸層-TCP挖诸, TCP頭部結(jié)構(gòu) 汁尺,TCP序列號和確認(rèn)號詳解 TCP主要解決下面的三個問題 1.數(shù)據(jù)的可靠傳輸...
    抓兔子的貓閱讀 4,522評論 1 46
  • 【計(jì)算機(jī)網(wǎng)絡(luò)】傳輸層 傳輸層協(xié)議概述 傳輸層協(xié)議為運(yùn)行在不同host上的進(jìn)程提供了一種邏輯通信機(jī)制。使得端到端不需...
    666真666閱讀 2,004評論 0 4
  • 本書結(jié)構(gòu)是自頂向下的多律,所以請按下列順序閱讀: 1.計(jì)算機(jī)網(wǎng)絡(luò)自頂向下--應(yīng)用層2.計(jì)算機(jī)網(wǎng)絡(luò)自頂向下--運(yùn)輸層3....
    牛富貴兒閱讀 2,768評論 0 3
  • 個人認(rèn)為痴突,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,054評論 0 8
  • 1.這篇文章不是本人原創(chuàng)的狼荞,只是個人為了對這部分知識做一個整理和系統(tǒng)的輸出而編輯成的辽装,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,065評論 6 174