OSI(Open Systems Interconnection) 또는 네트워크 7계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것으로 통신이 일어나는 과정을 단계별로 파악할 수 있다.
※ OSI 7 계층이란?, OSI 7 계층을 나눈 이유
※ OSI 7계층(Open System Interconnection 7 Layer)
물리 계층은 데이터를 전송하기 위한 물리적인 매체를 다룬다. 전기 신호, 전류, 전압 등과 같은 물리적인 특성을 이용하여 데이터를 송수신한다.
- 사용되는 통신 단위는 비트로, 1과 0으로 나타내어진다. 예를들어 전기적으로 On/Off 상태라고 생각하면 된다.
- 단지 데이터를 전기적인 신호로 변환하여 주고받는 기능만 한다.
- ex) 통신 케이블, 리미터, 허브
데이터 링크 계층은 물리적인 연결을 통해 데이터를 안전하게 전송하기 위한 프로토콜을 제공한다. 프레임 단위로 데이터를 분할하고, 오류 감지와 복구를 수행한다.
- 물리 계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보 전달을 보장하는 역할
- 오류 검출과 재전송 기능을 가지고 있으며, MAC 주소를 사용해 통신한다.
- 데이터 링크 계층에서 전송되는 데이터 단위는 '프레임'이라고 부르며, 네트워크 브릿지나 스위치와 같은 장비는 이 계층에서 동작하여 직접 연결된 곳에만 데이터를 전송할 수 있다.
네트워크 계층은 여러 개의 네트워크를 연결하여 최적의 경로를 선택하고, 데이터를 목적지까지 전달하는 역할을 한다. IP 주소와 라우팅을 관리한다.
- 가장 중요한 기능은 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅)이다.
- 경로를 선택하고 주소를 정하고 경로에 따라 패킷을 전달해주는 것이 네트워크 계층의 역할이다.
- 데이터를 연결하는 다른 네트워크를 통해 전달함으로써 인터넷이 가능하게 만들며, 네트워크 관리자가 직접 주소를 할당하는 구조를 가지는 계층적(hierarchical)인 특징이 있다.
- ex) 주소부여(IP), 경로설정(Route)
전송 계층은 데이터의 신뢰성 있는 전송을 담당한다. 데이터를 세그먼트로 분할하고, 송신자와 수신자 간의 연결을 제어한다. TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)가 이 계층에서 동작한다.
- 통신을 활성화하는 역할로 TCP 프로토콜을 주로 사용한다. 포트를 열어 프로그램들이 데이터를 전송할 수 있게 한다.
- 수신된 데이터를 하나로 합쳐 상위 계층에 전달하며, 단대단 오류 제어와 흐름 제어를 담당한다.
- TCP가 해당되며 오류 검출과 복구, 흐름 제어, 중복 검사 등을 수행하여 종단간 신뢰성 있는 효율적인 데이터 전송을 담당한다.
세션 계층은 송신자와 수신자 간의 세션을 설정하고 관리한다. 세션의 시작, 유지, 종료를 담당하며, 동기화와 대화 제어 등의 기능을 제공한다.
- 데이터가 통신하기 위한 논리적인 연결을 뜻한다.
- 세션 설정, 유지, 종료, 전송 중단시 복구 등의 기능이 있다.
- TCP/IP 세션을 만들고 없애는 책임을 진다.
표현 계층은 데이터의 형식을 변환하고 암호화, 압축 등의 데이터 변환과 관련된 기능을 제공한다. 데이터의 표현 방식을 일관되게 유지하고 애플리케이션 간의 데이터 교환을 가능하게 한다.
- 데이터 표현이 상이한 응용 프로세스의 독립성을 제공하고, 암호화 한다.
- 사용자의 명령어를 완성및 결과 표현. 포장/압축/암호화
- ex)EBCDIC로 인코딩된 문서 파일을 ASCII로 인코딩된 파일로 바꿔 주는 것
- 해당 데이터가 TEXT인지, 그림인지, GIF인지 JPG인지의 구분 등이 표현 계층의 몫이다.
응용 계층은 최종 사용자에게 직접적인 서비스를 제공하는 계층이다. 이메일, 웹 브라우저, 파일 전송 등 다양한 응용 프로그램이 이 계층에서 동작한다. 사용자 인터페이스와 네트워크 간의 상호작용을 담당한다.
- HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜이 있다.
- 해당 통신 패킷들은 프로토콜에 의해 모두 처리되며 우리가 사용하는 브라우저나, 메일 프로그램은 프로토콜을 보다 쉽게 사용하게 해주는 응용프로그램이다.
- 네트워크 소프트웨어 UI 부분, 사용자의 입출력(I/O)부분