2017-12-09 34 views
0

에코 서버 lwIP에서 이더넷 통신으로 작업하고 있습니다. DMA를 호스트로 샘플을 캡처하고 싶습니다. 시스템은 UART를 통해 샘플을 캡처합니다.lwIP 에코 서버 오류로 데이터를 전송하는 중

ACK를 기다리지 않고 lwIP가 1500 바이트보다 높은 패키지 2 개를 보내도록 만들 수 없습니다. 내 응용 프로그램이 패킷을 클라이언트에 계속 보냅니다. 클라이언트는 지연없이 패킷을 수신하지만 200ms 후에 ACK를 보냅니다 (첨부 된 wireshark 캡처 ​​이미지 참조). LWIP는 항상 다음 패킷을 보내기 전에 ACK 패킷을 기다리고 있습니다. 내 lwIP는 2 개 이하의 TCP 세그먼트 만 전송 한 다음 ACK를 기다릴 수있었습니다. 네트워크 지연으로 인해 성능이 저하됩니다.

ACK 패킷을 기다리지 않고 LWIP이 패킷을 보내도록하는 구성이 있습니까? 어떤 제안이 있으십니까?

enter image description here

답변

0

대신 TCP의 UDP를 사용하는 방법에 대한 방법을 기다리지 않으려면? TCP는 스트림 프로토콜이며 모든 것이 도착하고 순서대로 진행되도록합니다 (오류가없는 한). 에코는 일반적으로 주문에 신경 쓰지 않는 상황을 생각하게 만들고, 특정 패킷의 유무 여부와 소요 시간 만 고려합니다.

+0

답변 해 주셔서 감사합니다. 수백만 샘플을 캡처해야한다면 UDP를 사용하여 샘플을 잃을 수도 있습니다. 귀하의 제안은 UDP 모드에서 에코 서버를 사용하는 것입니다. 문안 인사 – Charli