네트워크 프로토콜이 통신하는 구조를 7개의 계층으로 분리해 각 계층간 상호 작동하는 방식을 정해놓은 것
계층을 나눈 이유
통신을 일어나는 과정을 단계별로 알 수 있고, 특정한 곳에 문제가 생기면 그 단계만 수정할 수 있기 때문이다.
OSI 7계층
1) Physical Layer
리피터, 케이블, 허브 등
- 전기적, 기계적, 기능적 특성을 이용해 통신 케이블로 데이터를 전송하는 역할
- 데이터 전달의 역할만 할 뿐 알고리즘, 오류제어 기능은 없음
2) DataLink Layer
브릿지, 스위치
- 물리 계층으로 송수신되는 정보를 관리해 신뢰성 있는 전송을 도와준다.
- Mac 주소를 통해 통신하고 데이터의 단위는
프레임(Frame)
이다.
- 프레임에 Mac 주소를 부여하고, 데이터 전송 오류를 감지하고 오류 발생 시 재전송하는 방법으로 처리한다.
MAC 주소 ?
컴퓨터간 데이터 전송을 위한 물리적 주소(HW 주소)로 네트워크 인터페이스에 할당되는 고유 식별 주소, 고유 식별자라고도 불린다.
같은 주소(IP) 내에서 기기들을 서로 구분하기 위해 사용한다.
3) Network Layer
라우터, IP
- 라우팅을 담당한다.
- 중계 노드를 통해 전송하는 경우 어떻게 중계할 것인지를 규정한다
- 라우팅 기능을 맡고 있는 계층으로 목적지까지 가장 안전하고 빠르게 데이터를 보내는 기능을 갖고 있다. (최적의 경로 설정)
- 주소(IP)를 정하고, 경로(Route)를 선택하고 패킷을 전달하는 것이 가장 핵심인 계층이다.
- 컴퓨터의 주소를 갖고 있다. (IP주소가 바로 네트워크 계층 헤더에 속함)
- 데이터의 단위는
패킷(Packet)
이다.
4) Transport Layer
TCP, UDP
- 종단 간 신뢰성 있고 정확한 데이터 전송을 담당
- 정확하고 효율적인 데이터 전송을 위해서 오류 검출 및 복구, 흐름제어와 중복검사 등을 수행
- 데이터를 전송받으면 데이터를 합산해 세션 계층으로 보낸다.
- 데이터 전송을 위해 Port 번호를 사용
- 데이터의 단위
- TCP : Segment
- UDP : Datagram
포트(Port) ?
운영 체제 통신의 종단점으로 IP 주소와 함께 표기된다. IP 내에서 프로세스를 구분하기 위해서 사용한다.
e.g) 000.000.000.000:21
5) Session Layer
API, Socket
- 양쪽의 연결을 관리하고 연결을 지속시켜주는(논리적 연결을 담당) 계층
- 세션을 만들고 유지하고 세션 종료, 전송 중단 시 복구하는 기능이 있음
- TCP/IP 세션을 만들고 없애는 책임을 지님
6) Presentation Layer
JPEG, MPEG 등
- 데이터를 어떻게 표현할지를 정하는 역할을 담당한다
- 데이터 표현에 대한 독립성을 제공하고 암호화하는 역할을 담당한다
- 기능
- 송신자에게 온 데이터를 해석하기 위한 응용계층 데이터 부호화
- 데이터의 암호화와 복호화
- 데이터 압축을 풀 수 있는 방식으로 데이터 압축
7) Application Layer
HTTP, FTP, DNS, 전자메일 등
- 최종 목적지로 응용 프로세스와 직접 관계해 일반적인 응용 서비스 수행