Hop-by-Hop_TCP |
---|
Outline |
---|
TCP |
---|
TCP |
---|
慢啟動 (Slow Start) |
---|
TCP 的設計目標 |
---|
TCP實作相關的RFC文件 |
---|
TCP on MANET |
---|
The Causes of Packet loss on MANET |
---|
Slowness問題 |
---|
Packet Retransmission |
---|
Local Packet Retransmission |
---|
Split TCP |
---|
Hop-by-Hop TCP |
---|
Related Work |
---|
ATCP |
---|
TCP Muzha |
---|
Adaptive CWL (Congestion Window Limit) |
---|
The Transport Layer Revisited |
---|
Comments to Other Work |
---|
Summary |
---|
Our Approach |
---|
Hop-by-Hop TCP |
---|
Design Objectives |
---|
Design Issues |
---|
End-to-End TCP |
---|
One-Hop TCP |
---|
One-Hop TCP |
---|
End-to-End ACK |
---|
One-Hop TCP接收Local ACK流程 |
---|
One-Hop TCP接收資料封包流程 |
---|
One-Hop TCP狀態轉移 |
---|
One-Hop TCP機制 |
---|
One-Hop TCP演算法虛擬碼(Pseudo code) |
---|
Overhead Reduction |
---|
802.11 MAC Layer 4-Way Handshake |
---|
Performance Evaluation |
---|
實驗設計 |
---|
實驗一 拓樸及參數 |
---|
Change of Congestion Window Size |
---|
Change of Congestion Window Size |
---|
time at different number of hops |
---|
Throughput at different number of hops |
---|
Effect of Piggybacking |
---|
在傳送端重傳比率之比較 |
---|
Summary of Experiment 1 |
---|
實驗2 Fairness Test |
---|
and Parameter for Fairness Test |
---|
Jain's Fairness Index |
---|
Fairness Test 2A |
---|
Fairness Test 2B |
---|
Fairness Test 2B |
---|
Summary of Fairness Test |
---|
Conclusion |
---|
Outline |
---|
TCP |
---|
網路上被廣為使用的端對端傳輸層協定
Reliable, in-order
| Connection-oriented
| Flow controlled
| |
---|
TCP |
---|
慢啟動 (Slow Start) |
---|
TCP 的設計目標 |
---|
TCP實作相關的RFC文件 |
---|
RFC number | Topic
793
| Transmission Control Protocol
| 1323
| TCP Extensions for High Performance
| 2018
| TCP Selective Acknowledgement Options
| 2581
| TCP Congestion Control
| 2914
| Congestion Control Principles
| 3168
| The Addition of Explicit Congestion Notification (ECN) to IP
| 3390
| Increasing TCP's Initial Window
| 3782
| The NewReno Modification to TCP's Fast Recovery Algorithm
| |
---|
TCP on MANET |
---|
The Causes of Packet loss on MANET |
---|
Slowness問題 |
---|
Packet Retransmission |
---|
Local Packet Retransmission |
---|
從Sender重傳 | 從Local重傳
| ![]()
| ![]() |
---|
Split TCP |
---|
Hop-by-Hop TCP |
---|
Related Work |
---|
ATCP |
---|
Persist State | by ICMP message
Congestion Control State
| by ECN message
| Retransmit State
| by packet loss without ECN flag
| |
---|
TCP Muzha |
---|
Adaptive CWL (Congestion Window Limit) |
---|
The Transport Layer Revisited |
---|
Comments to Other Work |
---|
Summary |
---|
Our Approach |
---|
Hop-by-Hop TCP |
---|
End-to-End TCP | running on sender and receiver
One-hop TCP
| running on each intermediate nodes
| |
---|
Design Objectives |
---|
Design Issues |
---|
End-to-End TCP |
---|
One-Hop TCP |
---|
One-Hop TCP |
---|
End-to-End ACK |
---|
End-to-End ACK: | 傳統TCP中Receiver傳送至Sender的ACK
提昇End-to-End ACK 存活率之機制:
| Receiver端使用One-Hop TCP機制,將End-to-End
ACK一站一站確保傳輸成功,傳送至Sender端
|
| ![]() |
---|
One-Hop TCP接收Local ACK流程 |
---|
One-Hop TCP接收資料封包流程 |
---|
One-Hop TCP狀態轉移 |
---|
One-Hop TCP機制 |
---|
Event | Status | Actions taken in the receiving node | Next state
Receive a packet when flag
no_packet_outgoing is false
| Ready
| 檢查是否重複封包,若不是則暫存此封包;
回覆此封包之Local ACK,若反方向有封包欲傳送,
則piggyback上去
| Buffer the new packet; if there is any packet to be sent in another direction, piggyback it, if not, return LACK Ready
| Receive a packet and no packet is outgoing
| Ready
| 檢查是否重複封包,若不是則暫存此封包;
回覆此封包之Local ACK,若反方向有封包欲傳送,
則piggyback上去;送出封包、啟動計時器
| Buffer the new packet; if there is any packet to be sent in another direction, piggyback it, if not, return LACK, send the packet, and start timer Wait
| Local Timeout and retry count < 6
| Wait
| 重傳逾時的封包;重新啟動計時器
| Retransmit the Timeout packet; restart timer Wait
| Local Timeout and retry count > 5
| Wait
| 從暫存器清除重傳超過五次的封包;停止計時器
| Purge the packet that retransmits over five times from buffer; stop timer Done
| Receive a LACK from downstream node
| Wait
| 清除暫存器內相對應封包;停止計時器
| Purge the packet from buffer; stop timer Done
| Other Packet in Buffer
| Done
| 送出暫存器內的下一個封包,並啟動計時器
| Send the next packet from buffer; start timer Wait
| Buffer empty
| Done
| 設定為無封包正在傳送,等待接收下一個封包
| Set flag no_packet_outgoing to true; wait the next packet Ready
| |
---|
One-Hop TCP演算法虛擬碼(Pseudo code) |
---|
Receive ( Packet ){ if ( Data ) { ReturtLACK ( ) ; if ( NewPacket_ == True ) { BufferPacket ( ) ; } if ( isdataoutgoing_ == False ) { SendPacket ( ) ; Isdataoutgoing == True; } } if ( LACK ) { PurgeBuffer ( ) ; if ( Buffer == NULL ) { set isdataoutgoing == False ; } else { SendPacketInBuffer ( ) ; } } } |
---|
Overhead Reduction |
---|
Forward dats stream | Backward dats stream
| |
| ![]() |
---|
802.11 MAC Layer 4-Way Handshake |
---|
Performance Evaluation |
---|
實驗設計 |
---|
控制變數 | hop count | error rate | buffer size |
---|
HbH 和 Reno共存的情形
觀察有多個Hop-by-Hop TCP flow並存時的情形
| |
---|
實驗一 拓樸及參數 |
---|
Parameter | Range
Buffer Size
| 50 packets
| CWND Upper Bound
| 4
| Link Bandwidth
| 0.5~1 Mbps
| Error Rate
| 0.0~0.2
| Number of Nodes
| 5~11
| MAC Protocol
| 802.11
| Routing Algorithm
| DSR
| |
---|
Change of Congestion Window Size |
---|
Change of Congestion Window Size |
---|
time at different number of hops |
---|
error rate = 0.0 | error rate = 0.1
| ![]() | ![]() error rate = 0.2
| | | ![]()
在封包容易遺失的MANET中,
遺失的封包直接從local端快速重傳而不必由sender端重傳
能縮短20%以上的Delay time
| |
---|
Throughput at different number of hops |
---|
error rate = 0.0 | error rate = 0.1
| ![]() | ![]() error rate = 0.2
| | | ![]()
在封包容易遺失的MANET中,中間節點一站一站
確保傳送成功,使得封包到達的機率提升,
能提升25%以上的throughput
| |
---|
Effect of Piggybacking |
---|
在傳送端重傳比率之比較 |
---|
error rate = 0.0 | error rate = 0.1
| ![]() | ![]() |
---|
Summary of Experiment 1 |
---|
實驗2 Fairness Test |
---|
Test 2A | 測試不同 TCP 版本共存時之公平性
Test 2B
| 測試不同時間啟動使用同一TCP 之flow 的公平性
| |
---|
and Parameter for Fairness Test |
---|
Topology | Parameter | Range
| ![]() Buffer Size
| 50
| Error Rate
| 0.1
| Link Bandwidth
| 1 Mbps
| Number of hops
| 4, 6, 8
| MAC Protocol
| 802.11
| Routing Algorithms
| DSR
| |
---|
Jain's Fairness Index |
---|
x i is the flow throughput of flow i
equal partitioning of bandwidth achieves index of 1
| If only k of n flows receive equation bandwidth
(and others get non) index is k/n
| |
---|
Fairness Test 2A |
---|
NewReno vs. Vegas (Throughput) | NewReno vs. Hop-by-Hop TCP (Throughput)
| ![]() | ![]() Jain's Fairness Index
| |
| ![]() | |
---|
Fairness Test 2B |
---|
Protocol | Throughout Dynamics | Jain's Index Dynamics
HbH | TCP | ![]() | ![]() TCP | Vegas | ![]() | ![]() TCP | NewReno | ![]() | ![]() |
---|
Fairness Test 2B |
---|
Summary of Fairness Test |
---|
Conclusion |
---|