본문 바로가기
CS

[네트워크] OSI 7계층

by sangyunpark99 2025. 1. 27.
오늘은 네트워크 파트 중 OSI 7계층에 대해서
알아보도록 하겠습니다.
🧐

 

OSI 7계층, 각 계층은 어떤 역할을 하길래 7개나 필요할까요?

하나씩 알아보도록 하겠습니다.

 

먼저, OSI 7계층이 무엇일까요?

OSI 7계층

OSI 7계층(Open Systems Interconnection Reference Model 7 Layesr)은 국제 표준화 기구인 ISO(International Organization for Standardization)에서 지정한 네트워크 통신 과정을 7단계로 나눈 표준 모델입니다. 

 

"이 모델은 어떻게 네트워크를 통해 데이터를 전달하게 될까요?"

간략히 나타낸 그림은 다음과 같습니다. 

데이터를 송신시에는 높은 계층에서 낮은 계층으로 전달이 되고, 수신부에 도착한 데이터는 가장 낮은 계층부터 높은 계층으로 데이터를 전달하는 구조입니다.

 

"각 계층은 데이터를 전달할때, 어떻게 전달하게 될까요? 데이터를 가공 할까요? 아님 그대로 전달할까요?"

 

먼저, 송신부를 기준으로 설명하겠습니다.

데이터를 송신시, 각 계층으로 데이터를 보낼때마다 필요한 정보를 추가해 데이터를 가공하게 됩니다.

데이터를 가공하는 방식은 제어 정보를 담은 헤더(header)와 트레일러(traller)가 붙게 됩니다. 

이러한 방식을 데이터 캡슐화(data capsulation)라고 부릅니다. 

 

개인적으로, 플라스틱 케이스가 있는 알약과 비슷하다고 생각합니다.

데이터를 가루약이라고 생각을하고, 헤더와 트레일러를 가루약을 담는 플라스틱 통이라고 생각하면 되지 않나 싶습니다.

 

"데이터 캡슐화는 왜 해주는 걸까요?"

 

데이터 캡슐화를 하는 이유는 수신부의 같은 계층에서 데이터 호환성을 높이고 오류를 최소화하기 위해서 입니다.

쉽게 말해, 데이터를 잘 싸서 필요한 곳에서 딱 맞게 쓸 수 있도록 하고, 헷갈리거나 실수하는 걸 줄이기 위해서 입니다.

 

개인적으로, OSI 7계층에서 해주는 계층별 캡슐화는 러시아 인형과 비슷하다고 생각합니다.

 

 

송신부를 기준으로 캡슐화는 다음과 같은 구조를 가집니다.

 

각 계층을 지나갈때마다 앞부분에 헤더가 붙게 되고, 데이터 링크 계층은 유일하게 트레일러가 끝부분에 붙습니다.

그림과 같이 데이터 캡슐화를 거친 최종 결과물을 수신부로 보내게 됩니다.

 

"수신부에선 송신부에서 전달받은 캡슐화된 데이터를 어떻게 사용할까요?"

수신부는 물리 계층부터 응용 계층까지 전달받은 송신부 데이터의 헤더와 트레일러를 분석해서 제거하는 역캡슐화를 진행합니다.

역캡슐화를 진행하면서 각 계층은 제어 정보(헤더, 트레일러)를 얻게 됩니다.

 

"제어 정보는 무엇일까요?"

제어정보는 쉽게 말해, 데이터를 목적지까지 안전하고 정확하게 전달하기 위해 필요한 정보라고 생각하면 됩니다.

각 계층이 붙이는 헤더에 대한 예시를 들면 다음과 같습니다.

 

애플리케이션 계층 (7계층) :  💁🏻‍♂️"이 데이터는 웹 요청(HTTP)입니다"
프레젠테이션 계층 (6계층) : 💁🏻‍♂️ "이 데이터는 암호화된 상태니까 복호화가 필요합니다"

세션 계층 (5계층) : 💁🏻‍♂️ "이 연결은 계속 유지해 주세요"

전송 계층 (4계층) : 💁🏻‍♂️ "이 데이터는 80번 포트(HTTP)로 보내야 하고, 번째 조각이니까 순서를 맞춰주세요."

네트워크 계층 (3계층) : 💁🏻‍♂️ "이 데이터를 192.168.1.1에서 192.168.1.2로 보내야 합니다"

데이터 링크 계층 (2계층) : 💁🏻‍♂️ "이 데이터는 이 네트워크 카드로 보내고, 전송 중에 데이터가 깨지지 않았는지 확인해주세요"

물리 계층 (1계층)💁🏻‍♂️ "이 데이터를 0과 1의 신호로 변환해서 케이블로 보내세요"

 

"왜 데이터 링크 계층에만 트레일러가 붙을까요?"

데이터가 전송되는 과정에서 오류가 발생할 수 있기 때문에, 데이터 링크 계층은 트레일러에 오류 검출 정보를 포함시켜 데이터가 깨지지 않았는지 확인합니다. 이를 FCS(Frame Check Sequence) 또는 CRC(Cyclic Redundancy Check)라고 하며, 수신 측에서 이 정보를 사용해 데이터의 무결성을 검증할 수 있습니다.

 

 

OSI 7계층 전체 구조

그림에 나오는 프로토콜(protocol)은 데이터를 송수신하기 위해 정한 규칙을 의미합니다.

 

"각 계층은 어떤 역할을 할까요?"

각 계층의 역할과 상황 예시를 들어 설명하겠습니다.

 

✅ 응용 계층(7계층)

HTTP, FTP등의 프로토콜을 응용 프로그램의 UI를 통해서 제공합니다.

 

웹 브라우저에서 주소창에 URL을 입력하면 HTTP 프로토콜이 자동으로 동작해서 웹 페이지를 불러오는 상황,

파일 전송 프로그램에서 '업로드' 버튼을 누르면 FTP 프로토콜을 통해 파일이 전송되는 상황이 있습니다.

 

 

✅ 표현 계층(6계층)

데이터를 표준화된 형식으로 변경합니다.

 

A 컴퓨터가 텍스트를 UTF-8로 보냈다면, B 컴퓨터는 이걸 읽을 수 있도록 UTF-8을 해석하는 상황(문자 인코딩/디코딩),

큰 파일을 압축해서 보냈다면, 받은 쪽에서 다시 풀어서 원래 상태로 돌려주는 상황 / 암호화된 데이터를 받은 쪽에서 복호화해 읽을 수 있게 만들어주는 상황(압축/복호화)이 있습니다.

 

 

✅ 세션 계층(5계층)

세션의 유지 및 해제 등 응용 프로그램 간 통신 제어와 동기화를 합니다.

 

두 컴퓨터가 대화할 수 있도록 연결을 만들고, 대화가 끝나면 연결을 끊는 역할을 합니다.

쉽게 말하면, 전화 통화를 생각할 수 있습니다.

  1. 세션 시작: 전화를 걸어 연결이 되면 대화가 시작됩니다.
  2. 세션 유지: 통화 중에는 연결을 유지해서 대화가 계속될 수 있게 해줍니다.
  3. 세션 종료: 대화가 끝나면 전화를 끊어서 연결을 해제합니다.

 

✅ 전송 계층(4계층)

신뢰성 있는 데이터를 전달하기 위한 계층입니다. TCP, UDP 같은 전송 방식과 포트 번호 등을 결정합니다.

 

"TCP, UDP, 포트 번호는 무엇일까요?"

 

💁🏻‍♂️TCP : 데이터를 꼼꼼하게 전달해주세요! (속도 < 신뢰성) ex) 웹 페이지 로드, 파일 다운로드

💁🏻‍♂️UDP : 데이터를 꼼꼼하진 않아도 되니 빨리 전달해주세요! (신뢰성 < 속도) ex) 실시간 스트리밍 

💁🏻‍♂️포트 번호 : 어디로 보낼지 말해주세요! (집을 서버로 생각하면 포트 번호는 안방과 화장실을 의미합니다.)

 

 

✅ 네트워크 계층(3계층)

데이터를 송신부에서 수신부까지 보내기 위한 최적 경로를 선택하는 라우팅을 수행합니다.

라우팅으로 선택된 최적 경로를 라우트라고 합니다. 네트워크 계층의 장비로는 라우터가 있습니다.

 

라우팅, 라우트, 라우터의 역할은 다음과 같습니다.

라우팅 : 데이터를 목적지까지 보내기 위해 최적의 길을 찾는 내비게이션 역할을 합니다.

라우트 : 라우팅으로 선택된 최적의 길을 의미합니다. 고속도로라고 생각하면 됩니다.

라우터 : 데이터를 어디로 보내야 할지 결정하는 교통정리 장치입니다. 데이터를 목적지로 잘 보내줍니다.

 

 

✅ 데이터링크 계층(2계층)

데이터의 흐름을 관리하며 데이터의 오류 검출 및 복구 등을 수행합니다.

브리지(bridge), 스위치(switch), 이더넷(ethernet)과 같은 장비가 있습니다.

 

"브리지(bridge), 스위치(switch), 이더넷(ethernet)은 무엇일까요?"

 

브리지와 스위치 : 데이터를 어디로 보낼지 결정하면서, 데이터를 올바른 장치로 전달해줍니다.

이더넷 : 데이터를 보내는 규칙이자 기술입니다. 사람들이 모두 같은 언어(규칙)로 대화해야 잘 소통되는 것처럼, 이더넷도 데이터를 보내는 약속을 정해놓은 것 입니다.

 

"브리지와 스위치의 역할이 겹치는걸까요?"

브리지는 단순히 네트워크를 나눠서 연결해주는 다리 역할이고, 스위치는 더 똑똑해서 장치 하나하나를 구분하고 효율적으로 데이터를 보내주는 역할을 합니다.

 

 

✅ 물리 계층(1계층)

데이터를 비트(bit) 단위인 0과 1로 변환한 후 장비를 사용해 전송하거나 전기 신호를 데이로 복원하는 역할을 합니다. 

물리 계층의 장비로는 리피터(repeater), 허브(hub)가 있습니다.

 

"리피터와 허브는 무엇일까요?"

 

리피터는 약해진 신호를 복원해서 다시 보내주는 방식입니다. 데이터가 전송되면서 신호가 약해지거나 흐릿해질 수 있는데, 이 신호를 증폭하는 역할을 해줍니다. 

A,B,C라는 사람이 있고 일렬로 서있습니다. A라는 사람이 C라는 사람에게 소리를 질러 위험하다고 알려주는 상황을 가정합니다. 

거리가 너무 멀어서 A라는 사람이 아무리 소리쳐도 들리지 않을때, B(리피터)라는 사람이 A라는 사람의 소리를 듣고, 정확하고 큰 소리로 C라는 사람에게 위험하다고 전달하는 것을 의미합니다.

 

허브는 여러 장치를 하나의 네트워크로 연결하는 장치입니다.

네트워크에 연결된 모든 장치에게 데이터를 무작위로 모두에게 보냅니다. 누가 데이터를 필요로 하는지 따로 판단하지 않아서, 효율은 낮지만 단순한 연결이 필요할 때 사용됩니다.

단체 카톡방에 메시지를 보내면 모든 사람이 받는 것처럼, 허브는 데이터를 네트워크에 연결된 모든 장치로 뿌리는 역할을 합니다.

단, 허브는 데이터를 무작위로 모두에게 보내서 네트워크 트래픽이 많아질 수 있습니다.

 

 

정리

OSI 7계층은 국제 표준화 기구(ISO)가 정의한 네트워크 통신 과정을 7단계로 나눈 모델로, 데이터를 송수신할 때 각 계층이 역할을 분담해 데이터를 안전하고 효율적으로 전달합니다. 

응용 계층, 표현 계층, 세션 계층, 전송 계층, 네트워크 계층, 데이터 링크 계층, 물리 계층이 존재하고, 각 계층마다 데이터를 전달할때 송신부를 기준으로 캡슐화 하여 제어정보를 추가하고, 수신부를 기준으로 역캡슐화를 통해 제어정보를 회수하게 됩니다.

 

 

 

 

 

 

 

 

'CS' 카테고리의 다른 글

[운영체제] 스케줄링  (0) 2024.11.26
데이터베이스 이상 현상의 원인, 속성 간 종속  (0) 2024.09.25
CPU를 극단적으로 사용하기  (1) 2024.08.28