Vikas,
I am
forwarding a reply from David Gordon which I found helpful while trying to get a
simple client server connection going. Even though my query was IPv6 related,
all examples apply to IPv4 as well.
-Pankaj
Hi, Here is an excerpt from a document I prepared on SCTP implementations. Perhaps this will help you setup a successful IPv6 test. *** chat: a simple talk program, several of these can connect to an echo_tool-server started with the -b flag. combined_server: one server program, that acts as echo_server, discard_serevr and daytime_server daytime_server: a server that tells you the time, if you connect to it via the terminal-program. daytime_simple: idem, but uses sctpd discard_server: discard everything that is sent to it echo_monitor: gives stats about an echo server echo_server: echoes all back, that a client sends to it echo_tool: a more complex and sophisticated echo_server, prints stats monitor: monitors stats of an association, and prints them nicely formatted in a terminal window (uses ncurses). mulp: an obsolete, old, very confusing, hacky program, this was the first one we used at all. test_tool: this should help you test and understand the protocol. It reads script files and performs respective actions. Very nice. The utilities found in ./sctpd_programs are similar except that SCTP daemon in ./sctpd must be started so daemon utilities can use SCTP implementation from daemon. Knowing what each utility does is only the first step, making them work together is difficult enough as well. Here is another excerpt from the mailing list explaining some successful usage settings: If you are compiling on one machine and moving programs to other nodes, you might consider using the -static option when you compile to keep from managing libsctp.x versions every time there is a new release. Node 1 and 2: become superuser to allow raw socket opens Discard Server Node 1: run "discard_server -V -s 192.168.1.4" (be sure to use your IP address of node 1) Node 2: run "terminal -V -r 9 -s 192.168.1.3 -d 192.168.1.4 Echo Server Node 1: run "echo_server -V -s 192.168.1.4" (be sure to use your IP address of node 1) Node 2: run "terminal -V -r 7 -s 192.168.1.3 -d 192.168.1.4 Daytime Server Node 1: run "daytime_server -V -s 192.168.1.4" (be sure to use your IP address of node 1) Node 2: run "terminal -V -r 13 -s 192.168.1.3 -d 192.168.1.4 Combined Server Node 1: run "combined_server -V -s 192.168.1.4" (be sure to use your IP address of node 1) Node 2: for echo run "terminal -V -r 7 -s 192.168.1.3 -d 192.168.1.4 for discard run "terminal -V -r 9 -s 192.168.1.3 -d 192.168.1.4 for daytime run "terminal -V -r 13 -s 192.168.1.3 -d 192.168.1.4 Let's go through one scenario with two nodes having IPv6 addresses. The server will be node1 with IPv6 address fec0::1:250:b7ff:fe14:35be and the client will be node2 with IPv6 address fec0::1:250:b7ff:fe14:35c4. Initially, we start an echo server on node1: node1% cd ./programs node1% ./echo_server -V -s fec0::1:250:b7ff:fe14:35be We are ready to connect to node1 from client node2 and we will use 'terminal' program. The 'r' option is to specify which port to use. For some reason, this has a direct effect on whether the connection will work or not and this has not been officially documented anywhere. Once connected to node1, anything you type will be echoed back to you and you only. node2% ./terminal -V -r 7 -d fec0::1:250:b7ff:fe14:35be -s fec0::1:250:b7ff:fe14:35c4 Try typing a few things, run a sniffer to convince yourself that traffic is truly IPv6 SCTP. Remember that SCTP protocol number is 132 in case your sniffer doesn't explicitly support SCTP protocol. *** If you have any questions, let me know, David
|
Archive powered by MHonArc 2.6.19+.