https://stackoverflow.com/questions/2613734/maximum-packet-size-for-a-tcp-connection
The absolute limitation on TCP packet size is 64K (65535 bytes),
but in practicality this is far larger than the size of any packet you will see,
because the lower layers (e.g. ethernet) have lower packet sizes.
The MTU (Maximum Transmission Unit) for Ethernet, for instance, is 1500 bytes.
Some types of networks (like Token Ring) have larger MTUs, and some types have smaller MTUs,
but the values are fixed for each physical technology.
TCP 최대 대역폭 허용량 : 65K (헤더 포함. 실 데이터(하위계층))는 약 40k 정도)
만약 1M 으로 패킷이 넘어갔다면 패킷 손실율이나 렉 현상 높아짐.
혹은 TCP 일때 1m(1024k) / 65k = 15.75 약 16번의 분할 전송 발생.
16 * 유저수 (서버당 1000 ~ 5000명 / 웹서버면 만단위) 최대 패킷 전송 비용이 계산됨.
(예를 들어 패킷 1m, 서버 유저 최대 수 3만. 3만 클라가 동시 패킷을 전송한다면 1m * 30000 = 약 29g 전송.)
물론 서버나 발생 빈도에 따라 달라짐. 1M(or 250k max limit) 넘어가면 안된다 라는건 없음.
상황에 따라선 1M 패킷 처리도 가능.
하지만 해당 패킷 * 빈도 * 동시 접속 수 + 서버 머신 성능 + 트래픽 세팅 ...
여러가지를 계산 하여 패킷 사이즈를 계산 하는게 매우 중요함.
때에 따라선 다이어트나 패킷 압축(zlib) 전송도 필요.
정리하자면,
클라이언트가 크래쉬 나면 혼자 이탈 하지만, 서버는 크래쉬가 나면 해당 군의 모든 유저가 이탈한다.
패킷 사이즈가 1m가 위험하다는것이 아니다. '클라들'이 전송하는 그 패킷을 혼자서 받는 '서버가' 위험한 것 일뿐.
'[ Programing ] > Server' 카테고리의 다른 글
프로그램, 프로세스와 스레드의 차이 (0) | 2022.01.19 |
---|---|
polling - 실시간 전송 제어 방식. (0) | 2022.01.17 |
Fiddler 패킷 캡처... (0) | 2020.06.01 |
C# Poll() 메소드 (0) | 2018.10.16 |
동기화와 비동기화 방식 (0) | 2013.11.03 |