예를 들어 음성이나 영상을 실시간으로 전송할때 TCP로 전송을 하게되면 중간중간 받지 못했던 영상들이 뒤죽박죽이 되어 실시간 영상을 받아올 수 없게됩니다. 따라서 실시간 처리가 필요한 어플리케이션들은 모두 UDP를 사용합니다. UDP는 깨진 데이터가온다고 다시 그 데이터를 받기 위한 신호를 보내지 않기 때문이죠.
그리고 hoseok님 께서 문의하신 QVGA급 카메라의 압축하지 않은 데이터는 계산해보니 320x240x8bitx30fps = 초당 약 18.5Mbps의 속도가 필요하네요
W5100의 경우에는 8bit 버스를 이용하면 MCU와 W5100간의 사이의 피지컬 속도는 18.5Mbps를 충분히 전송하고도 남슴니다. 따라서 실시간 전송에 문제가 없을 것 같습니다. write/read time이 맞지않다는 질문을 다시 정확히 말씀해주세요 ^^
더 큰 데이터를 보내고 싶으시다면 W5300을 추천해드립니다.
W5300의 경우에는 8bit와 16bit bus를 지원하고 타이밍도 W5100보다 더 짧습니다. 또한 Buffer도 128Kbyte로 빵빵해서 충분히 가능할 것이로 보입니다.
또한 SPI를 통해 데이터를 보내고 싶으시면 W5500을 추천해드립니다.
W5500을 통해 18Mbps이상의 속도로 데이터를 전송하는 방법은 MCU에 dependency 한데요.
W5500의 Tx Rx버퍼 사이즈를 8Kbyte로 늘리고 DMA를 사용하고 Burst Mode로 전송시 SPI 48MHZ의 속도일때 13Mbps이상의 속도를 내는 것을 확인했습니다. SPI의 속도가 더 올라간다면 그 이상의 속도도 낼 수 있을 것으로 생각됩니다.