본문 바로가기
공부요약노트/게임 서버 (C#)

네트워크 프로그래밍

by 중현현 2024. 6. 24.

(2024.06.24)

네트워크 기초 이론

 

서로 다른 개인 단말기 ( pc, 스마트폰 등 ) 에 패킷을 송신할 때,

패킷은 스위치와 라우터를 경유하게 된다. 

 

같은 와이파이를 사용하는 것처럼 같은 네트워크를 사용할 땐, 

스위치만 사용하고, 

그 외 다른 네트워크를 사용할 땐 

라우터까지 사용한다.

 

통신 모델

 

통신 모델은 네트워크 데이터 송/수신을 효과적으로 하기위해 만든 표준 규약이다.

OSI 7 Layer 모델과 , TCP/IP 모델 등이 있다.

 

OSI 7 Layer : 피지컬 / 데이터 링크 / 네트워크 / 트랜스포트 / 세션 / 프레젠테이션 / 어플리케이션

TCP/IP        : 피지컬 / 데이터 링크 /  네트워크 / 트랜스포트 / 어플리케이션

 

우리는 데이터를 송신할 때,

해당 모델에 관련한 데이터를 패킷에 추가하여 보내게 된다.

 

소켓 프로그래밍

 

클라이언트

1) 소켓준비

2) 서버주소로 Connect

 

서버

1) Listener 소켓 준비

2) Bind (서버주소/Port를 소켓에 연동)

3) Listen

4) Accept

 

(2024.06.25)

그런데 Accept 부분은 non-blocking 방식을 사용하는 것이 게임 서버에 더 적합하다.

 

(2024.06.28)

TCP vs UDP

 

  연결  전송순서 보장 패킷 분실시 흐름/혼잡 제어 속도
TCP 다시 전송 느림
UDP 안됨 그게 뭐임 빠름

TCP도 상대적으로 느리다 할 뿐이지 진짜 느린건 아님. 

그래도 진짜 속도가 중요해서 UDP를 사용해야 한다면, 

UDP를 그래도 사용하기 보단 좀 개선한 Reliable UDP를 사용함.

 

'공부요약노트 > 게임 서버 (C#)' 카테고리의 다른 글

멀티쓰레드 프로그래밍  (2) 2024.06.22