TCP, UDP 헤더 형식과 게임서버 특징
- TCP 헤더 형식
TCP 헤더 형식에 Flag들을(ex. NS, SWR, ECE,...) 포함해
TCP 상태를 결정하는데 사용 혼잡 제어 필드들이 있다
추가적으로,
TCP 장애 유형
1_ Packet Loss : Packet 손실
2_ Re-Transmission : 재전송
3_ Duplicated Acknowledgement : Ack가 중복된 경우
4_ Out of Order : Sequence Number가 깨진 경우, 패킷의 순서가 뒤바뀐 경우
5_ Zero Window : 수신측 버퍼에 여유 공간이 하나도 없는 경우
위와 같은 장애가 발생했을 때 이를 통제하기 위한 필드인 혼잡 제어 필드가 TCP Header에 있다
- UDP 헤더 형식
UDP는 혼잡 제어를 하지 않는다
일반적으로 동기화가 필요하지 않는 경우 사용한다
- 게임서버
게임 서버의 경우는 TCP를 사용하면 동기화로 인해 하향평준화가 될 수밖에 없다
따라서 UDP로 게임 서버를 만드는 경우가 많다
ex.
1 > 2 > 3 > 4 > 5 순서로 동작하는 애니메이션이 있다면
UDP의 경우는 그냥 끊기는 채로 1 > 3 > 5 이렇게 해도 되지만
TCP의 경우는 1 > 2 > 3 > 4 > 5를 다 통신해야 한다
따라서, 네트워크 상태가 좋지않은 유저가 있다면, 그 유저의 모습만 뚝뚝 끊기는 것이 낫지
전체 유저가 다 같이 뚝뚝 끊기거나 느려지는 하향평준화가 발생하는 것은 좋지 않다
그래서 게임 서버의 경우는 UDP Protocol을 활용해 TCP가 가지고 있는 혼잡 제어 로직을 직접 구현하는 경우가 많다
이처럼, UDP는 멀티미디어의 전송에 최적화 돼있다
그리고 향후로는 HTTP3의 시대로 넘어가고 있는데 이때도 UDP가 활용이 된다
'CS > [널널한 개발자] 네트워크' 카테고리의 다른 글
5-1] 웹을 이루는 핵심기술 - DNS (0) | 2023.06.20 |
---|---|
4-5] L4 수준에서 외울 것들 - TCP '연결'이라는 착각 (0) | 2023.06.20 |
4-3] L4 수준에서 외울 것들 - TCP 연결 종료 및 상태 변화 (0) | 2023.06.20 |
4-2] L4 수준에서 외울 것들 - TCP 연결과정 (0) | 2023.06.20 |
4-1] L4 수준에서 외울 것들 - TCP, UDP 개요 (0) | 2023.06.19 |