OSI 7계층

김민건·2022년 4월 17일
0

네트워크

목록 보기
6/6

OSI 7계층

OSI 7계층이란?

OSI 7계층이란 통신이 발생하는 과정을 계층적으로 분리해둔 것이다.

OSI 7계층을 왜 나눌까?

OSI 7계층으로 분리함으로써 야기된 네트워크 문제를 간편하게 파악할 수 있고, 독립적으로 해결할 수 있다. 이것이 가능한 이유는 OSI 7계층이 가지는 일종의 특성때문이다.OSI 7계층은 각각의 계층에 해당되는 역할만 담당하여 인접한 계층과의 상호작용만 발생하고, 순차적으로 캡슐화, 역캡슐화가 일어난다는 특성을 지닌다.

전달할 때는 7부터 1계층까지 순차적으로 캡슐화가 일어나면서 데이터가 가공되고, 받을 때는 1계층부터 7계층으로 역캡슐화가 발생하면서 데이터를 사용한다. 또한, 각 계층에서 담당하는 작업에 충실하기 때문에, 타 계층에 상관없이 유연하게 교체 및 확장이 가능하다. 따라서 문제 상황이 어떤 계층이 담당하는 작업인지만 판별한다면 다른 계층은 건드리지 않고 독립적이고 빠르게 조치할 수 있는 것이다.

즉, OSI 7계층은 각각 독립적이고, 순차적으로 동작한다

실생활에서 접할 수 있는 간단한 예시를 들어보자

우리가 컴퓨터 성능을 업그레이드하려고 할 때, 뭐 물론 전체적으로 다시 구매하는 경우도 있겠지만 우리는 필요한 부분만 선택적으로 확장할 수 있다. 용량이 부족하면 추가적인 하드디스크를 넣거나 더 큰 용량의 하드디스크를 구매하고, 메모리가 부족하면 RAM, 멀티태스킹이 부족하면 CPU 코어를 늘리는 등, 필요한 부분만 바꿔줄 수 있다.
그리고 특정 부품이 고장나면 컴퓨터를 사용할 수 없는 것은 같지만, 파워가 고장나면 컴퓨터를 킬 수 없는 것처럼 특정 이상현상이 발생하기 때문에 특정 부분의 문제인지 파악하고 교체해줌으로써 문제를 해결할 수 있다.

OSI 7계층을 분리한 맥락도 동일하다. 결국 각 계층의 역할에 맡는 하드웨어, 혹은 소프트웨어만을 확장시키고 교체해주기 위해 사용되는 개념이다. 문제가 발생하면 허브, 스위치, 라우터 등, 어떤 장치의 문제인지 파악할 수 있는 것이다.

OSI 계층구조

OSI 7계층은 이름 그대로 총 7개의 계층구조로 이루어져있다. 백엔드 개발자로서 이러한 계층을 보통 로드밸런서 등을 다루면서 접하게 되는데, 흔히 L1 ~ L7으로 줄여서 말한다.

이 중, L1~L3까지를 하드웨어, L5~L7까지를 소프트웨어 부분과 크게 연관되어 있다고 생각하고 아래 내용을 이해하면 도움이 될 것 같다. ( L4는 소프트웨어와 하드웨어 사이 어딘가... )

1. 물리 계층

먼저 L1~L3까지는 실세계의 교통에 비유해서 예시를 들어가며 기술해보려 한다.

물리 계층은 통신에 있어서 통신 매개를 제공한다라는 의미로 이해하면 좀 더 편할 것 같다. 현실에서는 일종의 도로의 역할을 하는 것이다. 우리가 컴퓨터를 잘~ 구성해놨다해도, 제대로 쓰려면 인터넷은 필수다. 우리는 이 때 보통 랜선을 직접 연결해서 인터넷을 사용하는데, 여기서 이 랜선이 물리 계층에 해당하는 장비다.

하지만 생각해보자, 만약 랜선만 있다면 인터넷에 연결할 수 있을까? 사실 이 랜선은 컴퓨터 간의 연결에서도 사용할 수 있다. 즉, 결국 이 랜선은 다른 EndPoint와 통신을 하기 위한 기초적인 매개체이자 다리다.

컴퓨터 등의 일반적인 전자기기는 "0"과 "1"의 전기신호를 주고받는데, 이 물리 계층에서는 이 신호를 전달하는 역할을 수행한다.

정리

  • bit (0, 1) 단위로 통신한다
  • 데이터 전달만 담당한다
  • 대표적인 장비로는 허브, 통신 케이블 등이 있다

2. 데이터 링크 계층

데이터 링크 계층은 일종의 교통 경찰과 같은 역할을 한다. 교통 체증이 심할 때, 교통사고나 더 심각한 교통 체증을 해결하기 위해 적절히 중재해주시는 게 바로 교통 경찰분들이다. 이런 상황은 통신 과정에서도 발생하는데, 이런 역할을 데이터 링크 계층에서 담당한다. 우리는 이 개념을 이해하기 위해서는 물리 계층에서 무작정 데이터를 전달하는 경우 발생하는 다양한 상황을 상상해봐야 한다.

  1. 전달하는 측에서는 시간당 500만큼 데이터를 전달하고, 받는 쪽에서는 시간당 100만큼밖에 처리하지 못한다면?
  2. 서로가 서로에게 동시에 데이터를 전달하려고 한다면?
  3. 데이터를 전달하다가 물리적 신호가 손상된다면?

또한, 데이터 링크는 표지판의 역할도 같이 수행한다. 물리 계층은 말그대로 도로의 역할을 하기 때문에, 삼거리, 사거리 등을 만났을 때 어느 곳으로 가야하는지 모른다. 데이터 링크 계층에서는 MAC 주소를 기반으로 특정 위치에서 가야하는 방향을 제시한다. 단, 여기서 주의해야할 점은 전체적인 경로를 제시하는 것이 아니라, 단순히 다음 갈림길로 가기 위한 일시적인 방향만을 알려준다는 것이다.

우리가 인터넷을 통해 타 사이트에 접속할 때 일어나는 과정은 결코 직접적으로 연결되어 일어나지 않는다. 우리는 여러 경유지를 거쳐서 최종 목적지에 도달하는데, 경유지마다 여러 방향으로 길이 나 있는데, 데이터 링크는 각각의 경유지마다 원하는 다음 경유지로 가기 위해 어떤 길로 가야하는지만 알려주는 것이다.

정리

  • Frame 단위로 통신한다.
  • 데이터의 신뢰성과 직접 연결된 두 노드가 어느 매개체로 연결되어 있는지 알려주는 역할을 담당한다.
  • 대표적인 장비로는 스위치가 있다.
  • 대표 개념으로는 MAC, Ethernet 등이 있다.

3. 네트워크 계층

네트워크 계층은 네비게이션의 역할과 유사하다. 다만, 데이터 링크와 네트워크의 차이점은 네트워크 계층에서는 가장 효율적인 경로만을 선정하고, 데이터 링크에서는 이렇게 선별된 경로로 이동하기 위해서 지금 이 순간 어떤 통로를 선택해야하는지를 정해주는 것이다.

즉, 어떻게 보면 네트워크와 데이터 링크가 복합적으로 이루어져서 네비게이션의 역할을 한다고 생각하면 이해가 편할 것 같다. 네트워크에서는 길 자체를 도식화시켜주는 것이 아니라 최선의 경로에 포함된 각각의 목표 지점의 이름만 명시해주고, 데이터 링크에서 해당 위치로 가기위해 좌회전을 해야하는지, 직진을 해야하는지 알려준다.

정리

  • Packet 단위로 통신한다.
  • 최종 목적지로 도달하기 위한 최적의 경로를 제공한다.
  • 대표적인 장비로는 라우터가 있다.
  • 대표 프로토콜으로는 IP가 있다.

4. 전송 계층

전송 계층은 데이터 링크 계층과 유사한 역할을 수행한다. 데이터 링크는 물리 계층에 대한 검증을 담당했다면, 전송 계층은 네트워크 계층에 대한 검증을 담당한다. 전송 계층은 데이터 링크처럼 흐름 제어, 오류 제어의 역할을 수행해준다.

전송 계층은 일종의 안내데스크 역할을 한다. 예를 들어, 우리가 네비게이션을 통해 도착지(컴퓨터)에 왔다해도, 몇 층, 몇 호(애플리케이션)에 가는 것은 다른 이야기다. 전송 계층은 어떤 애플리케이션이 사용하는 데이터인지 식별하여 이를 전달하는 역할을 수행한다.

정리

  • Segment 단위로 통신한다.
  • 컴퓨터로 전달된 데이터를 애플리케이션까지 전달한다.
  • 대표 프로토콜으로는 TCP, UDP 등이 있다.

5. 세션 계층

세션 계층은 연결을 유지, 복구하고 동기화 역할을 수행하여 연결이 성공적으로 이어져나갈 수 있도록 도와주는 계층이다. 여기서 동기화란, 양 측에서 이전까지의 통신을 완벽하게 처리했다는 특정 지점을 설정하는 작업을 의미한다.

또한, EtoE간의 상호 작용 방식도 관리하는데, 이는 전이중 방식, 반이중 방식, 단방향 방식 등으로 분리된다.

정리

  • 연결 유지, 복구 작업을 담당한다.

6. 표현 계층

표현 계층은 전달된 데이터를 정형화된 형태로 가공하는 역할을 수행한다. 예를 들어 JPEG, MPEG 등의 프로토콜이 있는데, 우리가 이미지를 다룰 때 포맷을 결정지어주고 데이터 형태를 전환시켜주는 계층이다. 데이터의 효율과 보안을 위해 압축이나 포맷 변환 등의 작업을 담당한다.
( 인코딩 및 디코딩, 암호화 및 복호화 )

정리

  • 데이터의 처리 작업을 담당한다.

7. 응용 계층

응용 계층은 일반 사용자가 직접 상호작용하는 계층이다. 사용자는 이 인터페이스를 통해서 타 EndPoint와 통신을 이어나간다.

정리

  • 대표적인 프로토콜은 HTTP, SMTP, DNS, FTP 등이 있다.

References

profile
백엔드 꿈나무

0개의 댓글