[W5300] RX Memory를 초과하면 어떻게 되나요?

소켓 0번의 RX buffer를 8KB로 설정하고
MCU 처리 속도등 외부 요인으로 인해 W5300에 8KB이상의 수신 데이터가 쌓이면 RX buffer의 데이터는 어떻게 되나요??

w5300 모듈이 RX buffer가 비워질때 까지 수신을 안 하고 대기하는지, RX buffer를 덮어쓰는지 등의 수신 버퍼 관리 정책이 어떻게 되는지 궁금합니다.

안녕하세요
RX buffer가 비워질때 까지 수신하지않습니다.
buffer가 꽉찬이후로 비워질때까지 수신한 데이터는 버려지게 됩니다.

감사합니다:slight_smile:

1 Like

안녕하세요.
지정된 Hardware socket의 RX buffer가 가득 찬 경우, 사용자가 수신된 데이터를 읽어 처리하지 않는다면 그 이후에 전송되어 오는 데이터는 더 이상 수신 할 수 없으며 기존에 수신된 데이터는 그대로 buffer에 유지됩니다.

TCP 통신은 기본적으로 buffer 크기에 따른 flow control 기능을 포함하고 있습니다.
수신자의 수신 가능 buffer의 크기를 TCP receive window size로 표현합니다. 수신자의 MCU 측에서 socket buffer에 쌓인 데이터의 수신을 처리하지 않으면 window size는 점차 감소하게 되고, 해당 socket 버퍼가 가득 찼을 경우 송신자에게 window size full을 전송하여 더 이상 추가 데이터를 송신하지 못하도록 알립니다.

1 Like

카테고리를 한국어 포럼으로 이동하고,
게시물 제목에 [W5300]을 추가하였습니다.