1. 개요
1) 개념
OSI(Open Systems Interconnection) 7계층은 네트워크 프로토콜과 통신 과정을
7개의 계층(Layer)으로 구성한 ISO 표준 참조 모델이다.
2) 등장배경
네트워크는 여러 장치들이 통신을 위해 연결돼있는 집단을 말하는데,
장치 간 원거리 통신의 필요성이 대두되어 네트워크가 발달하게 됐다.
서로 다른 네트워크가 계속 생겨나면서 각 네트워크를 연결할 필요성이 생겼다.
네트워크를 연결하기 위해서는 시스템이 다른 장치 사이의 호환성 문제를 해결해야 했다.
이런 호환성 이슈를 해결하기 위해 ISO에서 제시한 표준화된 참조 모델이 OSI 모형이다.
3) 필요성
이 표준 모델을 참조해서 네트워크 장치를 만들면 앞서 말한 호환성 이슈를 해결할 뿐 아니라,
통신 과정을 한 눈에 알아볼 수 있고 구조를 이해하기 쉽다는 장점이 있다.
또한 독립적인 계층으로 나누어져 있어서, 문제가 생겼을 때 원인을 찾고 고치기 용이하다.
각 계층은 독립적인 모듈이고 상하 계급 구조를 가지고 있다.
상위 계층이 잘 작동하려면 하위 계층에 문제가 없어야 한다.
2. 구성
1) 물리적(Physical) 계층
OSI 모델의 최하위 계층으로, 상위 계층인 데이터 링크 계층으로부터 전송받은 데이터를
전기적 신호로 바꾸어 물리적인 전송 매체(케이블, 허브 등)를 통해 전송하는 역할을 한다.
연속적인 비트(0-Off, 1-On)로 이루어진 데이터를 전기적 신호의 흐름으로 변환하고 전송할 뿐,
데이터가 무엇인지 또는 오류가 있는지 없는지 신경쓰지 않는다.
물리 계층 프로토콜에는 USB, 블루투스, RS-232 등이 있고 장비는 모뎀, 허브, 리피터, 케이블 등이 있다.
2) 데이터 링크(Datalink) 계층
직접 물리적으로 연결된 네트워크 장치 사이의 데이터 전송을 담당하는 역할로서,
안전하게 데이터를 송수신하기 위한 기능들을 제공한다.
- 프레이밍: 물리 계층으로부터 수신한 데이터를 프레임 단위로 만든다.
- 흐름 제어: 너무 많거나 적은 데이터를 받지 않도록 흐름을 제어한다.
- 오류 제어: 전송 시에 발생한 오류를 복원하거나 재전송한다.
- 접근 제어: 연결된 장치가 다수일 때 전송 여부를 결정한다.
PDU는 Protocol Data Unit의 약자로 각 계층에서 주고 받는 데이터의 단위를 뜻한다.
데이터 링크 계층의 PDU는 프레임(Frame)이다.
데이터 링크 계층은 MAC(Media Access Control) 주소를 통해 이웃 장치와 통신하는데,
MAC 주소는 네트워크 장치에 있는 NIC(랜카드)에 부여된 주소로서 하드웨어 주소라고도 부른다.
다음에 데이터를 전달할 장치의 MAC 주소를 알기 위해서 ARP(Address Resolution Protocol)를 사용한다.
데이터 링크 계층 프로토콜에는 MAC, LAN, Wifi 등이 있고 장비는 브리지, 스위치 등이 있다.
3) 네트워크(Network) 계층
라우팅 알고리즘을 통해 목적지까지 최적의 경로를 설정하고 데이터를 전달하는 역할이다.
데이터 링크 계층이 이웃 노드와의 데이터 전송을 담당한다면,
네트워크 계층은 이웃 노드를 넘어서 출발지와 목적지 종단(end-to-end) 간의 데이터 전달을 담당한다.
네트워크 계층은 논리적 주소인 IP 주소를 보고 목적지까지의 경로를 찾아주는데
이것을 라우팅이라고 하며 선택된 경로로 데이터를 전달한다.
네트워크 계층의 PDU인 패킷은 일반적인 네트워크 용어로서의 패킷과 다르다.
여기서 패킷은 IP 패킷이라고도 불리며, 네트워크 계층에서 전달하는 데이터의 논리적인 단위를 말한다.
IP 패킷 헤더에는 출발지와 목적지(경유지)의 IP 주소와 프로토콜 정보 등이 포함된다.
네트워크 계층 프로토콜에는 IP, ICMP 등이 있고 장비에는 대표적으로 라우터가 있다.
4) 전송(Transport) 계층
출발지와 목적지 사이의 신뢰성 있는 통신을 보장하는 역할로서,
통신을 제어 및 관리하기 위한 기능을 제공한다.
- 오류 제어 (오류 검출 및 복구)
- 흐름 제어 (데이터 전송 속도 조절)
- 패킷 전송 유효성 검사 및 재전송
전송 단위(PDU)는 세그먼트(Segment)이고 헤더에 목적지의 포트 번호를 포함한다.
이 계층에서는 데이터를 일정한 크기의 *패킷으로 나누는데 TCP는 세그먼트, UDP는 데이터그램 단위로 나눈다.
세그먼트와 데이터그램은 이 계층에서 데이터를 나누는 단위이지만 목적과 특징이 다르다.
(* 네트워크 계층의 PDU인 패킷과는 다른 의미이다.)
전송 계층 프로토콜에는 TCP, UDP 등이 있고 장비에는 대표적으로 게이트웨이가 있다.
5) 세션(Session) 계층
네트워크 장치 간 논리적 연결인 세션을 관리하고 유지하는 역할이다.
포트 번호를 기반으로 응용 프로그램 사이의 통신을 위해 운영체제가 세션을 설정, 유지, 중단한다.
세션은 웹에서 클라이언트와 서버 사이의 연결이 유지되는 기간을 의미하기도 한다.
1~4계층의 주요 역할은 데이터 전송이고, 5계층부터는 종단 장치 내부의 프로세스 간 통신이다.
양 끝 사용자를 동기화하여 통신에 오류가 발생 시, 연결을 복구하거나
동기화 이후 시점부터 데이터를 재전송하는 등 오류 복구 기능을 수행한다.
세션 계층 프로토콜에는 NetBIOS, SMPP 등이 있다.
6) 표현(Presentation) 계층
전달받은 데이터를 상위 및 하위 계층에서 이해할 수 있는 형식으로 변환하는 역할이다.
인코딩-디코딩, 암호화-복호화, 압축 등의 과정을 통해 데이터를 표준 형식으로 변환한다.
표현 계층 프로토콜에는 JPG, GIF, MPEG 등이 있다.
7) 응용(Application) 계층
사용자와 가장 가까운 계층으로, 응용 프로그램을 통해 수신한 데이터를 사용자에게 전달하고
사용자로부터 받은 데이터를 하위 계층에 전달하는 역할이다.
응용 프로그램과 직접 관계하여 브라우저, 메일 등의 응용 서비스를 네트워크에 연결하고 제공해준다.
응용 계층 프로토콜에는 HTTP, FTP 등이 있다.
참고 문서
'CS' 카테고리의 다른 글
HTTP vs HTTPS (feat. 대칭키, 공개키) (0) | 2023.02.28 |
---|---|
TCP vs UDP (0) | 2023.02.26 |
데드락(Deadlock)에 대하여 (0) | 2023.02.22 |
동기/비동기와 블록킹/논블록킹에 대하여 (2) | 2023.02.21 |
프로세스와 스레드에 대하여 (0) | 2023.02.14 |