패킷사이즈가 전송 속도에 영향을 주는 것은 사실입니다. 너무 잘게 나누어서 보내면 자르고 합치는데 걸리는 시간이 많지요. 과거 버클리에서 네트웍은 아니고 하드디스크에 대해 이와 관련된 실험을 해본적이 있었습니다. 다양한 사이즈로 실험해보고 결론적으로 가장 빠른 사이즈를 선택했습니다. 그 실험결과 4KB였었던 것으로 기억됩니다.
네트웍도 같은 원리로 실험을 해보시는게 좋을 듯합니다. 무조건 크게 준다고 빠르게 가는것은 아니며, 어차피 프로토콜 스택에서 자르고 합치고를 해야하고 결국 물리계층에서 MTU의 크기로 가게될테니까요. 이더넷의 MTU가 1.5KB임을 간과하지 마시고, 1024부터 조금씩 늘려가며 테스트(실험)를 해보신후 정하시는게 좋은 방법같습니다.
참고
패킷사이즈가 전송 속도에 영향을 주는 것은 사실입니다. 너무 잘게 나누어서 보내면 자르고 합치는데 걸리는 시간이 많지요. 과거 버클리에서 네트웍은 아니고 하드디스크에 대해 이와 관련된 실험을 해본적이 있었습니다. 다양한 사이즈로 실험해보고 결론적으로 가장 빠른 사이즈를 선택했습니다. 그 실험결과 4KB였었던 것으로 기억됩니다.
네트웍도 같은 원리로 실험을 해보시는게 좋을 듯합니다. 무조건 크게 준다고 빠르게 가는것은 아니며, 어차피 프로토콜 스택에서 자르고 합치고를 해야하고 결국 물리계층에서 MTU의 크기로 가게될테니까요. 이더넷의 MTU가 1.5KB임을 간과하지 마시고, 1024부터 조금씩 늘려가며 테스트(실험)를 해보신후 정하시는게 좋은 방법같습니다.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
Packet size = (32 << 10) = 32KByte
Packet size = (32 << 10) = 32KByte
Packet간 delay = 25ms
로 해서 해보시구요.
잘 안되면 예기주세요.
즉,
do
{
write | send ( sock, data, size);
usleep | select ( 25 * 1000 ); /* 25ms */
}while( 전부 송신할때까지 );
댓글 달기