OSI 7계층

성찬홍·2024년 8월 24일

Computer Science

목록 보기
2/22
post-thumbnail

오늘은 정처기 공부를 할 때 무작정 외우기만 했던 OSI 7계층의 각 층이 어떤 역할을 하는지 공부해 보겠습니다.

네트워크란?

: 컴퓨터나 기타 기기들이 리소스를 공유하거나 데이터를 주고받기 위해 유선 혹은 무선으로 연결된 통신 체계를 말한다.

기능들

  • 애플리케이션 목적에 맞는 통신 방법 제공
  • 신뢰할 수 있는 데이터 전송 방법 제공
  • 네트워크 간의 최적의 통신 경로 결정
  • 목적지로 데이터 전송
  • 노드 사이의 데이터 전송

⇒ 위 통신 기능이 제대로 동작하기 위해서는 참여자들 사이에 약속된 통신 방법이 있어야 한다.

& 이 모든 기능을 하나의 프로토콜로 구현할 수 있을까?

⇒ 그럴 수 없다.

  • 그래서 모듈화를 해야 한다.
  • 기능별로 분리하자.
  • 어떻게 모듈화하면 될까?

⇒ 네트워크가 제공하는 기능들을 살펴보니 각 기능이 계층별로 동작하는 것과 같은 구조로 보인다.
계층 구조의 탄생(OSI Model 7 Layer)

OSI 7계층이란?

: 범용적인 네트워크 구조

1. Application Layer(7층)

: 애플리케이션 목적에 맞는 통신 방법 제공

ex)

  • HTTP: 애플리케이션끼리 통신하고 싶다면
  • FTP: 파일을 업로드하고 다운로드하고 싶다면
  • DNS: 도메인을 IP 주소로 바꾸고 싶다면
  • SMTP: 이메일을 보내고 싶다면

⇒ 어떻게 데이터를 보낼 것인지와 같은 내용은 7층의 관심사가 아니라, 아래 계층의 기능을 사용하는 것이다.

2. Presentation Layer(6층)

: 애플리케이션 간의 통신에서 메시지 포맷 관리

  • 인코딩 ↔ 디코딩
  • 암호화 ↔ 복호화
  • 압축 ↔ 압축 풀기

3. Session Layer

: 애플리케이션 간의 통신에서 세션을 관리

  • RPC

4. Transport Layer

  • 애플리케이션 간의 통신 담당
  • 목적지 애플리케이션으로 데이터 전송
  • 안정적이고 신뢰할 수 있는 데이터 전송 보장(TCP)
  • 필수 기능만 제공(UDP)

5. Network Layer

  • 호스트 간의 통신 담당(IP)
  • 목적지 호스트로 데이터 전송
  • 네트워크 간의 최적의 경로 결정

⇒ 전체적인 경로를 담당하는 것이지, 데이터를 어떻게 전송할 것인지는 네트워크 계층의 관심사가 아니다.
데이터를 전송하는 것은 데이터 링크 계층이 수행한다.

⇒ 바로 아래 계층의 기능을 사용하는 것이다.

  • 직접 연결된 노드 간의 통신 담당

    • MAC 주소 기반 통신(ARP)

7. Physical Layer

: 비트(bits) 단위로 데이터 전송


그림으로 나타내는 네트워크 계층을 통한 데이터 전송 모습

(1) 7층에서 1층으로 데이터가 내려오면서 포장된다.
(2) 1층까지 내려오면 라우터로 보내고, 이 포장지를 뜯어서 3층으로 보낸다.
(3) 목적지에 도착할 수 있도록 IP 주소를 확인하고 1층으로 포장해서 보낸 뒤, 우측의 1층으로 보낸다.
(4) 데이터가 7층까지 올라가 전달되는 것이다.

예제를 통한 설명

Step 1

  • 7층(애플리케이션)에서 발생한 정보를 애플리케이션 헤더에 담아 묶어서 6층(프레젠테이션)으로 보낸다.
  • 6층(프레젠테이션)에서도 부가적인 정보를 새 헤더에 담아서 5층(세션)에 전달해 준다.
  • 5층(세션)에서도 헤더에 새로운 정보를 담아서 4층(트랜스포트)에 전달해 준다.

Step 2

  • 4층(트랜스포트)은 목적지 전달을 위한 계층이므로, 목적지 전달에 필요한 내용을 헤더에 담고 3층(네트워크)에 전달해 준다.

  • 3층(네트워크)은 이 애플리케이션을 담당하는 호스트 사이의 통신을 담당하기 때문에 목적지 IP 주소를 확인하고, 어디로 보내 줘야 할지를 네트워크 계층의 헤더에 담아서 2층(데이터 링크)으로 보내 준다.

  • 2층(데이터 링크)은 두 노드 사이에서 데이터를 어떻게 보내 줄지를 2층(데이터 링크) 헤더에 담아 주고, 트레일러를 추가한다.
    그리고 1층(피지컬)으로 보내 준다.

    • 트레일러는 전송 후 데이터 전송에 문제가 있었는지 확인하기 위함이다.
  • 1층(피지컬)에서 비트 단위로 라우터에 전송해 준다.

Step 3

  • 라우터는 전달받은 비트 데이터를 변환 전 데이터로 만들고 2층(데이터 링크)으로 올린다.
  • 2층(데이터 링크)은 헤더와 트레일러를 확인하고, 문제가 없다면 헤더와 트레일러를 없앤 뒤 네트워크 계층으로 올려 준다.
  • 3층(네트워크)에서는 목적지 주소를 확인해야 하므로 다음 노드를 확인하고, 수정할 부분을 수정한 뒤 2층(데이터 링크)으로 내려 준다.
  • 이러면 데이터는 두 노드 사이의 통신을 담당하게 된다.
  • 헤더와 트레일러를 추가하고 1층(피지컬)으로 보내 준다.
  • 1층(피지컬)은 또다시 비트 단위로 전송하고, 2층(데이터 링크)으로 올려 준다.
  • 2층(데이터 링크)은 헤더와 트레일러를 확인하고, 문제가 없으면 떼어 낸 뒤 3층으로 올려 준다.
  • 3층(네트워크)은 또다시 목적지를 확인하고, 네트워크 헤더에서 수정할 부분을 수정한 뒤 또다시 2층으로 내린다.
  • 그리고 똑같이 1층(피지컬)으로 내리는 작업을 반복적으로 수행한다.
  • 이렇게 원하는 목적지에 도착했을 때, 이제는 Network 헤더를 떼고 4층(트랜스포트)으로 전달해 준다.
  • 이후에는 5층(세션), 6층(프레젠테이션)도 똑같이 헤더를 떼어 내고 상위 계층으로 전달해 준다.
  • 마지막으로 7층(애플리케이션)에서 처리한 후 최종적으로 데이터가 도달하게 된다.

Encapsulation & Decapsulation

: 위에서 헤더를 담고 뜯는 과정을 반복하는 것을 의미한다.


TCP/IP Stack

: OSI 7계층과 비슷한 구조로, 몇 개의 계층을 하나로 묶어 본 형태이다.

  • 애플리케이션 + 프레젠테이션 + 세션 ⇒ 애플리케이션 계층으로 통일
  • 트랜스포트 ⇒ 트랜스포트
  • 네트워크 ⇒ 네트워크
  • 데이터 링크 + 피지컬 ⇒ 링크 계층으로 통일

업로드 중


마무리

  • 단순 암기로만 외웠던 내용이었는데, 네트워크상에서 각 계층이 어떻게 이용되는지와 어떤 식으로 데이터가 움직이는지 알아볼 수 있었습니다.
profile
꾸준한 개발자

0개의 댓글