OSI 7 계층이란 무엇인가?
개방형 시스템 상호 연결(OSI) 모델은 네트워크 통신을 7개의 계층으로 나눈 개념 모델이다.
다양한 하드웨어와 소프트웨어가 장벽을 넘어 통신할 수 있게 하기 위해
이를 지원하기 위한 표준이라고 볼 수 있다.
우리가 말이 통하지 않는 외국인과 대화를 시도할 때 기본적으로 영어를 사용하는 것과 같다.
서로 문화나 언어가 달라도 영어라는 공용어가 있기에 통신할 수 있게 된다.
왜 중요한가?
요즈음의 네트워크는 OSI 모델에 1:1 대응하지 못하는 경우가 많다.
그럼에도 중요한 이유는 표준화와 시스템에 대한 이해에 매우 효과적이기 때문이다.
OSI 모델은 국제적인 표준이다. 1:1 대응할 수 없다고 하더라도 아예 매치되지 않는 것은 아니다.
그리고 계층을 나눠서 시스템을 들여다보면 각 부분의 역할을 보다 덜 복잡하게 이해할 수 있다.
이러한 점들은 이후 트러블슈팅에 있어서도 문제가 되는 부분을 명확히 해 효율을 더한다.
7 계층
OSI 7 계층엔 다음의 계층이 있다.
- 물리 계층
- 데이터 링크 계층
- 네트워크 계층
- 전송 계층
- 세션 계층
- 프레젠테이션 계층
- 응용 계층
이러한 흐름으로 계층을 시각화할 수 있다.
각 계층이 어떤 것을 나타내는지 MMORPG 서버의 동작에 비교해 알아보자.
1. 물리 계층 (Physical Layer)
데이터가 실제로 지나가는 물리적인 부분을 말한다.
데스크탑에 연결하는 랜선, 공유기를 통한 와이파이 또는 LTE나 5G 등을 통한 데이터 통신이 되겠다.
2. 데이터 링크 계층 (Data Link Layer)
물리 계층의 연결을 활용하여 두 시스템을 신뢰성 있게 연결하는 데 사용되는 기술을 말한다.
네트워크 계층에서 사용되는 패킷을 가져와 프레임이라고 불리는 단위로 만들어 관리한다.
이 계층에선 데이터의 흐름 및 오류 제어를 담당하게 된다.
클라이언트의 요청이 게임 서버까지 도달하기 위해,
MAC 주소를 이용하여 네트워크의 라우터 및 스위치를 통과하는 과정이 여기서 이루어진다.
3. 네트워크 계층 (Network Layer)
데이터가 네트워크를 통해 목적지까지 도달할 수 있도록 경로를 설정하는 역할을 하는 계층이다.
이 계층에선 다음의 기능을 수행하게 된다.
- 각 단말을 구분하는 IP 주소 할당
- IP를 기반으로 네트워크를 구분하는 라우팅
- 최적 경로를 찾기 위한 경로 결정 기능 (BGP 등...)
클라이언트에서 서버로 보낸 요청이 IP 주소를 통해 서버로 라우팅 되는 과정이 여기서 이루어진다.
패킷이라는 단위에 대해 들어본 적이 있을 텐데, 네트워크 계층에서 관리하는 단위이다.
4. 전송 계층 (Transport Layer)
전송 계층은 두 시스템 간의 종단 통신을 담당하게 된다.
흐름 및 오류 제어를 통해 데이터 전송의 신뢰성을 확보하는 것에 그 목적이 있다.
통신의 신뢰성이 필요한 거래 등의 중요한 작업은 TCP로 통신하게 하고,
필드 내 여러 플레이어의 동작 등은 빠른 반응성이 중요하기에 UDP로 통신하게 할 수도 있다.
5. 세션 계층 (Session Layer)
세션이란, 통신이 시작될 때부터 종료될 때까지의 시간을 말한다.
세션 계층은 두 시스템 사이의 통신의 시작과 끝을 관리하게 된다.
클라이언트와 서버 간의 연결과 그 상태를 유지하는 것을 두고 세션을 유지한다고 할 수 있다.
이는 게임 서버에서 요청이 유효한 요청인지 확인하는 기능도 수행할 수 있다.
이 요청이 실제로 유효한 세션에서 온 것인지 확인하여 부정한 조작을 방지한다.
게임의 로그인이 유지되는 것도 세션이 유지되기에 가능한 것이다.
6. 표현 계층 (Presentation Layer)
표현이라는 말 때문에 가장 헷갈릴 수 있는 계층.
표현 계층은 주로 앱이 통신하고 소비하는 데이터의 표현 방식과 관련이 있는 계층이다.
데이터의 변환이나 암호화, 압축, 인코딩 등을 담당하게 된다.
통신하는 시스템 간 다른 인코딩을 사용할 수 있으므로,
수신 측의 응용 계층이 이해할 수 있는 구문으로 변환해야 한다.
번역기라고 생각하자. 언어는 다르지만 그 의미는 번역을 통해 전해질 수 있다.
클라이언트에서 활용 중인 데이터를 가공하여 보내면,
서버는 그 데이터를 서버가 이해할 수 있는 형식으로 변환해서 처리한다. 물론 그 반대도 동일하다.
만약 암호화가 필요한 경우, 이 계층에서 암/복호화를 진행한다.
7. 응용 계층 (Application Layer)
이 계층은 최종 사용자가 통신으로 주고받은 데이터와 직접적으로 상호 작용 하는 유일한 계층이다.
웹 브라우저나 파일 공유 프로그램등이 응용 계층을 활용하는 대표적인 응용 프로그램이라 할 수 있다.
HTTP/S, FTP 등이 이 계층에 해당된다.
내가 만약 캐릭터를 이동하거나 스킬을 사용하는 등의 행동을 취한다고 가정하자.
그럼 클라이언트에선 이 행동에 대한 요청을 생성해 게임 서버로 보낸다.
이 요청은 HTTP/S 또는 게임 자체의 프로토콜을 통해 전송될 준비를 하게 된다.
서버에선 이를 받고 처리하고, 그 결과를 클라이언트에게 돌려주기 위해 응답을 생성한다.
각 계층에 대한 자세한 공부는 다음에 또 할 기회가 있을 것이다.
Reference / 출처
https://aws.amazon.com/ko/what-is/osi-model/
https://www.cloudflare.com/ko-kr/learning/ddos/glossary/open-systems-interconnection-model-osi/
'Camp > Standard' 카테고리의 다른 글
[OSI 7계층] 전송 계층 (0) | 2024.09.06 |
---|---|
[OSI 7계층] 네트워크 계층 (0) | 2024.09.06 |
[OSI 7계층] 데이터 링크 계층 (0) | 2024.09.03 |
[OSI 7계층] 물리 계층 (0) | 2024.09.03 |
서버와 클라이언트는 무엇인가? (0) | 2024.08.26 |