Subject: RE: Matching addresses in INIT and INIT ACK

From: <[email-masked]>
Date: Mon, 3 Mar 2003 18:47:32 +0200

Brian,

> Ivan.Arias-Rodriguez,
> 
> On Mon, 03 Mar 2003, [email-masked] wrote:
> 
> > 	snip...
> > 
> > > >So, it is not necessary to look in the address list of the
> > > >INIT as a general rule, so don't try to tell me I "SHOULD".
> > > >
> > > >The INIT-ACK case can be handled by VT, so don't try to tell
> > > >me I "SHOULD" there either.
> > > >  
> > > >
> > > If you don't look in the INIT for addresses your VT method only
> > > works if:
> > > 
> > > A) you can assure that you hand out unique VT's
> > > and
> > > B) you KNOW all the addresses that the peer can give you apriori
> > > 
> > > Both of the above our true in your implementation..
> > > 
> > > My point is, for a general implementation that WILL NOT be able
> > > to assrue <B> above, you need to look in the INIT-ACK...
> > 
> > 	And there is another point that Brian never answered:
> > 
> > 	Does the general restart/establishment collision 
> procedure (section
> > 	5.2 of RFC 2960) work not checking the addresses inside 
> the INIT?
> 
> Yes it does, because the destination address and port numbers 
> of the INIT
> are sufficient to find an existing TCB.

	Aha... they are sufficient... yes... of course...

	I am Host A and I want to establish the following association with Host Z: (AddrA; PortA):(AddrZ; PortZ).

	I send and INIT from (AddrA; PortA) to (AddrZ; PortZ).

	Host Z happens to be multihomed. You DON'T know which are the addresses of Host Z. Knowing this is outside SCTP, and if you happen to know all the addresses of Host Z (in fact, of all the existing hosts you could ever have an association with) BEFORE you ever got an INIT or INIT ACK from Host Z, that's because you are in a SPECIAL situation. Period.

	Host Z happens to have another address, AddrZ'. We are in an INIT collision scenario, and Host Z sends you an INIT from (AddrZ'; PortZ) to (AddrA; PortA). That INIT includes AddrZ inside a parameter.

	Now, Brian, can you tell me how in Earth would you recognize that INIT from Host Z as coming from the same host you want to connect with?

	Of course, I mean WITHOUT taking a look to the parameters of the INIT chunk...

> > 	Because, I don't see how are you going to populate the 
> Tie Tags or
> > 	not, if you don't know if the INIT comes from an 
> already established
> > 	(but crashed) association (or one that it is being 
> formed, i.e., INIT
> > 	collision)...
> 
> You didn't read what I wrote in the last note.  The 
> destination address and
> port numbers are sufficient to find the existing TCB from 
> which the tie tags
> are populated.  It is not necessary to dig the address list.

	I cannot ask you this in a clearer way than written above. Could you please answer me to THIS question?

	BR Iván Arias Rodríguez

> > 	But I guess there might be another way of doing it, 
> which I fail to see... :-/
> 
> Digging the address list is not necessary to find an existing 
> TCB.  All that
> is necessary is the destination address and port pair from the INIT.
> 
> --brian
> 
> > 
> > 	BR Iván Arias Rodríguez
> 
> -- 
> Brian F. G. Bidulock    ¦ The reasonable man adapts himself to the ¦
> [email-masked]    ¦ world; the unreasonable one persists in  ¦
> http://www.openss7.org/ ¦ trying  to adapt the  world  to himself. ¦
>                         ¦ Therefore  all  progress  depends on the ¦
>                         ¦ unreasonable man. -- George Bernard Shaw ¦
>

---

From: "Brian F. G. Bidulock" <[email-masked]>
Date: Mon, 3 Mar 2003 10:29:28 -0700

Ivan.Arias-Rodriguez,

On Mon, 03 Mar 2003, [email-masked] wrote:

> 	Host Z happens to be multihomed. You DON'T know which are the
> 	addresses of Host Z. Knowing this is outside SCTP, and if you happen
> 	to know all the addresses of Host Z (in fact, of all the existing
> 	hosts you could ever have an association with) BEFORE you ever got an
> 	INIT or INIT ACK from Host Z, that's because you are in a SPECIAL
> 	situation. Period.
> 
> 	Host Z happens to have another address, AddrZ'. We are in an INIT
> 	collision scenario, and Host Z sends you an INIT from (AddrZ'; PortZ)
> 	to (AddrA; PortA). That INIT includes AddrZ inside a parameter.
> 
> 	Now, Brian, can you tell me how in Earth would you recognize that INIT
> 	from Host Z as coming from the same host you want to connect with?
> 

Collision cannot be detected until COOKIE-ECHO is received
(RFC 2960 5.2.4 (B)).  One does not have to peer into the
address list of the INIT or INIT-ACK to detect collision.

> 	please answer me to THIS question?

What has your question to do with lookin in address lists of INIT
and INIT-ACK?

--brian

---

From: "Randall Stewart (cisco)" <[email-masked]>
Date: Mon, 03 Mar 2003 12:16:19 -0600

>address list of the INIT or INIT-ACK to detect collision.

Collision detection is not what Ivan is talking about.. you MUST find
the old association (if there is one) so you can populate the tie-tags so
you CAN do a collision detection as discussed in that section.

You cannot do the detection without the tie tags being properly
populated, and you cannot populate the tie-tags without this
address lookup.. unless of course you have a special implementation
(as you do) that has pre-knowledge on all of the addresses the peer has.
Please think beyond your specialized implementation where you
have NO KNOWLEDGE of any of the peer addresses...

Then maybe you can answer Ivan's question above, which you seem
to be ignoring..

>What has your question to do with lookin in address lists of INIT

See above...

R

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

---

From: "Brian F. G. Bidulock" <[email-masked]>
Date: Mon, 3 Mar 2003 12:09:09 -0700

Randall,

> Then maybe you can answer Ivan's question above, which you seem

The information from the IP and SCTP header is sufficient to identify
a fully formed TCB and populate tie tags.  There is no need to look in
the source address list of the INIT or INIT-ACK.

--brian