This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC3120MOD: Maximum and minimum packet size for TCP/IP and UDP Transmissions

Part Number: CC3120MOD
Other Parts Discussed in Thread: CC3120

Hello ,

I am trying to make a transmission of 10,000 BYTES, what is the maximum data that I can Transmit in a single packet using CC3120 module and what is the maximum packet size that I can define for both TCP/IP & UDP TX.

In addition, what is the minimum packet size that's to be defined. For example: if i have only 40 BYTES of data to be transmitted, can I define the Packet size of 40 BYTES. 

Kindly help me out as I'm new to this.

Thanks

  • Hi,

    Using the SimpleLink Wi-Fi host driver APIs, you can send an arbitrarily large amount of data at once. The practical limit would be running out of RAM space to buffer all your data. This is since the API will split the buffer into packet-sized chunks as needed. Thus, while the packets coming out of the CC3120 will be correctly sized, you don't have to worry about that since the host driver will handle the packet splitting for you. You can take a look at the implementation of sl_Send() in the host driver if you're curious as to how this works.

    As for the minimum size, that would be simply 1 byte. 

    Let me know if you need more clarification, or if you have further questions on using the CC3120.

    Regards,

    Michael

  • Hello Michael,

    Could you share some more light on the arbitrarily large amount of data. You said its about the Buffer size & RAM limitations. What if there's a lower layer that is Ethernet. Ethernet limits the packet sizes to ~1500 Bytes . When the  host driver handles the packet splitting is this taken into account too. 

    I'm really new to this, kindly help em out.

    Thanks

    Sanjay

  • HI Sanjay,

    Yes, the host driver will handle splitting of data sent through sl_Send() at the transport level. As it will ensure that data passed down to transport level fits its packet size limitations, it will also handle ETH and 802.11 frame limitations automatically. 

    If you want to see this in action, you can use the network_terminal SDK example to send oversize packets. Just change the MAX_BUF_SIZE define in network_terminal.h to alter the size of the TCP/UDP packets, rebuild and run, then call the send function from the serial terminal. If you run packet capture software such as wireshark on the other end, you'll see how the packet splitting is accomplished. 

    Regards,

    Michael