wiki:Internal/PacketServer

Version 2 (modified by nilanjan, 11 years ago) ( diff )

Packet server

Packet source

A TCP based packet source is available on idb2:5123 generates random packets prepended with a CRC and Seq#. Clients can request packets from server with the following handshaking process after a TCP socket connection has been established:

  1. client sends server the request packet size (byte 4 word)
  2. server sends client packet of requested size with the following fields (4 byte each):

| CRC - Seq# - pyld[0] - … - pyld[pkt-size-3] |

CRC is calculate from Seq#to pyld[pkt-size - 3] Seq#is an incrementing count for the packet number pyld[n] is the random data.

The handshake process is depicted below:

Client Server

t1packet size———————————————→|

t2 |←———CRC, Seq#, pyld[0], … , pyld[pkt-size - 3]—————————|

The above handshake process [t1,t2] will repeat for 120 seconds after which the connection will be terminated.

Packet sink

Similary 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:

  1. server sends client a ready packet (4 byte word)
  2. client sends server data with the following field (4 byte each):

| CRC - Seq#- pyld[0] - pyld[1] - … - pyld[pkt-size-3] |

CRC is calculate from SeqNo to pyld[pkt-size - 3] Seq#is an incrementing count for the packet number pyld[n] is the random data. Note: pkt-size is determined from a socket read function in server.

This handshake process is depicted below:

Client Server

t1 |←—————————————packet size————————————————|

t2 |←——-CRC, Seq#, pyld[0], … , pyld[pkt-size - 3]—————————|

Attachments (1)

  • client.py (630 bytes ) - added by nilanjan 11 years ago.

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.