33
KRnet 2003 1 TCP for MANET 김동균 경북대학교 컴퓨터공학과 [email protected]

TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 1

TCP for MANET

김동균

경북대학교 컴퓨터공학과

[email protected]

Page 2: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 2

발표 내용

기존 TCP 적용의 문제점

해결 방안들 TCP-Feedback

ELFN-based Approach

ATCP

TCP-BuS

Fixed RTO

TCP DOOR

결론

Page 3: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 3

Transmission Control Protocol

Reliable End-to-end Transport Protocol

Congestion Control

Slow Start

Congestion Avoidance

Variants of TCP

TCP-Tahoe, TCP-Reno, TCP-SACK, TCP-Vegas, etc

Page 4: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 4

Slow-start and Congestion Avoidance

0

2

4

6

8

10

12

14

0 1 2 3 4 5 6 7 8

Time (round trips)

Co

ng

esti

on

Win

do

w s

ize

(seg

men

ts)

Slow-start

Congestion-avoidance

Page 5: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 5

Timeout Mechanism

0

5

10

15

20

25

0 3 6 9 12 15 20 22 25

Time (round trips)

Co

ng

esti

on

win

do

w (

seg

men

ts)

ssthreshold = 8

cwnd = 20

ssthreshold = 10

timeout

Page 6: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 6

Fast Recovery

0

2

4

6

8

10

0 2 4 6 8 10 12 14

Time (round trips)

Win

do

w s

ize

(seg

men

ts)

Page 7: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 7

Internet TCP

Wired Network에 적합하도록 설계

Low BER (Bit Error Rate)

Loss 는 대부분 Congestion으로 인해 발생

Connection 이 진행되는 동안에 경로는 대부분 고정되어 있음

Page 8: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 8

MANET에 기존 TCP 적용의 문제점

Link 계층에서의 문제

MAC 계층으로 인한 TCP 영향

높은 BER

Network 계층에서의 문제

잦은 경로변화

Network Partition 발생

Multi-path Routing으로 인한 Out-of-order Message 전송

Page 9: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 9

MAC 계층으로 인한 TCP 영향

• Hidden Terminal or Exposed Problem • Carrier Sensing Range : 200 m • Interference Range : 550 m

• A-B 간의 데이터 전송에 Interference 발생 가능성

Page 10: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 10

Hidden and Exposed Nodes

1 2 3 4 5

1 2 3 4 5

Sender

Sender

Receiver

Receiver

Transmission

Hidden

RTS

Exposed RTS : no transmission

• Forward data segment 전달에 영향을 주는 경우

• Backward ACK segment 전달에 영향을 주는 경우

Transmission

Page 11: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 11

높은 BER로 인한 영향

Bit Error 가 패킷들이 Corrupted 되어 Dropped 되게 함

TCP 세그먼트나 ACK 의 손실 유발

Fast Retransmit 혹은 RTO 발생 가능성

계속적인 Error는 송신 노드의 Congestion Window 값을 작게 만들어 처리율 감소를 일으킴

Page 12: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 12

Network Partitioning 영향

송신 노드와 수신 노드가 노드들의 이동으로 인해 서로 다른 Partition에 위치하게 된다.

연속적인 Timeouts 발생

S

D

S

D

At time t0

At time t1

Page 13: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 13

경로 변화로 인한 영향

새로운 경로를 찾는 시간이 TCP 송신 노드의 RTO 값 보다 더 클 수가 있다

또한 경로 변화로 인해 packets들이 순간적으로 수신 노드에 out-of-order 로 도착할 수 있다.

S

D

A

B

Time t0

S

A

B

D

Time t1

Page 14: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 14

Multi-path Routing 의 영향

Some routing protocols (such as TORA) maintain multiple routes between source destination pairs

This sometimes results in a significant number of out-of-sequence packets

This may trigger the fast retransmit mechanisms.

Page 15: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 15

TCP-Feedback

두 가지 상태 존재: Active and Snooze

RFN (Route Failure Notification) Message makes the sender switch into snooze state. Stopping sending further messages and

freezing all values like retransmission timers and congestion window size

RRN (Route Reestablishment Notification) Message makes the sender come into normal active state Resume all timers and variables.

Page 16: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 16

동작 예(1/4)

Source

Dest

Source

FP

Dest

Page 17: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 17

동작 예(2/4)

Source

FP

Dest

RFN

Source

FP

Dest

Discard RFN

Reroute packets

Page 18: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 18

동작 예(3/4)

Source

Dest

RFN

Source

Dest •Stop sending further packets

•Freeze all timers, window

•Starts a route failure timer

Page 19: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 19

동작 예(4/4)

Source

Dest

RRN

Source

Dest

•Restarts timers from frozen values

•Resumes transmission

Page 20: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 20

ELFN-based approach

Explicit Link Failure Notification message

Stand-by mode similar to snooze state of TCP-Feedback

Instead of using RRN, a packet is sent periodically to probe the network to see if a route has been established.

좀 더 정확한 Probe interval 값 요구

Page 21: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 21

Probe timer 선택

• The smaller the gap between packets, the better the throughput

Page 22: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 22

Probe packets 사용

Intuitive - Send the first packet in window

Optimistic - Send the packet with lowest sequence number among the packets signaled as lost

No significant difference observed

Page 23: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 23

ATCP (Ad hoc TCP)

표준 TCP 수정 없이 지원

A thin layer, ATCP between TCP and IP

Network 계층의 feedback 존재 :

ICMP: The Destination Unreachable ICMP message indicates route disruption

ECN: Indicates network congestion

With ECN enabled, time out and 3 dup ACKs are assumed to no longer be due to congestion

Page 24: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 24

ATCP in the TCP/IP protocol stack

TCP

IP

Link layer

TCP

IP

Link layer

A-TCP

Sender Receiver

Page 25: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 25

ATCP 특징

High BER 일 경우: Retransmits lost segments without shrinking the

congestion window.

경로 변화 혹은 partition 으로 인한 지연 : Stops transmitting and resumes when a new route

is found.

Multi-path를 이용하는 경우: On receipt of dup ACKs, TCP sender should not

invoke congestion control, because multi-path routing shuffles the order in which segments are received.

Page 26: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 26

TCP/ATCP Behavior

RTO 발생 혹은 3rd dup ACK 수신 시:

Retransmits unACKed segments

ECN flag를 가진 ACK 수신 시:

Invokes congestion control

Destination Unreachable ICMP message 수신 시:

Stops transmission

Wait until a new route is found resume transmission

ATCP monitors TCP state and spoofs TCP in such a way to achieve the above behaviors

Page 27: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 27

State Transition Diagram

Disconnected

Normal

Congested Loss

TCP transmits

a segment

Receive

ECN

RTO about

to expire OR

3 dup ACKs

New ACK

Receive

“Destination

Unreachable”

ICMP

CWND 1

Receive dup

ACK or packet

from receiver

ATCP

retransmits

segments in

TCP’s buffer

TCP Sender is put in

persist mode

Start here

Page 28: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 28

동작 예 Plain TCP ATCP

After 5 RTTs, 15 segs. transmitted

5th RTT

4th RTT

3rd RTT

2nd RTT

1st RTT

After 5 RTTs, 9 segs. transmitted

1

ACK1

4 lost

4

ACK7

4 lost

5th RTT

4th RTT

3rd RTT

2nd RTT

1st RTT

1

ACK1

Page 29: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 29

TCP-BuS (BUffering capability and Sequence information)

Explicit notification, Selective Retransmission, Extending timeout values, Avoiding unnecessary request for fast retransmission

Taking advantage of Buffering Effect at Intermediate Nodes

주로 intermediate node 에서의 route extension 하는 routing protocol에 적합 (예, ABR)

Page 30: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 30

Fixed RTO

Route failure recovery 가 Routing algorithm에 의해서 최대한 빨리 이루어진다고 가정함

불필요한 long recovery 지연을 발생할 가능성 있는 Exponential Backoff 방법 회피

Timeout 발생 시 TCP sender는 RTO 를 일단 두 배로 증가. 만약 missing packet 이 새로운 RTO 시간 안에 도착하지 않으면 해당 packet이 계속해서 재전송 되지만 RTO 는 더 이상 증가 안 됨. 경로가 새롭게 발견되고 재전송된 packet이 acknowledged 될 때까지 고정됨.

Page 31: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 31

TCP-DOOR (Detection of Out-of-Order and Response)

TCP Code 수정을 요구하지만 중간 노드들의 cooperation 이 필요 없음.

Out-of-order (OOO) packets 수신을 통한 Link failure 감지

TCP 수신 노드가 OOO 감지시 송신 노드에게 ACK 패킷의 OOO bit 를 통해 통보

Temporarily Disabling Congestion Control

OOO 통보를 받은 후 T1 시간 동안 RTO 와 CWND 와 같은 state variable 를 keep

Instant Recovery during Congestion Avoidance

OOO 통보를 받은 후 TCP 송신 노드는 지난 T2 시간에 Congestion Control Mechanism이 발생 했는지 여부를 조사.

만약 Congestion Control 수행했다면 Congestion 때문이 아니라 Route change 로 인한 결과임을 숙지 하고 Congestion Control 이전의 state variable 을 그대로 사용

Page 32: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 32

결론

Reliable transport protocol

TCP 수정 요구 (Route Failure, High BER, Network Partition,….)

중간 노드의 도움을 받는 방법 vs. End-to-end 로 해결 가능한 방법

TCP-F, TCP-ELFN, ATCP and TCP-BuS vs. Fixed RTO and TCP-DOOR

기존 TCP 수정 필요 vs. 수정 없이 지원

ATCP

Page 33: TCP for MANET · 2012-05-09 · Resume all timers and variables. KRnet 2003 16 동작 예(1/4) Source Dest Source FP Dest . KRnet 2003 17 동작 예(2/4) Source FP Dest RFN Source

KRnet 2003 33

참고자료

Nitin H. Vaidya Tutorial 자료 http://www.crhc.uiuc.edu/~nhv K. Chandran et. al., “A Feedback-based scheme for improving TCP Performance in ad hoc wireless networks,” IEEE Personal Comm. Magazine, Feb., 2001. T.D.Dyer, R.V.Boppana, “A Comparision of TCP Performance over three routing protocols for Mobile Ad Hoc Networks,” ACM MOBIHOC, 2001. G. Holland and N. Vaidya, “Analysis of TCP Performance over mobile ad hoc networks,” ACM MOBICOM ’99, 1999. J. Liu and S. Singh, “ATCP: TCP for mobile ad hoc networks,” IEEE JSAC, July, 2001. D. Kim, C.-K. Toh and Y.Choi, “TCP-BuS: Improvement of TCP Performance in Mobile Ad Hoc Networks,” Journal of Communication Networks, 2001. F.Wang and Y.Zhang, “Improving TCP Performance over Mobile Ad Hoc Networks with Out-of-Order Detection and Response,” ACM MOBIHOC, 2002.