네트워크 공부

TCP / IP 계층 구조 1(특징)

때류기 2023. 10. 24. 22:35

안녕하세요.

이번에는 멀티 플레이가 지원되는 Unity 게임을 제작하기에 앞서 네트워크에 관한 지식이 부족한 것 같아 네트워크 공부를 시작했습니다.

공부를 하기 위해 "멀티플레이어 게임 프로그래밍" 책을 구매하여 책을 통해 이해한 정보들을 올려볼까 합니다.

 

관련 책: https://product.kyobobook.co.kr/detail/S000001792473

 

멀티플레이어 게임 프로그래밍 | 조슈아 글레이저 - 교보문고

멀티플레이어 게임 프로그래밍 |

product.kyobobook.co.kr

 

TCP / IP 계층

TCP/IP 계층은, TCP/IP 프로토콜 통신 과정에 초점을 맞추어, OSI 7계층을 좀 더 단순화 시킨 계층을 의미

 

책에서 말하는 TCP / IP 계층

링크 계층의 구현물과 물리 계층의 연결 매체가 서로 밀접하게 연관되어 있다 보니 일부 모형에선 이 두 가지를 합쳐 4계층으로 말하기도 하지만, 하나의 이상의 링크 계층 프로토콜을 지원하는 물리적 연결 매체도 있으므로, 책에선 서로 다른 계층으로 구별해놨다.

 

계층 구조

  • 물리계층 - 링크계층 - 네트워크계층 - 전송계층 - 응용계층

 

우아한 면

  • 목적에 따라 여러 프로토콜을 갈아 끼울 수 있게 계층을 추상화하여 나누고, 각 계층이 저마다의 소임에 충실할 수 있게끔 설계하여 각기 독립된 계층이 다른 계층을 뒷받침하고 데이터를 적절히 연계가 가능함

 

지저분한 면

  • 추상화를 잘해놓았지만 프로토콜 작성자마다 성능이나 확장성의 이유로 설계 철학에 반하는 복잡한 예외사항이 많음

 

특징

각 계층은 저마다 자기 윗단 계층을 지원하기 위해 수행해야하는 역할이 있음

 

- 대표적인 역할

  • 윗단 계층에서 데이터 블록을 수신한다.
  • 계층 헤더(Header)를 추가해(필요하면 푸터(Footer)도 추가해) 패킷을 꾸린다.
  • 데이터를 아랫단 계층으로 전달해 송신과정을 계속해 나간다.
  • 아랫단 계층에서 수신된 데이터를 보낸다
  • 헤더를 제거하여 수신된 데이터의 패킷을 푼다.
  • 수신된 데이터를 윗단 계층으로 전달해 수신 처리를 계속해 나간다.

 

하지만 각 계층이 구체적으로 어떤 식으로 역할을 수행해야 하는지 정해져 있지는 않음

각 계층마다 다양한 프로토콜(Protocol)이 있어 그중 하나로 역할을 수행

 

객체 지향 개념이 익숙하다면 계층을 인터페이스라 여기고, 각 프로토콜이나 프로토콜 집합은 그 인터페이스를 구체화한 구현물이라고 생각하면 이해하기 편하다.