OSI 7 계층 (OSI 7 Layer)
우리가 사용하는 모든 네트워크 통신은 OSI 표준에 따라 이루어집니다. 즉, 엔지니어로서 OSI 7 계층에 대한 이해 없이 인프라에 대한 이해는 어렵습니다. 그렇기 때문에 OSI 7 계층에 대해 확실히 알고 있는지 면접에서 단골 질문으로 등장하기도 합니다.
학부 때 네트워크 수업에서 배웠지만, 많은 양의 내용을 단순히 암기만 해서는 내것으로 만들기 어렵기 때문에 다시 차근차근 짚어보며 이해해보는 시간을 가져보겠습니다 :)
OSI 7 계층이란?
OSI 모형(Open Systems Interconnection Reference Model)은 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다. 이 모델은 프로토콜을 기능별로 나눈 것이다. 각 계층은 하위 계층의 기능만을 이용하고, 상위 계층에게 기능을 제공한다.
'프로토콜 스택' 혹은 '스택'은 이러한 계층들로 구성되는 프로토콜 시스템이 구현된 시스템을 가리키는데, 프로토콜 스택은 하드웨어나 소프트웨어 혹은 둘의 혼합으로 구현될 수 있다. 일반적으로 하위 계층들은 하드웨어로, 상위 계층들은 소프트웨어로 구현된다.
- 위키백과
간단하게 정리하면, 네트워크에서 통신이 일어나는 과정을 7단계로 나누어 놓은 것입니다.
OSI 7 계층을 나눈 이유는?
통신이 일어나는 과정을 단계별로 파악하기 위해서 입니다.
단계별로 나누어져 있기 때문에 흐름을 한눈에 알아보기 쉽고,
어떤 이상이 생겼을 때 다른 단계의 장비 및 소프트웨어를 건드리지 않고 해당 단계만 고치면 되는 장점이 있습니다.
예를 들어 보면,
회사에서 한 소프트웨어에 대한 네트워크 연결 문제가 발생했을 때,
원인을 파악하기 위해서 어떻게 해야할까?
모든 PC에 문제가 있는 것이라면
라우터 문제(3계층 네트워크)이거나 광랜 제공 업체의 회선 문제(1계층 물리)
특정 PC만 문제가 있다면
연결이 끊긴 소프트웨어에 문제가 있다면(7계층 애플리케이션)
소프트웨어에 문제가 없고, 스위치에 문제가 있으면(2계층 데이터링크)
문제 파악 후 다른 계층에 있는 장비나 소프트웨어를 건드리지 않는다.
OSI 7 계층
1계층 - 물리 계층(Physical Layer)
- 통신 케이블로 데이터를 전송
- 통신 단위 : Bit
- 단순히 데이터를 전기적인 신호로 변환해 전달하며 송수신하는 데이터가 무엇인지, 어떤 에러가 있는지는 전혀 신경 쓰지 않음
- 대표 장비 : 통신 케이블, 리피터, 허브 등
- → 케이블, 리피터, 허브를 통해 데이터 전송
2계층 - 데이터링크 계층(DataLink Layer)
- 물리 계층을 통해 송수신되는 데이터의 오류 제어 및 흐름 제어 -> 안전한 정보의 전달을 수행하는 역할
- 통신에서의 오류도 찾고, 재전송도 함
- MAC 주소로 통신 -> 프레임에 주소를 부여하는 것
- 통신 단위 : Frame
- 대표 장비 : 브릿지, L2 스위치 등
- → 프레임에 주소 부여(MAC), 에러검출/재전송/흐름제어
3계층 - 네트워크 계층(Network Layer)
- 가장 중요한 기능은 라우팅! 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능
- 경로를 선택하고, 주소를 정하고 경로에 따라 패킷 전달을 함
- 라우팅, 흐름 제어, 세그멘테이션, 오류 제어, 인터네트워크 등 수행
- 대표 장비 : 라우터
- 프로토콜 및 기술 : IPv4, IPv6, ARP, ICMP, IGMP, Routing Protocol(RIP, OSPF 등)
- → 주소 부여(IP), 경로설정(Route)
4계층 - 전송 계층(Transport Layer)
- 포트 번호를 이용해 서비스를 구분하고 데이터 전송을 담당하여 통신을 활성화함
- 데이터가 왔다면 4계층에서 해당 데이터를 하나로 합쳐서 5계층으로 던져줌
- stateful, connection oriented → 전송 계층의 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들은 재전송함
- 종단간 통신을 다루는 최하위 계층으로 종단간 신뢰성 있고 효율적인 데이터 전송
- 통신 단위 : Segement
- 대표 장비 : L4 스위치 등
- 프로토콜 및 기술 : TCP, UDP
- → 패킷 생성(Assembly/Sequencing/Error Detection/Request repeat/Flow Control) 및 전송
5계층 - 세션 계층(Session Layer)
- 응용 프로그램간 세션 수립/유지/종료
- 세션 : 두 사용자 간의 작업 시작부터 끝까지의 실시간 논리적인 연결
- 프로토콜 및 기술 : 소켓, NetBIOS, 네임드 파이프
- → 통신하는 사용자들을 동기화하고 오류복구 명령들을 일괄적으로 다룸
6계층 - 표현 계층(Presentation Layer)
- 데이터의 표현(확장자 연결, 압축, 암호화, 변환)
- 프로토콜 및 기술 : SSL, redirector, MIME
- → 사용자의 명령어를 완성 및 결과 표현, 포장/압축/암호화
7계층 - 응용 계층(Application Layer)
- 사용자에게 인터페이스 제공, 원본 데이터 생성
- 프로토콜 및 기술 : HTTP, HTTPs, POP3, FTP, SSH, Telnet, DHCP, DNS, SNMP 등
- → 네트워크 소프트웨어 UI, 사용자의 I/O
참고 사이트