Moving onto designing a TCP/IP Stack

Go To Last Post
14 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi guys, I've started to write a TCP/IP Stack.  I only working with Ping at the moment.  However, I am limited to sending 1472 bytes.  Just wondering, is there a reason for this on the ASF MACB library?

This topic has a solution.
Last Edited: Tue. Jul 4, 2017 - 02:27 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Ethernet MTU size?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

what is MTU stand for?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

MTU = "Maximum Transmission Unit"
Read up on "Transmission Control Protocol".

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hint: Transmission Control Protocol is the "tcp" part of tcp/ip.

 

Jim

Jim Wagner Oregon Research Electronics, Consulting Div. Tangent, OR, USA http://www.orelectronics.net

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

This should help explain things for you.

Greg Muth

Portland, OR, US

Atmel Studio 7.0 on Windows 10

Xplained/Pro/Mini Boards mostly

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

And this.

Greg Muth

Portland, OR, US

Atmel Studio 7.0 on Windows 10

Xplained/Pro/Mini Boards mostly

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

However, I am limited to sending 1472 bytes.

 No fragmentation in the ASF library?

 

In theory, a ping can have a total length (including the IP and ICMP headers, but not (eg) ethernet header) of 64k, via fragmentation of the IP packet into pieces that are small enough for the interface(s).   In practice, many implementations are limited to the maximum packet size supported by the hardware interfaces present (ie about 1500 bytes on an ethernet.)  IP fragments are (were?) an attack vector for DoS attacks.

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi Westfw, so thee is nothing wrong with the diver?  Okay, so I have to then work with this limitation.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Can we put this thread to sleep and agree that the limit is on the Ethernet Chip?  By the way, I'm using the ksz8041tl​ chip.  Not done much reading on it but it does not specify a Transmission Limit.

 

Wm.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The kz8041 is just a PHY chip. The MAC determines the max payload. Few MACs do jumbo packets.

I think you want this book:
https://www.amazon.com/TCP-Illustrated-Protocols-Addison-Wesley-Professional/dp/0321336313/ref=pd_lpo_sbs_14_img_0?_encoding=UTF8&psc=1&refRID=G30ETRW1SGSG8TQGJWP2

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The MACB module in the UC3A and UC3C supports jumbo frames of upto 10240 bytes, but how much usable RAM (internal and external) do you have ?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I am limited to sending 1472 bytes.

What does that mean?  You have ping code that no longer gets a response when you exceed 1472 bytes?   You get some sort of internal error on your side?  Where does your code leave off and someone else's limitations step in?   Like I said, you should be able to send very large packet, IF everyone supports fragmentation, and if no one has imposed administrative restrictions.  There are lots of possibilities why 1472 (or something "around" there) would turn up as a max.  (Is that 1472 data bytes, plus 8 ICMP Header bytes, plus 20 IP header bytes = 1500 total bytes of ethernet payload?  That sounds exactly on-spec...)

 

This reply has been marked as the solution. 
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Atmel aka Microchip confirmed the MTU is 1500 bytes.