1. TCP 형식
1) port 는 2의 16승인 65535의 경우의 수가 나올 수 있다. 단 0과 65535는 제외시켜야 하기 때문에 -2를 하면 65533개의 경우의 수가 나올 수 있다.
2) Sequnece number는 3way-handshakes 시에 필요한 일련번호이다. 데이터의 길이가 100byte 이면 100이 증가하고, 1000byte 이면 1000이 증가한다.
3) Data offset은 TCP Payload 위치를 계산할 때 사용된다.
4) Flag값은 TCP의 상태를 결정할 때 (Syn, Ack, FIN ... ) 사용됨
5) Reserved는 장애유형에 혼잡제어를 관리하며
6) window sizes는 버퍼의 여유공간을 뜻한다. 여유공간이 없으면 zero window 장애가 발생한다.
7) checksum은 데이터 손상은 없는지 검사하는 검사값이다.
2. UDP 형식
혼잡제어, 수신측 버퍼 고려를 하지 않고 일방적으로 데이터를 보낸다. 즉 클라이언트를 배려하지 않는 프로토콜이다.
이렇게까지 하는 이유는 예를들어, IPTV 영상을 송출을 해야할 경우 영상 송출 서버가 있어야한다. 이 서버에 연결되어 있는 수 많은 이용자가 있을 때 이들 각각 네트워크의 상태는 모두 다를 것이다. 이 때 각 클라이언트의 상황을 고려하는 것보다 일방적으로 보내는 것이 더 유리한 전략이다.
...
게임 서버의를 만들 때 중요한 것중 하나는 동기화 문제이다. TCP를 이용하여 게임 서버를 동기화하게 되면 하향평준을 하게 된다. 전체 클라이언트가 모두 느려지도록 구성할 수 밖에 없어진다. 그러므로 UDP 프로토콜을 활용하여 TCP가 가지고 있는 혼잡제어 로직을 UDP로 직접 구현하면 된다.
게임 캐릭터의 움직임 하나하나 데이터를 보낼 때 데이터가 늦게 도착해도 이를 무시해도 되므로 UDP 프로토콜이 매우 유리하다. 실제로 멀티 미디어 데이터 전송에 많이 최적화되어 있다.
현재는 http3 시대로 넘어가고 있다. 이 때 UDP가 활용된다.
'네트워크' 카테고리의 다른 글
TCP 연결이라는 착각 2 (0) | 2024.11.04 |
---|---|
TCP 연결이라는 착각 (2) | 2024.11.04 |
TCP 연결종료와 상태변화 (0) | 2024.10.29 |
TCP 연결과정과 3-way handshaking (1) | 2024.10.29 |
TCP, UDP란 (0) | 2024.10.24 |