OSI 7계층이란?
- 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 의미한다.
7계층으로 나눈 이유
- 계층을 나눠 통신이 일어나는 과정을 단계별로 파악할 수 있다.
- 통신의 흐름을 한눈에 알아보기 쉬우며, 사람들이 이해하기 쉽다.
- 7단계 중 특정 단계가 손상된다면 다른 단계의 소프트웨어나 하드웨어를 건들지 않고 이상이 생긴 단계만 고칠 수 있다.
OSI 계층 단계
1계층 - 물리 계층 (Physical Layer)
- 데이터를 전기적인 신호로 변환해서 주고 받는 기능을 수행하는 계층
- 데이터를 전송하는 역할만 진행
- 데이터가 무엇인지 어떤 에러가 있는지 신경쓰지 않는다.
- 주로 전기적, 기계적 특성을 사용해 통신 케이블로 데이터를 전송
- 1계층에서 사용하는 통신 단위는 비트이다.
- 1과 0으로 이루어져 있으며 이는 On/Off 상태를 의미한다.
- 대표적인 장비로는 통신 케이블, 리피터, 허브 등이 존재한다.
2계층 - 데이터 링크 계층 (Data Link Layer)
- 물리 계층으로 송수신되는 정보를 관리하여 안전하게 전달되도록 도와주는 계층
- Mac 주소를 사용해서 통신
- 프레임에 Mac 주소를 부여하고 에러 검출, 재전송, 흐름 제어를 진행
- Mac 주소는 네트워크 카드가 만들어질 때부터 정해진다.
- Mac 주소는 물리적으로 할당된 주소 값이라고 부른다.
- 데이터 링크 계층 포인트 투 포인트(Point to Point, P2P)간 신뢰성있는 전송을 보장하는 계층
- 대표적인 장비로는 브리지, 스위치 등이 존재한다.
- 브리지나 스위치를 통해 Mac 주소를 가지고 물리 계층에서 받은 정보를 전달함
3계층 - 네트워크 계층 (Network Layer)
- 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능을 담당하는 계층
- 이를 라우팅이라고 하며 라우팅 기술은 다양함
- 목적지의 경로를 결정하는 프로토콜은 다익스트라 알고리즘이나 Distance Vector 알고리즘 등을 사용함
- 라우터를 통해 이동할 경로를 선택하여 IP 주소를 지정하고, 해당 경로에 따라 패킷을 전달
- 데이터를 연결하는 다른 네트워크를 통해 전달함으로써 인터넷이 가능하게 만드는 계층
- 네트워크 관리자가 직접 IP 주소를 할당하는 구조를 가지며, 계층적(hierarchical)이다.
- 라우팅, 흐름 제어, 오류 제어, 세그먼테이션 등을 수행한다.
4계층 - 전송 계층 (Transport Layer)
- TCP나 UDP 프로토콜을 통해 통신을 활성화하는 계층
- 포트를 열어 응용프로그램이 데이터를 전송할 수 있게 해준다.
- 데이터가 들어오면 데이터를 하나로 합쳐 다음 계층에 전달함
- 전송 계층은 양 끝단의 사용자들이 데이터를 주고 받을 수 있게 해준다.
- TCP : 신뢰성, 연결 지향적인 프로토콜
- UDP : 비신뢰성, 비 연결성, 실시간 프로토콜
- 상위 계층이 데이터 전달의 효율성이나 유효성을 생각하지 않도록 해준다.
5계층 - 세션 계층 (Session Layer)
- 데이터가 통신하기 위한 논리적인 연결을 담당하는 계층
- 4계층에서도 연결을 끊을 수 있기 때문에 어느 계층에서 통신이 끊어졌는지 판단하는데 한계를 가지고 있음
- 세션 계층은 4계층과 무관하게 응용프로그램 관점에서 봐야한다.
- TCP/IP 세션을 만들고 없애는 책임을 가지고 있다.
- 세션 설정, 유지, 종료, 전송 중단 시 복구 등의 기능이 있다.
- API, 소켓 등이 세션 계층에 해당한다.
6계층 - 표현 계층 (Presentation Layer)
- 데이터 표현에 대한 독립성을 제공하고 암호화하는 역할을 담당하는 계층
- 코드 간의 번역을 담당하여 응용 계층에서 데이터의 형식상의 차이를 다루는 부담을 덜어준다.
- 데이터가 TEXT인지 GIF인지 JPEG인지 구분하는 것이 표현 계층이 담당하는 역할
- 파일 인코딩, 명령어를 포장, 압축, 암호화한다.
7계층 - 응용 계층 (Application Layer)
- 최종 목적지로, 응용프로그램과 직접 관계하여 일반적인 응용 서비스를 담당하는 계층
- 사용자 인터페이스, 전자 우편 (FTP), 데이터베이스 관리 등의 서비스를 제공
- HTTP, FTP 등의 프로토콜와 DNS 등의 서비스를 제공한다.
- 응용 계층에서는 다양한 프로토콜을 쉽게 사용할 수 있도록 도와주는 응용 서비스와 직접적으로 관계함
출처
https://shlee0882.tistory.com/110
https://github.com/gyoogle/tech-interview-for-developer/tree/master
'CS > Network' 카테고리의 다른 글
[Network] UDP (0) | 2024.03.15 |
---|---|
[Network] TCP/IP (1) | 2024.03.15 |