Subject: ADDIP: Destination endpoint with different port

From: "Eng Se-Hsieng" <[email-masked]>
Date: Mon, 26 May 2003 21:27:18 +0800

Dear all,

In the ADDIP draft, an endpoint is defined as 

gE(t) = [(IP1,..., IPn), Port]

In the case of an endpoint being multihomed behind two NATs or one NAT, he would satisfy the above definition locally. However, his peer would see him as having two ports.

Please advise if this poses a significant problem for SCTP.

Thank you.

Regards,
Se-Hsieng

---

From: "Randall Stewart (cisco)" <[email-masked]>
Date: Mon, 26 May 2003 13:02:43 -0500

Eng Se-Hsieng wrote:

>_______________________________________________
>[email-masked]
>http://www.sctp.de/mailman/listinfo/mobile
>
>  
>
I don't see how you get "two" ports... the peer would see your port as 
the one
the NAT assigned NOT the one you assigned locally. The nat, on returning
packets, would re-map back to your port.. so it shoudl all work

The rub is when you get multiple nats.. and the only way this would
work if the two nat's coordinated the port they were using.... aka
a nat-2-nat communiation protocol..which does not exist to my knowledge....

R

-- 
Randall R. Stewart
ITD
Cisco Systems Inc.
[email-masked] 815-342-5222(cell) or 815-477-2127(office)

---

From: "Xiaodan Tang" <[email-masked]>
Date: Mon, 26 May 2003 19:30:51 -0400

Here is the satuation:

A server opens a UDP style sctp socket, and listen on it. A client opens a
UDP style sctp
socket, bind() to the server's address, sendmsg(), and close() immediatly.

What *should* happen when the client called close()? Note the sctp could
just in the
middle of establish an association, or it could already started data
transfer. As the API
draft expect a close() do a graceful shutdown, does this mean an
implementation should
actually flush out all the data and then do a shutdown after the close()? Or
is it the
application's interest to call "shutdow()" to ensure the delivering of the
data, and then
close() ?

-Xiaodan Tang
QNX Software Systems Ltd.

---

From: "Randall Stewart (cisco)" <[email-masked]>
Date: Tue, 27 May 2003 06:34:00 -0500

>socket, bind() to the server's address, sendmsg(), and close() immediatly.
I don't get what you mean by
"bind() to the server's address, sendmsg(), and close()"

You can not bind the servers address if you are on the
same machine.. Do you mean
opens a socket, sends a message to the server, and then does a close?

>transfer. 

assuming my interpretation.. it depends on what your settings are
for linger.

In the normal case aka default settings

You would get a shutdown pending against your socket .. the data would
get delivered and then the shutdown would take place.

If the linger options were set to:
linger.l_onoff = 1
and
linger.l_linger = 0

then at close, no matter what the state, the client would send an abort.. at
least that is how I interpret it :-)

>As the API
For udp style, you don't use shutdown.. instead you send a MSG_EOF on
your last send call.

But the close would also work if you don't touch the linger option...

R

---

From: "Xiaodan Tang" <[email-masked]>
Date: Tue, 27 May 2003 12:05:30 -0400

----- Original Message -----
From: Randall Stewart (cisco) <[email-masked]>
To: Xiaodan Tang <[email-masked]>
Cc: <[email-masked]>
Sent: Tuesday, May 27, 2003 7:34 AM
Subject: Re: What happens when a UDP style sctp socket closed

> >just in the middle of establish an association, or it could already
started data
> then at close, no matter what the state, the client would send an
> abort.. at least that is how I interpret it :-)

Ah, missed that one. These are all make sense now :)

Turns out NetBSD turning SO_LINGER off by default. That's why we see
the kame implementation send an ABORT.

We have a chance to tweak the option in our PRU_ATTACH, but I will
leave it to system default.

-xtang

---

From: "Randall Stewart (cisco)" <[email-masked]>
Date: Tue, 27 May 2003 11:32:32 -0500

>leave it to system default.
xtang:

One other thing I forgot to mention... You also will get an abort in
either TCP style (soon to be called 'one to one') or UDP style (soon
to be called 'one to many') if you have data un-read..

So if the peer does
sendmsg(....);

I do
sleep(10) (never reading)
close()

An abort will get sent.

R

---

From: Luis Fuentes <[email-masked]>
Date: Fri, 30 May 2003 23:13:44 -0500 (CDT)

_________________________________________________________
Do You Yahoo!?
Información de Estados Unidos y América Latina, en Yahoo! Noticias.
Visítanos en http://noticias.espanol.yahoo.com