protocol : 약속 규약

network protocol : 통신 규약

 

TCP / UDP

TCP

Hardware에서 연결 유무 확인, 순서 보장, 패킷 송신 보장을 보장해주는 protocol 규약 

연결이 되고 끊어지고를 프로그램이 알 수 있다.

 

1.연결 보장 확인

3way handshake 3방향 악수

1. 송신 -> 연결 요청     -> 수신

2. 송신 <-     ok          <- 수신

3. 송신 -> ok를 받았다  -> 수신

과정을 통하여 2, 3 발생하지 않을 시 재전송 요청하여 연결 보장을 한다.  

 

2. 순서보장

패킷에 순서를 매겨서 전송하여 순서보장

 

3. 송신보장

받지 못한 패킷을 재요청하여 송신을 보장

 

UDP

1. 연결유무 확인 x

2. 순서보장 x

3. 송신보장 x

 

TCP와 UDP 차이

1. TCP 3way handshak 때문에 UDP 보다 3배 느리다

2. UDP 가 더 빠르다 데이터 유실 확률 7% 생각보다 유실이 많이 되지않을 수 있다

3. UDP 지연시간이 짧다 TCP 지연시간 느리다.

 

대안

UDP의 속도와 TCP의 안정성을 사용하기 위해 Reliable UDP software를 만들어 사용

- software적으로 TCP의 역할을 할 수 있게 하는 방법

- TCP의 경우 hardware적으로 기계 내부에서 처리하는 반면 Reliable UDP는 software적으로 처리

- 안정성과 성능을 조절하며 사용 가능

 

게임에서 사용하는 서버

TCP 

MMO RPG, 보드게임

 

UDP (대부분의 게임에서 사용)

격투게임, 슈팅 게임, aos 게임, 롤, 오버워치, 스타크래프트

 

 

 

 

 

 

참고 영상 : https://www.youtube.com/watch?v=0ZXIRuEVa5E&list=PLy-g2fnSzUTDsS7kCzmFYn4BJK6nCs0_r&index=2

'서버 공부 > 서버 정보' 카테고리의 다른 글

게임 네트워킹의 이해1 - 네트워킹이란?  (0) 2022.03.01

서버 네트워킹이란?

- 멀리 떨어져 있는(외부) 컴퓨터간의 데이터를 주고 받는 것

 

내부적 네트워크

- 컴퓨터 내부에서 hardware 적으로 데이터를 주고 받는 것

- cpu <-> ram <-> harddisk 간의 데이터를 주고 받는 것

 

네트워크 프로그래밍 문제점

- 내부적 네트워크와 비교하면 문제점을 알 수있다

 

1. 지연시간 (Laterncy) 문제

1. 컴퓨터에서 다른 컴퓨터로 데이터를 전송할 때 지연시간이 발생한다.

2. 내부적인 네트워크는 가까이 연결되어있어 전송시간이 빠르지만

   서버 네트워킹은 광케이블로 연결되어 있어도 내부적인 네트워크보다는 느리다.

(지구 한바퀴를 도는데 133ms가 걸린다. 지구 반대편 컴퓨터에 바로 연결되었다고 치면 왕복하는데 133ms가 걸린다)

3. 지연시간은 물리적  한계라서 극복할 수 없다.

4. 지연시간을 줄이고 효과적으로 눈속임해야한다.

 

Ping

- 지연 속도

- Ping == 100ms 는 데이터를 주고 받는데 100ms 가 걸린 것 (주는데 50ms 받는데 50ms)

Round Trip Time (RTT)

- 데이터를 한번 주고 받는 시간

 

2. 연결 안정성 문제

WWW(World Wide Web) 

- 인터넷이 거미줄처럼 연결되어 있다.

- 패킷이 가는 도중에 거점 하나가  끊어지면 연결이 끊어질 수 있다.

- 연결 취약

모바일 무선 네트워크

- 와이파이가 순간 순간 끊기는 상황에서 게임을 어떻게 커버할지가 게임 네트워크 프로그래밍에서 이슈

 

3. 순서 비보장

내부 네트워크 

1. cpu <->ram 데이터를 전선으로 연결 받는다 (queue느낌)

2. 순서대로 보내면 순서대로 받는다

서버 네트워크

1. 순서대로 보냈어도 순서대로 받지 못한다.

-> WWW 거점이 많아 여러 경로로 전송되어 순서대로 전송되지 않는다.

-> 패킷을 살포하여 먼저 도착한 경로를 사용

-> 123을 보냈는데 231이 올수도있다.

 

서버 네트워크 가장 큰  문제점 3가지

1. 지연시간

2. 연결이 불안정

3. 순서 비보장

이것을 해결하는 것이 서버 프로그래머의 일

 

참고 영상 : https://www.youtube.com/watch?v=lAhAdnsIN6I&list=PLy-g2fnSzUTDsS7kCzmFYn4BJK6nCs0_r&index=1 

 

'서버 공부 > 서버 정보' 카테고리의 다른 글

게임 네트워킹의 이해 2 - Protocol TCP/UDP  (0) 2022.03.01

+ Recent posts