nccu.mclab 選擇性保證封包到達之通訊 協定設計 student: ming-han wu advisor: yao-nan...
Post on 20-Dec-2015
227 views
TRANSCRIPT
NCCU.MCLab
選擇性保證封包到達之通訊協定設計
Student: Ming-Han WuAdvisor: Yao-Nan Lien
2007
Partial-Reliable TCP
MCLab@NCCU
Outline
• Introduction
• Background/Related Work
• PR-TCP– Basic
– Single side
• Performance Evaluation
• Conclusion
MCLab@NCCU
Outline
• Introduction
• Background/Related Work
• PR-TCP– Basic
– Single side
• Performance Evaluation
• Conclusion
MCLab@NCCU
Introduction
• 隨著網路的進步與發展,許多新興的數位資訊,在網路上傳輸時並未要求每一個封包均確實送達目的地。
• 例如影音資訊,因為使用者不要求,所以影音封包不需每個都要無誤到達。
• 由於影像在網路上傳輸是經過 mpeg 格式壓縮,而 mpeg會將影片壓縮成不同重要程度的影格,若封包遺失,將會造成不同程度的影像品質影響。
MCLab@NCCU
Introduction • Differentiation of packets within an MPEG media stream• MPEG frames
– (I) Intra frame coded, key-frame (max. priority)– (P) Predicted– (B) Bidirectional
• 有 I frames 才能組成 P frames ,而有 I 與 P frames 才能組成 B frames
• frame 的重要程度 :I>P>B 。
MCLab@NCCU
Introduction
• 前述資訊服務類型不須確保所有封包到達,不同重要程度的封包掉了會造成服務品質不同程度的影響。
• UDP 與 TCP 都對所有封包一視同仁,前者不做任何保證,而後者雖可保證所有封包的送達,但效率較差。
MCLab@NCCU
Introduction
• UDP vs. TCP( 在網路情況差,資源不足情況下 )– UDP
• 封包傳輸速率都相同,無法根據網路狀況來調節封包傳送速度,可能會讓網路狀況更差。
• 沒有重傳的機制,封包遺失掉落時不做任何處理。
– Impact of transmitting video data• 因為不保證資料能準確到達,且不對遺失的封包做
處理,當重要性高的封包遺失,影像品質大打折扣。
MCLab@NCCU
Introduction
• UDP vs. TCP( 在網路情況差,資源不足情況下 )– TCP
• 可以根據網路狀況來調整封包傳輸速率。• 有重傳機制,所以能夠確保每個封包準確到達。
– Impact of transmitting video data• 保證封包到達,當封包遺失,啟動重傳機制,但重
傳封包 delay time 會較高,可能封包到了也已經失效。
MCLab@NCCU
Introduction
• 由上述得知– UDP 一視同仁不保護封包 => 重要的封包遺失– TCP 一視同仁保護封包 =>delay time 拉長– 都無法適用於封包有重要等級之分的資訊服務。
– 如果我們選擇性保護封包 ?
MCLab@NCCU
Introduction
Our Motivation 提出一個有選擇性保證封包傳送機制的TCP , Partial-Reliable TCP ,能根據封包的不同重要程度,選擇性保證封包傳達,配合上層應用程式的需求,可以在網路狀況較差的情況下,達到應用程式的服務品質。
MCLab@NCCU
Outline
• Introduction
• Background/Related Work
• PR-TCP– Basic
– Single side
• Performance Evaluation
• conclusion
MCLab@NCCU
Outline
• Introduction
• Related Work
• PR-TCP– Basic
– Single side
• Performance Evaluation
• conclusion
MCLab@NCCU
PR-TCP-basic
• Design Objective– 在封包遺失時,配合 AP 的需求,根據遺失封
包的不同重要程度,做選擇性的重傳,在網路狀況不好的情況下,維持資訊服務品質 。
MCLab@NCCU
PR-TCP-basic
• Design issue– 如何調控速度 ?– 如何應付網路壅塞 ?– 如何只重傳較重要的封包 ?– 如何讓重傳能更有效率 ?– 如何降低 delay time?
MCLab@NCCU
PR-TCP-basic
• Protection class– 在 PR-TCP-basic 中將封包分為三個種類 :
• Regular: 一般性的封包。• Certified: 在時效內是重要的封包,過了時效就不重
要。• Registed: 重要的封包,必須確保無誤送達。
– 在 packet header 新增以下欄位 :• pt: 記錄 packet 的 type 。• B_pt: 記錄前一個 packet 的 packet type 。• N_pt: 記錄下一個 packet 的 packet type 。• 讓 PR-TCP 兩端知道傳送封包的種類。
MCLab@NCCU
PR-TCP-basic
– Set PSH==1• 封包所攜帶的資料就會被直接上遞給上層的應用程
式而無需經過 TCP 處理了 。
– 延伸 TCP Sack ,修改傳送端與接收端 , 在 TCP header 加入 SACK 選項 . 允許接收回傳目前已經連續收到的區段 . 傳送端可藉由這些資訊得知那些 packet 是沒被收到的並直接重送。
MCLab@NCCU
PR-TCP-basic
• Slow Start(CWND < Threshold)– 當 connection 建立以後, cwnd
大小以加倍的方式增加速率,直到 loss 的產生
• Congestion Avoidance
(CWND > Threshold)– AIMD (additive increase and mu
ltiplicative decrease)
• Fast Selective Retransmit & Fast Recovery– 當封包遺失,降低傳送速度– 僅重傳指定封包。
Slow Start
time out
Packet loss
Congestion Avoidance
(RTT)
threshold
threshold
MCLab@NCCU
PR-TCP-basic
• Packet Retransmission:• Registed
– 傳送端判斷遺失的封包如果是 Registed ,則重傳。
• Certified– 傳送端判斷遺失的封包如果是 Certified ,則在有限時效內
重傳。– If (packet life==0) do not retransmit; Else retransmit ; packet life -- 。
• Regular– 傳送端判斷遺失的封包如果是 Regular ,則不重傳。接收
端判斷遺失的封包中如果是 Regular ,則不等待此封包。
MCLab@NCCU
PR-TCP-basic
Packet Life Control scheme (suitable for Certified class)
– 在 packet header 裡新增一個欄位” TL” ( Time Limit ) 記錄封包重傳時間限制
• Registed 的封包,設定 TL 為 0 ,此封包必須無誤到達。• Certified 的封包,設定 TL 為非 0 值,超出 TL 則放棄重傳。
– FNP( forward Next Packet )message:• 告知接收端,已經不再重傳了。• 當接收端收到 fnp 時當做此封包已收到,不再等待。
MCLab@NCCU
PR-TCP-basic
Sender Receiver
123
X4 ACK1
ACK4
5
ACK5
X
23
XACK2
封包2的重傳等待時間
封包3的重傳等待時間
Time’s up
Time’s up
FWD NP2
FWD NP3
MCLab@NCCU
PR-TCP-basic
PR-TCP state diagram
CA FF
Start
CWND>=
SSTHRESH
Duplicate Ack
Time out
SS
New Ack/Coarse gained time out
New Ack
Packet loss/time out
Packet loss/Timeout
New Ack/regular
• Slow Start(SS)• Congestion Avoidance (C
A)• Fast Selective Retransmit
and Fast Recovery (FF)
MCLab@NCCU
PR-TCP-basic事件 狀態 PR-TCP 傳送端的行為 說明
接收到先前還未收到的 ACK
慢啟動階段 (SS)
(1)CWND=CWND*2(2)當 CWND > threshold時,進入 congestion avoidance階段
在每一個 RTT便增加一倍。
接收到先前還未收到的 ACK
擁塞避免階段(CA)
CWND=CWND+1 在每一個 RTT, CWND呈線性增加。
封包遺失判斷 (SS & CA)
(1)threshold = CWND*(1/2)(2)CWND = threshold(3)進入 congestion avoidance階段
快速回覆以及減半降速。
逾期 (time out) (SS & CA)
(1)threshold = CWND*(1/2)(2)CWND = 1(3)進入 Slow Start 階段
進入 Slow Start 階段。
MCLab@NCCU
PR-TCP-basic
接到 Ack 的反應
MCLab@NCCU
PR-TCP-basic
• Basic version:– 更改傳送端及接收端的通訊協定。– 可以根據網路狀況調整傳送速度,減緩網路壅
塞情況。– 有效的達到部份保護封包的目的,讓 AP 更有彈性的應用。
– 但是,改變兩端的通訊協定,較難推行。
MCLab@NCCU
Outline
• Introduction
• Related Work
• PR-TCP– Basic
– Single side
• Performance Evaluation
• conclusion
MCLab@NCCU
PR-TCP-single side
• Design Objective– PR-TCP-single side 只需更改一端的 TCP ,可
以應用在如 client/server 這種一對多架構中,只需更改 server 端的 TCP ,而 client 端可以使用原本 TCP ,不用作變更。
MCLab@NCCU
PR-TCP-single side
• Design issue– 如何調控速度 ?(same with TCP-Reno)– 如何應付網路壅塞 ?(same with TCP-Reno)
– 當封包遺失• 如何避免重傳較不重要封包造成 delay time?
– 接收端沒收到 packet 會等待,並要求重送
MCLab@NCCU
PR-TCP-single side
• Protection class– 在 PR-TCP-single side 中將封包分為兩個種類 :
• Regular: 一般性的封包。• Registed: 重要的封包,必須確保無誤送達。
– 在 packet header 新增以下欄位 :• pt: 記錄 packet 的 type 。
– Set PSH==1• 封包所攜帶的資料就會被直接上遞給上層的應用程
式而無需經過 TCP 處理了 。
MCLab@NCCU
PR-TCP-single side
• TCP header size V.S. TCP Packet size– Header size: 20byte– Packet size: 1500byte– Header size <<<<<< Packet size
• 如果複製多個僅有 header 的 packet 傳送,是否可以接收端因為 packet loss 而 等待的機會 ?
MCLab@NCCU
PR-TCP-single side
• Analysis of duplicate header 、 time out and loss rate 。
MCLab@NCCU
PR-TCP-single side
• 因為 header 的大小遠小於 packet 大小,多傳送僅有 header 的 packet 不會增加太高的 overhead ,但是可以在網路狀況比較不好的情況下減低傳送端 time out 的機會。
• TCP 接收端如果接收到重複號碼的封包會直接 drop ,不會造成影響。
• 如果 TCP 接收端收到的封包,是沒有 payload 的,上層的 AP 會做處理。
MCLab@NCCU
PR-TCP-single side PP(Packet Protection) scheme
Red: Registed White:Regular
– Registed:複製含有 header及部分 payload 的封包– Regular:複製多個僅含有 header 的封包
1
3 2 14
1 234 23 1 13
MCLab@NCCU
PR-TCP-single side
• Packet Retransmission:• Registed
– 傳送端判斷遺失的封包如果是 Registed ,則重傳。
• Regular– 傳送端判斷遺失的封包如果是 Regular ,則重傳只有 head
er 的封包。
MCLab@NCCU
PR-TCP Packet loss recovery scheme
為了避免封包損傷導致太多的資料重傳,在每 n 個封包之後,加上一個同位封包 (Parity Packet) ,當一個 Segment中任何一個封包發生遺失時,就可利用同位封包將所遺失的封包還原
MCLab@NCCU
Outline
• Introduction
• Related Work
• PR-TCP– Basic
– Single side
• Performance Evaluation
• conclusion
MCLab@NCCU
Performance evaluation
• 實驗設計
• 實驗工具– 在 NS-2軟體上做模擬
• 實驗方法– 拓樸環境由 3~10 個節點組成,依各個子實驗分別調整不同的參數並觀察其結果
– 在部份子實驗中以具有 burst 性質的訊務加入其中以增加網路的變化
– 以 TCP Reno , TCP Vegas , UDP , 做為對照組
參數 範圍
節點數目 3~10
連結頻寬 1~10Mbps
Packet size 1000bytes
traffic load 300~900Kbps
• 實驗參數
MCLab@NCCU
Performance evaluation
• 可解畫面比例 (the fraction of decodable frames)– 傳送的畫面中,有多少比例的畫面是可以被解出來的,
當接收端接受到一個畫面的資料量超過一個門檻,認為此畫面是可以直接被解壓縮的,但是一個畫面可以真正被解壓縮,除了接收的資料量到達門檻外,這個畫面所參考的畫面也要是可被解壓縮的。
– 畫面可解壓縮的條件– 門檻值 :0~1(ap 定義 ) ,允許幾% 的資料遺失– I-frame: 只要收到的資料量超過門檻即可– P-frame: 資料量超過門檻外,所參考的 I-frame 也要可解壓縮
– B-frame: 資料量超過門檻外,所參考的 I-frame , P-frame 也要可解壓縮
MCLab@NCCU
Performance evaluation
• Peak signal-to-noise ratio( PSNR) , 峰值訊雜比,是一個較為大眾認可的影像品質評鑑客觀指標,計算方式為 :
比較原始影像 S和目的影像 D 的亮度部份 Y 。
這個值越大,表示目的影像和原始影像的差距越小,也就是畫面品質越好,以下為計算公式 :
col rowN
i
N
jDS
rowcol
peak
dB
jinYjinYNN
V
nPSNR
0 0
2
10
,,,,1
log20
)(
MCLab@NCCU
實驗 1: 影片中 I 、 P 、 B frame
的封包數量解析
Foreman 實驗短片
MCLab@NCCU
實驗 1: 影片中 I 、 P 、 B frame的封包數量解析
Stefan 實驗短片
MCLab@NCCU
實驗 2A
• 調整 source跟 destination 之間的 hop 數• 觀察
– Delay time– 可解畫面數– PSNR 值– 影像觀察
UDP(512kbps) burst traffic at 4 、 9 sec.
MCLab@NCCU
PR-TCP 與其他通訊協定的 delay time比較
path 越長的情況下, delay time 越長
PR-TCP 的 delay time 略高於 UDP ,低於 TCP
MCLab@NCCU
PR-TCP 與其他通訊協定的可解畫面數比較
Path 越長,可解畫面數越低
PR-TCP 的可解畫面數皆高於其他通訊協定
MCLab@NCCU
PR-TCP 與其他通訊協定的PSNR 值的比較
Path 越長, PSNR 值越小
PR-TCP 的 PSNR 值在 path 較長的情況下 PSNR 值較其他通訊協定高
MCLab@NCCU
實驗 2B
• 調整 2-3 之間的 lose rate• 觀察
– Delay time– 可解畫面數– PSNR 值
UDP(512kbps) burst traffic at 4 、 9 sec.
MCLab@NCCU
PR-TCP 與其他通訊協定的 delay time比較
Loss rate 越大, delay time 越長
MCLab@NCCU
PR-TCP 與其他通訊協定的可解畫面數比較
Loss rate 越大,可解畫面數越低
MCLab@NCCU
PR-TCP 與其他通訊協定的PSNR 值的比較
Loss rate 越大, PSNR 值越小
PR-TCP 的 PSNR 值高於其他通訊協定
registed 的數量越多 PSNR 值越高
MCLab@NCCU
PR-TCP 與其他通訊協定的影像模擬比較
foreman PR-TCP (i+p)
MCLab@NCCU
PR-TCP 與其他通訊協定的影像模擬比較
PR-TCP (i) PR-TCP (ss)
MCLab@NCCU
PR-TCP 與其他通訊協定的影像模擬比較
UDP TCP Reno
MCLab@NCCU
Outline
• Introduction
• Related Work
• PR-TCP– Basic
– Single side
• Performance Evaluation
• Conclusion
MCLab@NCCU
conclusion• 透過了模擬實驗, PR-TCP 可以有效的達到選擇性保證封
包傳達的目的,能有效的確保重要封包的到達又不會因為當不重要封包遺失而浪費時間重傳。
• 並且我們在應用層上加上自動重建遺失之封包、降低 packet loss 的機會。
• 以 video conference 傳輸為例,在網路的資源較少,壅塞狀況較嚴重的情況之下,比 TCP最多降低約 25% 的 aaplication delay time ,比 UDP及 TCP 在影像品質 PSNR 值最多提升 15% 。
NCCU.MCLab
Q&A