[W5500] UDP단편화 데이터 수신방법 문의

안녕하세요

W5500을 이용하여 PC와 UDP 통신을 하고 있습니다.
PC프로그램에서 전송하는 데이터의 길이가 가변형태로 수바이트에서 수킬로바이트까지 변경되는 특성이 있습니다.
MTU로 인해 데이터가 단편화 되어 보내지고 있는경우가 있어서,
조각난 데이터의 단일화를 W5500에서 받아 프로그램(어플리캐이션)상에서 진행해보려고 시도하고 있습니다.
그런데 조각난 데이터의 경우 수신여부조차 알 수가 없어서 도움이 필요합니다.
W5500에서 정상적인 UDP패킷이 아닌 조각난 패킷이나 그외의 패킷의 데이터를 읽을 수 있는 방법이 없는지요?
예로,소켓4번이 UDP로 설정되고 버퍼가 8K바이트로 설정되었다면
정상적으로 UDP패킷이 수신되면 처리가되고,
단펴화 데이터 또는 그외 데이터의 경우 수신여부를 확인할 수 있는 방법과 해당 데이터를 읽을 수 있는 방법이 궁금합니다.
PC상의 프로그램은 특성상 변경이 불가능한 상황입니다.

해당 내용과 비슷한 단편화와 관련된 문의 답변 내용에
“W5500을 이용하여 UDP 단일화(Fragmentation)을 하기 위해서는 사용자가 응용(Application)단에서 UDP 단일화를 위한 컨트롤을 직접 하셔야 합니다.”
라는 답변이 있는데 위 의 내용이
단편화된 수신 데이터를 읽어와 응용단(어플리케이션)에서 처리하라는 말인지(단편화가 되어도 W5500에서 데이터를 읽을수 있어 응용단에서 수신데이터를 처리할 수 있다는 뜻인지?)
아니면 송신(PC)단과 수신(W5500)단에서 큰 데이터 자체를 응용단에서 미리 가공(서로 미리 협약된 방식으로-단편화가 발생하지 않도록)하여 수신단에서 처리하라는 말인지 궁금하네요

그럼 답변 부탁드리겠습니다.

저희 칩들은 IP Layer의 단편화를 지원하고 있지 않기 때문에, IP Fragmentation 이 되어서 보내지는 패킷 수신이 불가합니다.
아래 답변 내용은 결국 어플리케이션 즉 UDP 상에서 쪼개서 보내서 IP Fragment 가 발생하지 않도록 해야 한다는 뜻입니다. 해결책을 설명드리는 것이 아니어서 죄송하네요.

답변 감사합니다.
W5500을 거의 모든 부분에 문제 없이 잘 사용을 해왔는데
이번에 데이터 단편화와 관련해 새로운걸 알게되었네요.
나중에는 단일화도 지원해주거나 처리되지 않은 수신데이터를 확인할 수 있는 부분도 검토해주시면 더 좋을 것 같습니다.
그럼 이만 총총

1 Like