Proposal for ForCES Protocol

advertisement
ForCES Protocol brain-storming
Some Basic Design Principles
1. The ForCES protocol should be able to take advantage of the features of the
underlying transports (both physical & protocol).
2. The ForCES protocol should explain how and if it runs on physical transports that
are in the following 4 dimensional space, and either ForCES itself or a transport layer
between ForCES and the physical transport provides the additional functionality
needed to meet all ForCES requirements for each space (or it should be explicitly said
"ForCES won't run on this kind of transport"):
Dimension 1: Reliable Delivery <--> Unreliable Delivery
Reliable means: The message will get through, eventually, or sender will get an
indication that it did not, to some very high level of probability
Unreliable means: You send it and have no assurances it made it.
Dimension 2: Correct deliver <--> Corrupt Delivery
Correct delivery means: The message, if it gets through, will get through with no
corruption to some very high level of probability
Corrupt delivery means: Even if the message is delivered, it may have bits corrupted
and you won't know it.
Dimension 3: Unicast <--> Multicast <--> Broadcast
Dimension 4: Congestion control/bandwidth
Guarantees <--> Robust congestion control/BW guarantees
No guarantees means: Your flow could take over the entire communications
channel, unfairly slowing others
Robust means: Your flow will be fair towards others
3. The ForCES protocol should contain within it information that is relevant to all LFBs
and FEs. Examples include LFB naming and identification (e.g. "This message is for
that LFB"), transactioning (e.g. "message A, B, and C must all be done, or do none of
them").
4. The ForCES protocol should mandate a single or minimum set of transport
protocol(s), security protocol(s) for interoperability reasons. It should also explicitly
specify how any optional transport/security protocols are utilized.
5. It should not be necessary to extend the ForCES protocol every time someone defines
a new LFB type. This implies that LFB-specific information should be in a LFBspecific payload carried within the ForCES messages and not fields in the ForCES
header itself.
6. a. The ForCES protocol should support both unicast and multicast addressing for FEs
in the protocol header.
b. The ForCES protocol should hide whether multicast is used or not to the (CE)
users, the FE addressing in the protocol, should allow for logical unicast or multicast.
7. The ForCES protocol should support separate channels for Control and Data
messages. The data channel carries the routing/control protocol packets such as RIP,
OSPF packets, between the CEs and FEs. These packets are unique in most cases for
a particular CE:FE pair and hence the data channel will use unicast connections
between the CEs and FEs. Also, the data channel does not have to be strictly reliable
but does need to provide flow/congestion control to protect against DoS attacks.
8. The control channel must provide strict reliability (non-corruption, no loss, no
reordering, timeliness) at the transport level in accordance with the RFC 3654. In
addition, ForCES protocol level responses/acknowledgements are also needed from
FE to CE to learn the results of configuration/control messages.
Proposed Protocol Features
1. The multicast addressing in the protocol will be based on LFB type basis and not FE
basis, i.e. a multicast group will specific an LFB e.g. IPv4 Forwarding LFB and it will
be used by CE to download the forwarding table entries onto FEs which have that
LFB. However, the LFB ID will need to be specified in the message in case of
multiple instances of same type of LFB.
2. The control channel must consist of unicast connections between the CEs and FEs.
All control messages sent from FE to CE, such as, asynchronous events or
responses/acks, are sent over unicast connections only. There may also be optional
multicast channels between CEs and FEs to carry control information from CE to
multiple FEs.
3. For Local scope –
If the protocol is used directly over Layer 2, then both unicast and multicast can be used
for the control channel (if layer 2 supports multicast). Unicast is mandatory and initially a
unicast connection is formed between the FEs and CE during association establishment
(binding) phase of the protocol. Over this channel, the multicast channels are negotiated
for certain LFB types. Procedures need to be defined in the protocol for negotiation of
multicast channels. Such procedures might include explicit LFB/multicast group
setup/teardown messages in the ForCES protocol itself. Only configuration messages for
LFBs will be sent over multicast channels. For example, a message to configure IPv4
forwarding table could be sent over a multicast group to a bunch of LFBs in different
FEs. All other messages will use unicast connections. Both for unicast and multicast
connections over L2, reliability/flow control mechanisms need to be defined in the
protocol or must be present as properties of the L2 interconnect. For example, the L2
specific encapsulation may define CRC field to check for data corruption. Alternatively,
TIPC could be used to provide reliability mechanisms for the unicast/multicast
connections over Layer 2.
If the protocol is used over IP, then unicast is mandatory and multicast is optional for the
control channel. Unicast connections will use TCP for reliability/flow control. For any
optional Multicast channels, Reliable Multicast Transport (RMT) will to be used to
provide reliability/flow control, etc. The multicast channels will use the same procedures
defined for the Layer 2 case, for initial negotiation. Also, only configuration messages for
LFBs will be sent over multicast channels, as in the case of Layer 2.
The rationale behind this is that certain vendors may have proprietary Layer 2
interconnects between CEs and FEs which support reliable unicast as well as multicast
along with flow control, congestion control, etc. In such cases, it might be most optimal
for vendors to run the ForCES protocol directly over L2 and take advantage of the L2
properties. In case this L2 interconnect is not available, the vendor could choose the run
the protocol over IP and use TCP to provide reliability, flow control, etc. He may also use
standard mechanisms for RMT for optional multicast channels.
4. For Global Scope –
The protocol will run over IP and use unicast TCP connections for the control channel.
Unicast connections will use TCP for reliability/congestion control. It may be possible
for having optional multicast channels, however this is not recommended when using the
protocol in the global scope for reliability, congestion control and security reasons [RFC
3654, section 6 #2, #4, #6].
Download