Network Layer Model
네트워크가 어떻게 동작하는지 개념적인 이해를 돕기 위한 모델로, 대표적으로 ISO(International Organization for Standardization) 의 OSI(Open Systems Interconnection) Reference Model이 존재한다.
ISO와 OSI란?
자세한 내용은 작성한 ISO와 ISO/IEC를 참조하도록 하자.
OSI Layer를 정하는 기준
- 시스템 엔지니어링 작업을 불필요하게 복잡하게 만들지 않도록 계층을 많이 생성하지 않는다.
- 서비스를 설명하는 데 필요한 정보가 최소화될 수 있는 지점에서 계층을 생성한다.
- 기능이나 과정이 서로 다르다면, 별개의 계층에 둔다.
- 어떠한 계층이 다른 계층에 의해 변경되거나 재설계되지 않도록 한다.
- 인접한 계층 간 공통 기능을 Sub-layer에 두어, 각 계층간 기능을 최소화 한다.
OSI Layer
이는 기본적으로 다음과 같이 구성 돼 있다.
Level | Layer | Explanation | Example | Identifier |
---|---|---|---|---|
Layer 7 | Application Layer | OSI 환경에서 상호작용하는 application entities로 구성되며, OSIE에 접근할 수 있는 유일한 수단이다. | HTTP , SMTP , FTP | |
Layer 6 | Presentation Layer | application entities 간의 communication에 참조되는 정보의 표현을 제공한다. | JPEG , ASCII | |
Layer 5 | Session Layer | 상호작용하는 application entities 간에 session을 설정, 유지하고 종료하는 기능을 제공한다. | RPC , SQL , Socket | |
Layer 4 | Transport Layer | 상위 계층에서 받은 데이터를 하위 계층에서 처리할 수 있는 크기로 분할하고, 에러 검사 및 복구 기능을 제공한다. | TCP , UDP | Port(Interface, Service, Process 등을 식별하는 번호) |
Layer 3 | Network Layer | 다른 네트워크와 통신하기 위해 데이터를 전달하며, 경로 선택과 전송을 위한 논리 주소를 지정하는 기능을 제공한다. | IP , ICMP , ARP , RARP , Router | IP Address(Host에 대한 식별자, NIC에 여러 개의 IP Address가 바인딩 됨) |
Layer 2 | Data Link Layer | 물리적인 주소(MAC 주소)를 사용하여 통신하고, 오류 검사 및 복구 기능을 제공한다. | Ethernet , Token Ring , Switch , Bridge | MAC Address(NIC, Network Interface Card 혹은 LAN Card에 대한 식별자. MAC Address는 변경 가능) |
Layer 1 | Physical Layer | 데이터를 비트(Bit) 단위로 전송하며, 전송 매체의 물리적인 특성을 고려하여 데이터의 전송 속도와 전송 거리 등을 관리한다. | cable , fibre-optic cable , wireless | |
Physical media for OSI | Open System간 데이터들이 비트(Bit) 단위로 전송된다. |
Open System <-- Peer Protocol --> Open System
기본적으로 각 Layer는 위와 같이 구성된다. 여기에 Relay Open System을 중간에 두어, 모든 Open System을 직접적으로 연결하지 않을 수도 있다. (STUN, TURN 서버 참고)
또한 각 Layer는 독립적으로 동작하도록 설계되어 있지만, 실제 구현에서는 순차적인 순서대로 데이터를 전달하도록 설계하는 것이 일반적이다.
Peer Protocol이란, 동등한 수준에서의 통신을 위한 프로토콜을 의미하며, 데이터 전송 및 흐름 제어, 오류 검사 및 복구 등의 작업을 수행한다.
Layer 7 - Application Layer
OSIE(OSI End System)에 접근할 수 있는 유일한 application process(application protocol과 presentation service를 사용하는 application entities 간의 정보교환)의 수단이 되는 계층으로, 하위 계층에서 수행되지 않은 Open System 간의 communication에 해당하는 기능들을 포함한다. 다른 Open System의 Application과 직접적으로 상호작용하며, OSIE에 접근할 수 있기 때문에 상위 영역이 존재하지 않는다.(End System이기 때문에)
Layer 6 - Presentation Layer
Presentation Layer는 Application Layer에서의 데이터의 정보의 표현이 전송 중에 유지되도록 한다. 또한, application entities에서 사용될 abstract syntax를 알기 때문에, 상호간 수용할 수 있는 transfer syntax를 결정하게 된다.
Layer 5 - Session Layer
Session Layer는 Application Layer에서 상호작용하는 application entities 간의 session을 설정, 유지하고 종료하는 기능을 담당한다. Session Layer는 전송되는 데이터에 대한 동기화, 체크포인팅, 재시작 등의 기능을 제공하여, 데이터 전송 중 발생하는 문제를 처리한다.
Session Layer는 예를 들어, 파일 전송 과정에서 전송 중에 연결이 끊기거나 전송 중 오류가 발생한 경우 이전에 전송한 부분부터 다시 전송하게 되는데, 이를 Session Layer가 처리하여 중복 전송을 방지한다.
Layer 4 - Transport Layer
Transport Layer는 상위 계층에서 받은 데이터를 하위 계층에서 처리할 수 있는 크기로 분할하고, 에러 검사 및 복구 기능을 제공한다. 이 계층에서는 네트워크 상에서 데이터를 안정적으로 전송하기 위한 다양한 기능들이 수행된다.
Transport Layer에서는 End-to-End 연결 기반의 통신 방식을 제공하며, 데이터의 정확성, 손실, 중복, 순서 등을 제어한다. 데이터의 크기가 큰 경우에는 세그먼트(Segment)로 분할하고, 손실된 세그먼트를 다시 전송하거나 중복 전송하는 등의 처리를 수행한다.
Layer 3 - Network Layer
Network Layer는 데이터를 다른 네트워크와 통신하기 위해 전달하며, 경로 선택과 전송을 위한 논리 주소를 지정하는 기능을 제공한다. 이 계층에서는 Packet 단위로 데이터를 전송하며, IP를 기반으로 한 라우팅(Routing)을 수행한다.
Network Layer에서는 라우터(Router)를 사용해 다른 네트워크와 통신하기 위한 경로를 선택하는데, 이를 위해 라우팅 프로토콜(Routing Protocol)을 사용한다. 또한, IP 주소를 사용하여 논리 주소를 지정하고, 서브넷 마스크(Subnet Mask)를 이용하여 네트워크와 호스트를 구분한다.
Network Layer의 주요 기능으로는 에러 검출 및 복구, 흐름 제어, 혼잡 제어 등이 있다. 이 계층에서는 데이터를 전송하기 위한 최적의 경로를 선택하며, 다양한 네트워크 토폴로지로 구성될 수 있다.
Layer 2 - Data Link Layer
Data Link Layer는 물리적인 주소(Mac Address)를 사용해 통신하고, 오류 검사 및 복구 기능을 수행한다. 이 계층에서는 Frame 단위로 데이터를 전송하며, 이전 계층에서 받은 데이터를 Link 상에서 전송 가능한 형태로 변환한다.
또한, Flow Control을 통해 송수신 측 간의 데이터 전송 속도 조절을 수행하고, Error Control을 통해 전송 중에 발생한 오류를 검출하여 복구한다.
Layer 1 - Physical Layer
Physical Layer는 데이터를 비트(Bit) 단위로 전송하며, 전송 매체의 물리적인 특성을 고려하여 데이터의 전송 속도와 전송 거리 등을 관리한다. 이 계층에서는 전기 신호, 빛 신호, 무선 신호 등 다양한 방식으로 데이터를 전송할 수 있다.
Layer 사이의 데이터 전송 과정
- Layer가 낮아질수록 캡슐화(상위 계층 → 하위 계층 데이터 전달 시 헤더를 붙이는 것), 높아질수록 역캡슐화(하위 계층에서 → 상위 계층 데이터 전달 시, 헤더를 제거하는 것) 한다.
- 헤더에는 데이터를 전달받은 상대방 정보 등이 저장된다.
- 물리 계층(L1)에서는 헤더를 붙이진 않고, 랜 카드가 비트열을 전기신호로 변환해 수신측에 전송하면, 수신측에서는 이를 다시 비트열 데이터로 복원한다.
- 데이터 링크 계층(L2)에서는 헤더 외에도 트레일러를 따로 붙이고(캡슐화) 뗀다(역캡슐화)
- 트레일러는 데이터를 전달할 때, 데이터의 마지막에 추가되는 정보를 말한다.
주의할 점
앞서 ISO와 ISO/IEC에서도 언급했지만, OSI Reference Model은 네트워크의 개념적인 이해를 돕기 위한 모델이지, 실제로는 많은 네트워킹 모델이 이를 따르지 않는다. 즉, OSI Reference Model은 추상화된 개념이고, 이를 구체화한 결과가 TCP/IP 네트워크, HTTP 프로토콜 등이다.
(참고로, TCP/IP로 기술하는 이유는 서로 간의 계층이 달라서다.)