W5500에서 UTP로 8K 송/수신

W5500 시스템과 Linux를 HUB를 거치지 않고, UDP로 1:1로 통신을 하려 합니다.

기본 MTU가 1,500Byte인것을 알고 있지만 Socket 1로 약 8,000Byte Data를 송/수신하고 싶습니다.

  1. W5500 Datasheet에 TCP/UDP mode로 사용 시 MTU보다 큰 Data는 자동으로 분활하여 전송을 하는 것으로 알고 있습니다.[아래 참조]
    이러한 자동 분활을 통하여 Linux Fragment 통신이 가능한지를 문의 드립니다.

1)번이 되지 않는다면, Sn_MSSR를 조절 가능한지를 문의 드립니다.

W5500 Datasheet [Version 1.0]에 Sn_MSSR (Socket n Maximum Segment Size Register) [R/W] [0x0012-0x0013] [0x0000] 53 Page

When Socket n is used in MACRAW mode, the default MTU is applied because the MTU is not processed internally. Therefore, when transmitting the data bigger than default MTU, the host should manually divide the data into the unit of default MTU.
When Socket n is used in TCP/UDP mode, and transmitting data bigger than MTU, the data is automatically divided into the unit of MTU.

In UDP mode, because there is no such connection-process like in TCP mode, the configured MTU is used. When transmitting data to a peer with the different MTU size, the ICMP(Fragment MTU) packet might be received. In this case, IR(FMTU) becomes „1‟ and the peer information such as the MTU size and IP address is indicated from FMTUR and UIPR respectively. If IR[MTU] = „1‟, user cannot transmit data to the peer. To resume the communication with peer, do as followed.

  1. Close the Socket n by CLOSE command.
  2. Set Sn_MSS to the indicated MTU from FMTUR
  3. Open the Socket n by OPEN command
  4. Resume the communication with the peer.

W5500 은 Fragmentation을 지원하지 않습니다.

Sn_MSSR문의 주셨는데요,
Mode에 따라 설정값을 변경할수는 있습니다.
다만, UDP의 최대치는 1472이기때문에 원하시는 기능을 할 수 없을것 같습니다.
image