| 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 |
|---|