OSI 모형(Open Systems Interconection Reference Model)
OSI 모형은 프로토콜 디자인과 통신 방식을 7개로 계층화하여 구분합니다. 흔히 OSI 7 계층(OSI 7 Layer)라고 부릅니다. OSI 7 계층은 Layer 1부터 Layer 7까지 존재합니다. 각각의 Layer는 통상적으로 L1, L2 등으로 축약하여 부릅니다. 각각의 계층은 통신이 시작되면 낮은 레이어부터 시작하여 레이어를 하나씩 통과할 때마다 데이터에 헤더(Header)를 추가합니다. 이를 OSI 7계층에서의 캡슐화(Encapsulation)라고 부릅니다.
등장 배경
초기 컴퓨팅 환경에서는 통신을 위한 표준이 없었습니다. 표준이 없었기에, 서로 다른 제조사 간의 장비끼리 호환성이 없어 통신이 불가능한 문제가 있었습니다. 이처럼 장비 간 호환성 문제를 해결하기 위해서 OSI 7 계층이라는 표준이 정의되었습니다.
OSI 7계층, 물리 계층(L1, Pyhsical)
가장 낮은 레벨-레이어에 해당하는 계층입니다. '물리 계층'이라는 이름에서 유추 할 수 있듯이, 가장 낮은 레벨에서는 통신을 위한 물리적인 작업을 수행합니다.
L1은 비정형적이고(Unstructured), 날 것의(Raw) 비트 스트림(Bit stream)을 물리적 매체를 통해서 전송하는 수신하는 것입니다. 비정형적이고 날 것이라는 특징은 L1이 송수신하는 비트 스트림이 전기적이고 물리적인 신호에 불과하다는 의미입니다. 즉, 0과 1로 구성된 연속적인 비트를 송수신하는 단계입니다.
이처럼 L1은 비트 스트림의 송수신이 목적이므로 레이어 단에서 복잡한 알고리즘 또는 오류 제어 등의 부가적인 기능이 없습니다. L1을 처리하는 장비 역시 통신을 위해 필요한 가장 기초적인 인프라에 해당합니다.
구분 | OSI 7 Layer | 데이터 송수신 단위 | 역할 및 특징 |
하위 | L1 | 비트 스트림 (Bit stream) |
0과 1로 구성된 연속적인 비트의 단순 송수신 |
OSI 7계층, 데이터링크 계층(L2, DataLink)
데이터링크 계층은 직접적으로 연결 된 노드 간 데이터 전송을 하고, L1 물리 계층에서 발생한 오류를 감지하고 수정하기도 합니다. 노드 간 연결을 포인트 투 포인트(Point to Point)라고 부르며, 이는 맥이라고 부르는 노드의 물리 주소를 서로 알고 있기 때문에 가능합니다. 이때 노드 간에 주고 받는 데이터는 프레임(Frame)이라고 부릅니다.
L2는 추가로 하위계층(Sublayer)에 속하는 MAC과 LLC를 포함합니다.
- MAC(Media Access Control address, Physical address)
MAC은 앞서 설명한 맥이라고 불리는 노드의 물리 주소입니다. MAC은 네트워크 인터페이스 카드(NIC, Network Interface Card)에서 구현됩니다. 물리 주소를 통해 물리 계층에 대한 엑세스를 관리하며, 프레임의 오류를 검사하는 것도 MAC의 역할입니다. - LLC(Logic Link Control)
LLC는 오류 수정을 담당합니다. 포인트 투 포인트 연결에서 노드 간 논리 링크(Logic Link)를 설정하고 종료합니다. 논리 링크가 성사되면 프레임의 흐름을 제어하고, 프레임의 시퀀스을 관리-시퀀싱하고, 프레임을 승인하거나 승인되지 않은 프레임을 재전송합니다. 이를 통해 L2에서 오류 없는 전송을 보장합니다.
구분 | OSI 7 Layer | 데이터 송수신 단위 | 역할 및 특징 |
하위 | L2 | 프레임 (Frame) |
노드 간 물리 주소를 통해 프레임 송수신, 물리 계층의 오류를 감지하고 수정 및 재전송 |
하위 | L1 | 비트 스트림 (Bit stream) |
0과 1로 구성된 연속적인 비트의 단순 송수신 |
OSI 7계층, 네트워크 계층(L3, Network)
포인트 투 포인트 연결에서 노드 간의 거리가 먼 경우, 데이터는 중계 노드를 거쳐서 목적지 노드에 도달하게 됩니다. 이를 라우팅(Routing)이라고 부릅니다. 데이터의 유실 없이 안전하고 빠르게 전송하려면 라우팅의 역할이 중요한데, 네트워크 계층에서 이를 담당합니다.
L3는 라우팅 외에도 다양한 기능을 제공합니다.
- 트래픽 제어(Traffic control)
과도하게 많은 데이터를 송수신하려는 경우에 대한 트래픽 제어 기능이 있습니다. - 조각화(Fragmentation) 및 재조립(Reassemble)
L3의 송수신 단위인 패킷(Packet)입니다. 패킷은 L2의 프레임을 조각화하거나 재조립하는 과정에서 생성됩니다. 이를 통해 L3의 패킷이 L2의 프레임보다 더 작은 조각으로 나뉘어져 송수신되는 것을 알 수 있습니다. - 논리-물리 주소 간의 맵핑(Logical-Physical address mapping)
L2의 물리 주소를 L3의 논리 주소(IP, Logical address)로 맵핑하거나 또는 그 반대 방향으로 맵핑합니다.
구분 | OSI 7 Layer | 데이터 송수신 단위 | 역할 및 특징 |
하위 | L3 | 패킷 (Packet) |
노드 간 라우팅 제어, 트래픽 제어, 조각화 및 재조립을 통한 패킷 생성, 물리 주소를 논리 주소로 맵핑 |
하위 | L2 | 프레임 (Frame) |
노드 간 물리 주소를 통해 프레임 송수신, 물리 계층의 오류를 감지하고 수정 및 재전송 |
하위 | L1 | 비트 스트림 (Bit stream) |
0과 1로 구성된 연속적인 비트의 단순 송수신 |
OSI 7계층, 전송 계층(L4, Transport)
전송 계층은 데이터가 순차적으로 송수신되고, 또는 중복되지 않도록 처리합니다. L4는 더 상위 계층에서 데이터에 대한 신뢰성을 보장하는 역할을 합니다. 따라서 L5 이상의 계층에서는 더 이상 데이터의 안정성과 신뢰성을 염두할 필요가 없으며, 이때부터 상위 계층으로 불리는 이유이기도 합니다.
노드 내 데이터를 목적지 애플리케이션까지 전송하기 위해서 포트 번호(Port)를 사용합니다. L4의 데이터 송수신 단위는 세그먼트(Segment)입니다. 대표적인 프로토콜인 TCP와 UDP가 L4에 속합니다.
구분 | OSI 7 Layer | 데이터 송수신 단위 | 역할 및 특징 |
하위 | L4 | 세그먼트 (Segment) |
포트 번호를 사용한 노드 내 목적지 애플리케이션 결정, 데이터의 순차적 송수신과 중복 제거를 보장 |
하위 | L3 | 패킷 (Packet) |
노드 간 라우팅 제어, 트래픽 제어, 조각화 및 재조립을 통한 패킷 생성, 물리 주소를 논리 주소로 맵핑 |
하위 | L2 | 프레임 (Frame) |
노드 간 물리 주소를 통해 프레임 송수신, 물리 계층의 오류를 감지하고 수정 및 재전송 |
하위 | L1 | 비트 스트림 (Bit stream) |
0과 1로 구성된 연속적인 비트의 단순 송수신 |
OSI 7 계층, 세션 계층(L5, Session)
OSI 7 계층에서 첫 상위 계층에 해당합니다. 세션(Session)이란 어떤 연결에 대한 연속성을 뜻하는데, 세션 계층에서는 프로세스 간 연결을 수립하고, 유지하고, 재연결하거나 종료하는 등의 역할을 수행합니다. 또한 세션이 유지되는 동안 연결 된 사용자 간의 동기화를 진행하고 에러 발생에 대한 복구 역시 L5가 처리합니다.
구분 | OSI 7 Layer | 데이터 송수신 단위 | 역할 및 특징 |
상위 | L5 | - | 세션 연결, 유지, 재연결 또는 종료. 세션이 유지되고 있는 동안에 사용자 간 동기화 및 에러 발생 시 복구 처리 |
하위 | L4 | 세그먼트 (Segment) |
포트 번호를 사용한 노드 내 목적지 애플리케이션 결정, 데이터의 순차적 송수신과 중복 제거를 보장 |
하위 | L3 | 패킷 (Packet) |
노드 간 라우팅 제어, 트래픽 제어, 조각화 및 재조립을 통한 패킷 생성, 물리 주소를 논리 주소로 맵핑 |
하위 | L2 | 프레임 (Frame) |
노드 간 물리 주소를 통해 프레임 송수신, 물리 계층의 오류를 감지하고 수정 및 재전송 |
하위 | L1 | 비트 스트림 (Bit stream) |
0과 1로 구성된 연속적인 비트의 단순 송수신 |
OSI 7계층, 표현 계층(L6, Presentation)
데이터를 애플리케이션에서 네트워크로(인코딩, Encoding), 또는 그 반대 방향(디코딩, Decoding)으로의 번역이 표현 계층에서의 대표적인 기능입니다. 인코딩이란 데이터의 형식을 변환하는 것을 의미합니다. 또한 데이터의 변환 과정에서 데이터를 보호하기 위해 암호화, 복호화를 수행합니다. 표현 계층의 대표적인 프로토콜은 문자를 인코딩하기 위한 아스키(ASCII)가 있습니다.
구분 | OSI 7 Layer | 데이터 송수신 단위 | 역할 및 특징 |
상위 | L6 | - | 데이터의 인코딩과 디코딩, 암호화와 복호화를 수행 |
상위 | L5 | - | 세션 연결, 유지, 재연결 또는 종료. 세션이 유지되고 있는 동안에 사용자 간 동기화 및 에러 발생 시 복구 처리 |
하위 | L4 | 세그먼트 (Segment) |
포트 번호를 사용한 노드 내 목적지 애플리케이션 결정, 데이터의 순차적 송수신과 중복 제거를 보장 |
하위 | L3 | 패킷 (Packet) |
노드 간 라우팅 제어, 트래픽 제어, 조각화 및 재조립을 통한 패킷 생성, 물리 주소를 논리 주소로 맵핑 |
하위 | L2 | 프레임 (Frame) |
노드 간 물리 주소를 통해 프레임 송수신, 물리 계층의 오류를 감지하고 수정 및 재전송 |
하위 | L1 | 비트 스트림 (Bit stream) |
0과 1로 구성된 연속적인 비트의 단순 송수신 |
OSI 7계층, 응용 계층(L7, Application)
응용 계층은 사용자와 가장 밀접한 최상위 계층이며, 어떤 서비스와 사용자 간의 소통을 위한 인터페이스의 역할을 합니다. 응용 계층이 제공하는 인터페이스를 통해서 사용자는 직접적으로 네트워크 서비스를 이용 할 수 있습니다. 우리가 실생활에서 익히 사용하는 크롬과 같은 인터넷 브라우저, 아웃룩과 같은 전자 메일 서비스 등이 응용 계층에서 동작하는 서비스입니다.
구분 | OSI 7 Layer | 데이터 송수신 단위 | 역할 및 특징 |
상위 | L7 | - | 사용자가 네트워크 서비스를 사용하기 위한 인터페이스 제공 |
상위 | L6 | - | 데이터의 인코딩과 디코딩, 암호화와 복호화를 수행 |
상위 | L5 | - | 세션 연결, 유지, 재연결 또는 종료. 세션이 유지되고 있는 동안에 사용자 간 동기화 및 에러 발생 시 복구 처리 |
하위 | L4 | 세그먼트 (Segment) |
포트 번호를 사용한 노드 내 목적지 애플리케이션 결정, 데이터의 순차적 송수신과 중복 제거를 보장 |
하위 | L3 | 패킷 (Packet) |
노드 간 라우팅 제어, 트래픽 제어, 조각화 및 재조립을 통한 패킷 생성, 물리 주소를 논리 주소로 맵핑 |
하위 | L2 | 프레임 (Frame) |
노드 간 물리 주소를 통해 프레임 송수신, 물리 계층의 오류를 감지하고 수정 및 재전송 |
하위 | L1 | 비트 스트림 (Bit stream) |
0과 1로 구성된 연속적인 비트의 단순 송수신 |
TCP/IP 4계층(TCP/IP 4 Layer)
TCP/IP 4계층은 OSI 7계층을 좀 더 실용적인 측면에서 단순화한 모델입니다. 기본적으로 OSI 7계층이 갖는 장치 간 호환성 제공, 각 계층 간 독립적인 역할 수행, 계층을 지날 때마다 헤더가 추가 되는 등의 성격을 동일합니다. 이름에서 유추 할 수 있듯이, TCP/IP 4계층은 TCP(Transmission Control Protocol)과 IP(Internet Protocol)을 사용한 모델을 의미합니다(TCP와 IP만을 표현하는 것은 아니며, 4계층의 각 계층은 여러 프로토콜을 포함합니다).
다음은 OSI 7계층의 각 계층이 TCP/IP 4계층의 어느 계층에 속하는지 보여줍니다. TCP/IP의 각 계층 별 역할 또한 OSI 계층의 각 역할과 다르지 않습니다.
OSI 7 Layer |
TCP/IP 4 Layer |
||
L7 | 응용 계층 | L4 |
응용 계층 |
L6 | 표현 계층 | ||
L5 | 세션 계층 | ||
L4 | 전송 계층 | L3 | 전송 계층 |
L3 | 네트워크 계층 | L2 | 인터넷 계층 |
L2 | 데이터링크 계층 | L1 | 네트워크 액세스 계층 |
L1 | 물리 계층 |
'CS & ITS' 카테고리의 다른 글
[Network/Topic] 온프레미스와 웹 호스팅, 서버 호스팅, 클라우드 서버의 차이점 (0) | 2022.04.17 |
---|---|
[Network/Topic] CI/CD 간단 정리 (0) | 2022.04.05 |
[Network/Topic] IP 주소(IP, Internet Protocol address)와 서브넷 마스크(Subnet mask) (0) | 2022.03.08 |
IP주소 127.0.0.1과 Localhost, 0.0.0.0의 차이점 (0) | 2022.03.08 |
[Network/Topic] Log4Shell/Log4J 보안 취약 이슈 (0) | 2022.01.03 |