Subject: RE: [manet] Interactions between TCP and Routing

From: "Giorgio Mulas" <[email-masked]>
Date: Thu, 10 Mar 2005 17:56:10 +0100

Hi,
IMHO there is no problem with that. Network layer purpose is providing a route (possibly the best route for a defined metric) to the packets, transport layer takes care about losses and order of the "packets". The two roles are complementary.
 
Giorgio

------------------------------------------
Giorgio Mulas | Consultant

CEFRIEL  Politecnico di Milano
Via Fucini, 2 · 20133 Milano (Italy)

p. +39 02 23954 265
f. +39 02 23954 465
e. [email-masked]

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On Behalf Of Pietro Michiardi
Sent: giovedì 10 marzo 2005 17.33
To: [email-masked]
Subject: [manet] Interactions between TCP and Routing

Dear MANET people, 
I have a question for you.

I've run a test on GlomoSim for an ad hoc network formed by 4 nodes placed in the following scenario: 

            n2 

n1                         n3 

            n4 

n1 has 2 neighbors: n2,n4 
n3 has 2 neighbors: n2,n4 
n2 has 2 neighbors: n1,n3 
n4 has 2 neighbors: n1,n3 

There is NO MOBILITY.
Nodes use the DSR routing protocol (implemented in a pretty old version, v.3 to be precise) 

Now suppose n1 wants to send 10 items to n3 using a FTP session (over TCP). 

Running my simulations, I have noticed the following:
 
1- it happens that n1 selects route <n1,n2,n3> to send FTP items, while n3 performs a new route discovery and selects route <n3,n4,n1> to send back acks. 
Actually, TCP SYN is sent on the former route and TCP SYN ACK is sent on the latter: the three-way TCP handshake is performed on two different routes. 

2- in some other cases (it depends on the simulation SEED parameter) the 3-way handshake is carried out on the same route. 

3- it might happen that TCP DATA ACK are sent on a different route than the one used by actual data.

Reading some DSR documents, I found that route request piggybacking is not implemented for such short messages (section 4.2 of the original paper by D. Johnson).

I have run few experiments to see if there are any variations on classical performance metrics such as trhoughput and delay. Apparently there are very small differences, probably due to the simplicity of the simulation scenario.

Ok, here are my questions:
- Do you guys see any problems with that?
- Did any of you make any similar experiments?
- Does this apply to any other ad hoc routing protocol? OLSR? (i didn't run tests since I have no olsr implementation in glomosim)
- Could performance be an issue in a more complex scenario?
- What about node mobility? Wouldn't it be better to take the same route for data and acks?

Thanks for your help! 
Pietro 

_______________________________________________
manet mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/manet

---

From: David Young <[email-masked]>
Date: Thu, 10 Mar 2005 15:32:25 -0600

On Thu, Mar 10, 2005 at 05:56:10PM +0100, Giorgio Mulas wrote:
> Hi,
> IMHO there is no problem with that. Network layer purpose is providing
> a route (possibly the best route for a defined metric) to the packets,
> transport layer takes care about losses and order of the "packets". The
> two roles are complementary.

It is fine for a simulation, but there may be real-world operational
problems.  When paths are not symmetric, it may be more difficult to
interpret results from network diagnostic tools like traceroute(8).
This shouldn't hold you back from assymetric routing, but the tools will
need improvement.

Dave

-- 
David Young             OJC Technologies
[email-masked]      Urbana, IL * (217) 278-3933

---

From: "Lusheng Ji" <[email-masked]>
Date: Thu, 10 Mar 2005 17:10:20 -0500

Asymmetrical routes happen all the time in the real-world Internet, leave
alone in MANETs which are much more dynamic.  Symmetrical routing is usually
not a requirement for standard routing protocols.  And upper layers have
been living with this assumption.  With that said, the only way for upper
layers to enforce symmetrical routes perhaps is to use IP source routing,
but as far as I know almost no backbone operator supports that option.

Usually what matters more is not if forward path and reverse path are the
same, but how stable each path is and if each router along the paths treats
different network and transport protocol packets the same (e.g. if ICMP
packets are routed differently than UDP data packets of the same source and
destination addresses).  Traceroute will give you the forward path only.
You should not assume that the reverse path is the same.

Unless someone would like to take on the job of rewriting the whole stack,
it is just a fact of life we have to deal with.

Regards,
=======
Lusheng Ji
Senior Technical Specialist
Communication Technology Research
AT&T Labs Research
lji at research dot att dot com

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On Behalf Of
David Young
Sent: Thursday, March 10, 2005 4:32 PM
To: [email-masked]
Subject: Re: [manet] Interactions between TCP and Routing

Dave

---

From: Pietro Michiardi <[email-masked]>
Date: Fri, 11 Mar 2005 11:02:29 +0100

Dear all,
thanks a lot for your replies.

I understand that symmetrical routing is not a requirement for standard
routing protocols. I also agree that it is arguable to re-write the
protocol stack in order to have symmetrical routes!

My point is: what happens in MANET, where links are unreliable due
to several factors? When TCP uses different routes for data and acks,
I imagine (it would be cool to experiment it) the following situations:

- datas arrive at destination through a rather stable route and acks take
a volatile path. This would trigger un-necessary retransmissions.

- TCP is rather adaptative, and bases its adaptation on "measurements".
There's lot of work in the literature that show TCP blindness w.r.t. to the
distinction between congestion and link outage due to mobility. Is this the
only problem? When we evaluate the round trip time (RTT), what happens if
we select different paths in terms of {hop count, stability, ...}?

In my opinion it would be interesting to study (at least simulate) the
impact of forcing only symmetrical routes on TCP performance.
The easyest way to do that is for sure to rely on a source routing
protocol.

If you have any other comments, you're more than welcome to join the
discussion! I'd rather prefer a good argument in favor or against this
subject before starting to crunch simulations ;)

Thanks a lot!

Pietro