정보보안/네트워크 기초

OSI 7계층, 캡슐화 및 역캡슐화

록스타★ 2024. 5. 24. 15:30
반응형

OSI (Open Systems Interconnection Reference Model 7 Layer, 개방형 시스템 상호연결 참조 모델 7)

국제표준화기구에서 만든 개념 모델입니다. 쉽게 표현하자면 OSI는 상이한 컴퓨터 시스템이 서로 통신할 수 있는 표준을 제공

 

OSI 7계층 ( 물리 - 데이터 링크 - 네트워크 - 전송 - 세션 - 표현 - 응용 )

 

1. 물리 계층 (Physical Layer)

- 물리적 장치의 전기,전자적 신호 연결을 맺을 때 사용

- 디지털 데이터를 아날로그 데이터로 변환할 때 사용

- 물리적으로 연결된 노드간 신호를 주고 받음

- 단순하게 장비를 가동시키기 위한 전기 공급부터 장비들의 물리적인 연결을 위한 랜 케이블, 무선 통신을 위한 주파수까지 다양한 전기적/물리적 모두 포함 

- 단위(PDU : Process Data Unit)는 비트(Bit)를 사용하며 의미는전기적 신호 (이진: 0또는 1)를 나타낼 때 사용하는 단위 

- 서로 다른 두 장비 간의 링크 속도를 맞추기 위해 Auto-negotiation(오토네고라고 부름)을 이용하여 자동적으로 Duplex를 맞추거나 아니면 장비 간의 속도를 수동으로 맞추면 된다.

- 기술들은 전선, 광케이블, 동적케이블, 랜 케이블, 리피터 등이 있다.

 

 

 

2. 데이터링크 계층(DataLink Layer)

- 1계층의 물리적인 링크를 이용하여 데이터를 신뢰성 있게 전송하는 계층

- 네트워크 카드의 MAC(Media Access Control) 주소를 참조하여 장비간 전송  

- 전송하는 데이터 (비트들의 모음들의 헤더에 다음 목적지 주소를 같이 붙임)

- 신뢰성 있는 전송을 위해 흐름제어, 오류제어, 회선제어를 수행

- 단위(PDU : Process Data Unit)는 프레임(Frame)이라고 하며 2계층의 단위

- 물리 계층에서 발생할 수 있는 오류를 찾고 수정하는데 필요한 기능/절차 제공 (예 : CRC > 데이터 통신에서 발생할 수 있는 오류를 탐지하고, 필요하면 수정하기 위해 사용하는 방법, 데이터의 무결성을보장하기 위해 패킷 또는 프레임의 끝에 오류 검출 코드를 추가)

- LLC (Logical Link Control, 논리적인 연결제어)와 MAC(Media Access Control, 매체 접근 제어) 등이 있고 LLC는 2계층의 기본 기능을 다루며, MAC은 물리적 전송선로의 특징과 매체 간의 연결 방식에 따른 제어 부분을 처리한다.

- 기술들은 L2 스위치 장비, 브릿지, 이더넷 (Ethernet), ARP, 무선 랜 등이 있다.

 

 

3. 네트워크 계층 (Network Layer)

- 종단간 전송을 위한 경로 설정을 담당 (예 : End-To-End)

- 각 단말을 구분하도록 IP 주소를 할당하는 논리 주소(Logical Address) 사용

- 패킷 전달을 위해 할당된 IP 주소를 기반으로 네트워크를 구분하는 라우팅(Routing) 사용

- 복잡하고 다양한 경로들 중 최적의 경로 설정을 위한 프로토콜들 사용 (IGP (내부>내부), EGP (외부>내부) 등)

- 단위(PDU : Process Data Unit)는 패킷(Packet)을 사용

- 기술들은 IP, BGP, RIP, OSPF 등이 있다.

 

 

 

4. 전송 계층 (Transport Layer)

- 각 종단간의 신뢰성 있는 데이터 전송을 담당 (예 : End-To-End Reliable Delivery : 송신측에서 수신측에 안전하게 보내는 것)

- Process를 특정하기 위해 Port Number 이용

- TCP : 데이터 수신 유/무를 확인하는 연결형 (Connection-oriented) 작업

- UDP : 데이터 수신 유/무를 확인하지 않는 비연결형 (Connectionless) 작업

- 기술들은 TCP, UDP, AppleTalk 등이 있다.

- TCP는 IP위에서 동작하는 프로토콜, TCP/IP라고 같이 붙여서 부르면 TCP/IP 4계층으로 자주 사용된다.

- UDP는 TCP와 다르게 수신 확인하지 않고 전송을 하기 위한 비연결형 프로토콜이므로 전송계층에 포함

- 단위(PDU : Process Data Unit)는 세그먼트 (Segment)를 사용

- 송신측과 수신측의 각기 다른 대역폭 속도를 서로 맞춰 주는 흐름 제어(Flow Control) 작업

 

 

흐름 제어(Flow Control) 작업

- Stop-and-Wait : 송신 측은 한 번에 하나의 프레임을 전송하고, 수신 측의 확인 응답(ACK)을 기다리고, ACK를 받으면 다음 프레임을 전송
- Sliding Window :  송신 측은 여러 개의 프레임을 미리 전송할 수 있고, 수신 측은 이 프레임들을 수신하고 ACK를 보내고, 송신 측은 ACK를 받은 만큼의 새로운 프레임을 추가로 전송

- Receive Window : 수신 측은 자신이 수신할 수 있는 데이터의 양을 송신 측에 알림. 송신 측은 이 정보를 기반으로 데이터 전송 속도를 조절

 

 

5. 세션 계층 (Session Layer)

- 응용 프로그램간의 논리적인 연결(세션) 생성 및 제어를 담당

- 어떤 서버를 접근할 대 인증 (Authentication)을 해야하는 경우, 사용자는 사용자의 아이디와 암호를 입력해야만 서버에 접근할 수 있다.

- 정상적인 로그인을 한 사용자라면 서버는 접근 권한 부여, 그렇지 않다면 접근 권한 부여 X

- 기술들은 TLS,SSH, NETBIOS등이 있다.

- 단위(PDU : Process Data Unit)는 데이터(Data) 또는 메세지(Message)를 사용 (데이터를 많이 사용하는 거 같다.)

 

 

6. 표현 계층 (Presentation Layer)

- 데이터를 빠르고 안전하게 전송하기 위해 압축, 더 안전하게 전송하기 위한 암호화/복호화 작업을 하는 단계

- 데이터를 그냥 보내면 중간에 누군가가 중간에서 볼 수 있기 때문에 암호화를 한다.

- 수신자는 역순으로 복호화를 진행하여 압축된 것을 복구

- 기술들은 SSL(Secure Sockets Layer) 

- SSL/TLS라는 용어로 많이 사용된다.

- 단위(PDU : Process Data Unit)는 데이터(Data) 사용

 

 

7. 응용 계층 (Application Layer)

- 도착한 데이터를 최종 사용자가 확인하는 마지막 단계

- 브라우저, 메일 등 네트워크를 활용하는 다양한 응용프로그램들이 이 계층에 포함

- 웹 브라우저는 HTTP, HTTPS와 같은 프로토콜 사용

- SNMP, DHCP, FTP, POP3 등 다양한 프로토콜 사용

- 단위(PDU : Process Data Unit)는 데이터(Data) 사용

 

 

OSI 7계층에서는 데이터를 전송할 때 각각의 층마다 별도로 인식할 수 있는 헤더를 각각 붙이고, 이 과정을 캡슐화(Encapsulation)라고하며, 반대로 데이터가 전송 매체를 통해 전송된 후 헤더가 벗겨지게 되는 것을 디캡슐화(De-Encapsulation)라고 하는데 자세한 예시를 아래 설명

 

1. 캡슐화 과정

애플리케이션 계층에서 시작해 데이터가 생성되고, 각 계층을 거칠 때마다 데이터를 보호하고 전송을 위해 헤더가 추가

  • 애플리케이션 계층: 사용자 요청(예: HTTP 요청)이 생성
  • 전송 계층: 데이터에 세그먼트 헤더가 추가되어 데이터의 전송이 보장
  • 네트워크 계층: IP 헤더가 붙어 목적지로의 경로 설정이 이루어짐
  • 데이터 링크 계층: 프레임 헤더 및 트레일러가 추가
  • 물리 계층: 데이터를 비트 신호로 변환해 전송

2. 역캡슐화 과정

수신 측에서 물리 계층의 비트 신호가 전달되면 각 계층에서 헤더가 제거되어 원래의 데이터가 복원

  • 물리 계층: 비트 신호를 데이터 링크 계층에 전달
  • 데이터 링크 계층: 프레임이 제거
  • 네트워크 계층: IP 헤더가 제거
  • 전송 계층: 세그먼트 헤더가 제거
  • 애플리케이션 계층: 최종적으로 사용자가 요청한 원본 데이터가 복원

이 과정은 데이터의 송신 및 수신 시 데이터의 보안 및 신뢰성을 유지하면서 전송되도록 보장 예를 들어, 파일 전송 시 HTTP 요청이 TCP와 IP를 통해 목적지에 안전하게 도달할 수 있도록 각 계층에서 보호를 받게 된다.

 

 

 

그림(1) 캡슐화, 역캡슐화

 

위 그림(1)처럼 각 계층은 아래 계층의 데이터가 되고 (직전 계층에서 내려오는 부분을 페이로드(payload)라고 부름)

각 계층 마다 Request (요청)와 Response(응답)의 상호 작용을 하기 때문에 이는 서버와 클라이언트 관계라고함.

 

데이터 생성

세그먼트(Segment) : 데이터 + 전송계층 헤더(TCP,UDP 헤더)

패킷(Packet) : 세그먼트 + 네트워크 계층 헤더(IP헤더)

프레임(Frame) : 패킷 + 데이터링크 계층 헤더 + 트레일러

비트(Bit) : 프레임 자체가 물리 계층에서 비트로 변환하여 프레임을 전달, 프레임 자체 변경 없고, 비트 스트림으로 변환

 

송신측은 위에 과정을 거쳐 비트로 송신하며, 수신측은 위 과정 역순으로 진행   

송신을 할 땐 페이로드를 하여 데이터들이 캡슐화가 되고 수신 측은 캡슐화가 되어있는 데이터를 역캡슐화 하여 헤더를 하나씩 벗겨내서 데이터를 확인한다.

 

트레일러 (FCS (Frame Check Sequence) )

- 데이터를 전달할 때 마지막에 추가하는 정보

- 데이터 전송 과정에서 오류가 발생했는지를 검출하기 위해 사용

 

 

결론

네트워크 기초로 첫번 째 글을 어떤 걸로 작성할 지 고민을 많이 했었는데 네트워크에서 가장 기본적으로 알아야 하는 게 OSI 7계층과 TCP/IP 4계층이라고 생각했다. 근데 이것도 너무 어려운 것 같다. 예전에 정리 해두었던 글들을 보면서 틀렸던 부분도 많고 자격증 취득을 위해 단순히 외웠던 것들도 많았던 거 같다. 

 

반응형