Changes between Initial Version and Version 1 of Internal/PacketServer


Ignore:
Timestamp:
Feb 12, 2013, 3:59:23 PM (12 years ago)
Author:
nilanjan
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Internal/PacketServer

    v1 v1  
     1= Packet server =
     2
     3The short synopsis:
     4
     5A TCP based packet source is available on idb2:5123 generates random packets prepended with a CRC and Seq#.
     6Clients can request packets from server with the following handshaking process after a TCP socket connection has been established:
     71) client sends server the request packet size (byte 4 word)
     82) server sends client packet of requested size with the following fields (4 byte each):
     9
     10    | CRC - Seq# - pyld[0] - ... - pyld[pkt-size-3]  |
     11
     12CRC is calculate from Seq#to pyld[pkt-size - 3]
     13Seq#is an incrementing count for the packet number
     14pyld[n] is the random data.
     15
     16The handshake process is depicted below:
     17
     18        Client                                                                 Server
     19t1        |---------------------------packet size------------------------------->|
     20
     21t2        |<-------CRC, Seq#, pyld[0], ... , pyld[pkt-size - 3]------------------|
     22
     23
     24The above handshake process [t1,t2] will repeat for 120 seconds after which the connection will be terminated.
     25
     26Similary a TCP based packet sink available on idb2:5125 which receive packets from client. and verifies the crc. As of right now this packet sink is best used for looping back data from the packet server. Clients can send data to server after a connection has been established:
     271) server sends client a ready packet (4 byte word)
     282) client sends server data with the following field (4 byte each):
     29
     30    | CRC - Seq#- pyld[0] - pyld[1] - ... - pyld[pkt-size-3]  |
     31
     32CRC is calculate from SeqNo to pyld[pkt-size - 3]
     33Seq#is an incrementing count for the packet number
     34pyld[n] is the random data.
     35Note: pkt-size is determined from a socket read function in server.
     36
     37This handshake process is depicted below:
     38
     39        Client                                                                 Server
     40t1        |<---------------------------packet size--------------------------------|
     41
     42t2        |<------CRC, Seq#, pyld[0], ... , pyld[pkt-size - 3]------------------|