W7100-s2e 패킷 문제

네오쿼터스의 우홍구 입니다.

EPMS 단말기 – 위즈넷W7100-S2E칩 - LTE라우터 <—> 관제 서버

관제서버와 단말기간 통신간격이 15초간격으로 데이터는 256 byte정도 발생 합니다.
1달간 data량 : 약44 M byte

실제 필드 테스트 결과 1.2G정도 패킷량이 발생했습니다.
저희 연구소에서 확인 한 결과 실제 접속시 저희가 보내는 DATA외 위즈넷 칩단에서 DATA 패킷이 다량 발생되는 것 을 확인했습니다.
저희가 사업화하는 모델이 LTE라우터를 사용하므로 이렇게 다량의 DATA를 사용하면 통신요금 때문에 사업적으로 문제가 있습니다.
이에 대한 원인 및 해결책이 있는지 확인 부탁합니다.

먼저, 15초 간격으로 한 달 간 256byte 크기의 데이터를 목적지로 전달하고자 할 때 GB 단위의 데이터 전송이 필요한 것은 정상적인 상황입니다.

데이터를 패킷 형태로 나누어 전송하며 망을 공유하는 패킷 데이터 교환망(일반적인 인터넷 망의 구조) 에서는 데이터를 목적지까지 정확히 전송하기 위해 여러 네트워크 계층의 Header가 데이터 앞에 각각 붙어 전송됩니다. 이 때문에 실 데이터에 헤더 데이터가 더해진 것이 이더넷 망의 실제 전송해야 할 데이터 양으로 보셔야 합니다. (원인 #1)

그리고 W7100-S2E 제품에서는 별도의 설정이 없을 경우, serial data가 발생 할 때마다 이를 패킷으로 만들어 인터넷 망으로 전송합니다. Serial 데이터 발생 마다 패킷이 발생하도록 되어있는 구조이므로 worst case의 경우 한 패킷에 1byte의 데이터만 포함되어 있을 수도 있으며, 위즈네트 칩의 경우 헤더를 포함한 TCP 패킷의 하나의 최소 크기는 60byte입니다. (원인 #2)

따라서 느린 baudrate를 사용하여 한 패킷에 1byte의 데이터를 포함하여 전송한다고 가정하고 15초 간격으로 256byte의 데이터를 전송한다고 하면, TCP client 기준으로 한 달간 발생할 수 있는 worst case의 패킷량은 대강 다음과 같습니다.

한 번에 전송되는 데이터 : 120 (syn) + 15,360 (data 256 x 60) + 120 (fin)
하루에 전송되는 데이터 : 한 번에 전송되는 데이터 x 5760 ( = 86400 / 15), 약 85Mbyte
한 달간 전송되는 데이터 (30일 기준) : 하루에 전송되는 데이터 x 30, 약 2.57Gbyte

좀 더 나은 경우를 가정하여 패킷 당 3byte의 데이터가 전송된다고 하면, 한 달간 44Mbyte의 실 데이터 전송을 위해 약 883Mbyte의 패킷 전송이 이루어집니다.
때문에 설정이 없을 경우 위와 같은 패킷 전송이 이루어지는 것은 정상적인 상황입니다.

<Sol.>
이러한 패킷 발생 문제를 해결하기 위해 W7100-S2E에서는 Data Packing Condition을 지원합니다.
Serial data가 발생하는 대로 네트워크로 전송하는 것이 아니라 시간 / 크기 / 특정문자를 만날 때까지 버퍼에 데이터를 모았다가 한 번에 전송하도록 하는 기능입니다. (중복 적용 가능합니다.) 저희 Configuration tool의 Serial 탭에서 확인하실 수 있으며 중복 적용 가능합니다. 정확한 수치는 드리기 어려우니 네오쿼터스에서 전송하는 데이터의 양과 주기에 따라 적절한 설정 값을 찾아보시면 될 것 같습니다.

참고로 제가 시간 3000 (ms), 크기 255 (byte)를 설정하고 256바이트를 전송한 결과치를 토대로 산출한 한 달 예상 패킷량은 약 100Mbyte입니다.
하지만 데이터가 255 byte를 넘어서면 크기 값 설정은 빼는 것이 좋을 듯 하며, 시간 또한 상황에 맞게 테스트 해 보시기 바랍니다.