안녕하세요.
이번에는 멀티 플레이가 지원되는 Unity 게임을 제작하기에 앞서 네트워크에 관한 지식이 부족한 것 같아 네트워크 공부를 시작했습니다.
공부를 하기 위해 "멀티플레이어 게임 프로그래밍" 책을 구매하여 책을 통해 이해한 정보들을 올려볼까 합니다.
관련 책: https://product.kyobobook.co.kr/detail/S000001792473
TCP / IP 계층
TCP/IP 계층은, TCP/IP 프로토콜 통신 과정에 초점을 맞추어, OSI 7계층을 좀 더 단순화 시킨 계층을 의미
책에서 말하는 TCP / IP 계층
링크 계층의 구현물과 물리 계층의 연결 매체가 서로 밀접하게 연관되어 있다 보니 일부 모형에선 이 두 가지를 합쳐 4계층으로 말하기도 하지만, 하나의 이상의 링크 계층 프로토콜을 지원하는 물리적 연결 매체도 있으므로, 책에선 서로 다른 계층으로 구별해놨다.
계층 구조
- 물리계층 - 링크계층 - 네트워크계층 - 전송계층 - 응용계층
우아한 면
- 목적에 따라 여러 프로토콜을 갈아 끼울 수 있게 계층을 추상화하여 나누고, 각 계층이 저마다의 소임에 충실할 수 있게끔 설계하여 각기 독립된 계층이 다른 계층을 뒷받침하고 데이터를 적절히 연계가 가능함
지저분한 면
- 추상화를 잘해놓았지만 프로토콜 작성자마다 성능이나 확장성의 이유로 설계 철학에 반하는 복잡한 예외사항이 많음
특징
각 계층은 저마다 자기 윗단 계층을 지원하기 위해 수행해야하는 역할이 있음
- 대표적인 역할
- 윗단 계층에서 데이터 블록을 수신한다.
- 계층 헤더(Header)를 추가해(필요하면 푸터(Footer)도 추가해) 패킷을 꾸린다.
- 데이터를 아랫단 계층으로 전달해 송신과정을 계속해 나간다.
- 아랫단 계층에서 수신된 데이터를 보낸다
- 헤더를 제거하여 수신된 데이터의 패킷을 푼다.
- 수신된 데이터를 윗단 계층으로 전달해 수신 처리를 계속해 나간다.
하지만 각 계층이 구체적으로 어떤 식으로 역할을 수행해야 하는지 정해져 있지는 않음
각 계층마다 다양한 프로토콜(Protocol)이 있어 그중 하나로 역할을 수행
객체 지향 개념이 익숙하다면 계층을 인터페이스라 여기고, 각 프로토콜이나 프로토콜 집합은 그 인터페이스를 구체화한 구현물이라고 생각하면 이해하기 편하다.
'네트워크 공부' 카테고리의 다른 글
동기와 비동기 방식[블로킹과 논블로킹] (0) | 2023.12.25 |
---|---|
TCP / IP 계층 구조 3(네트워크 계층1) (0) | 2023.11.13 |
TCP / IP 계층 구조 2(물리, 링크 계층) (0) | 2023.10.27 |