ISO(국제 표준화 기구) 에서 오늘날 컴퓨터 네트워크 통신을 7개의 계층으로 나누어 설명한 모델이다.
초기 네트워크 환경은 네트워크 장비들간의 호환성이 존재하지 않았는데, 상호 연결에 있어 표준 규격을 제시하기 위해 나타나게 되었다.
OSI 7 Layer
와 함께 자주 언급되는 것이 바로 TCP/IP 4 Layer
인데, OSI 7 Layer
는 네트워크의 이론 설계에 중점을 두며, TCP/IP 4 Layer
는 상업, 실무에 중점을 두어 OSI 7 Layer
를 보다 단순화 한 모델이다.
최종 사용자와 직접적으로 상호작용하여 응용 프로그램 간에 데이터 전송을 가능하게 한다. 응용 계층에서는 사용자가 사용하는 애플리케이션들이 동작하기 위한 프로토콜들을 정의하고, 이를 통해 데이터를 전송한다. 이러한 프로토콜들은 인터넷 브라우저, 이메일, 파일 전송 등 다양한 응용 프로그램에서 사용된다.
메시지 형식, 전송 프로토콜, 데이터 보안 등을 다루는 계층이다. 실질적인 프로그램을 나타내며, 사용자 인터페이스, 전자우편, 데이터베이스 관리 등의 서비스를 제공한다. 최종 주로 데이터 요청-응답에 사용되는 HTTP, FTP, SMTP, POP3
등과 같은 프로토콜이 있다.
프로토콜 : HTTP, SMTP, FTP
PDU : 데이터
장비 : 없음 (웹 브라우저 혹은 클라이언트)
데이터의 표현 방식을 정의하며, 암호화, 압축, 포맷 변환 등의 기능을 수행한다.
데이터 표현 차이를 해결하기 위해 서로 다른 형식으로 변환하거나 공통 형식을 제공하는 계층으로, 송신 측에서는 수신 측에 맞는 형태로 변환하거나, 수신 측에서는 응용 계층에 맞는 형태로 변환한다.
프로토콜 : JPEG, MPEG, SSL/TLS
PDU : 데이터
장비 : 없음
통신 세션을 관리하고, 세션 연결을 설정하고 유지하는 계층으로, 응용 프로세스 간에 연결을 설정, 유지, 종료시켜주는 역할을 한다.
세션 계층의 중요한 기능 중 하나는 세션 복원(Session Recovery)으로, 장애 발생 시 세션 정보를 저장하고 복원하여 세션 연결을 유지하는 기능이다. 이러한 세션 복원 기능을 통신의 지속성과 신뢰성을 유지하기 위해 매우 중요하다.
프로토콜 : Socket, API
PDU : 데이터
장비 : 없음
전송 계층은 종단 시스템 간에 실질적인 데이터 전송이 이루어지는 계층이다.
주로 TCP, UDP
프로토콜을 사용하며, 헤더에 송신지와 수신지의 포트 번호를 포함하여 전달한다. 프로토콜에 따라 필요한 경우, 에러 검출 및 복구, 흐름 제어, 혼잡 제어 등의 기능을 수행하기도 한다.
프로토콜 : TCP, UDP
PDU : 세그먼트(TCP), 데이터그램(UDP)
장비 : 게이트웨이
네트워크 라우팅 전반의 과정이 3계층에서 수행된다. 라우터 내 테이블 정보를 기반으로, 다음 이동할 경로를 선택하여 IP 주소(논리적인 주소)를 지정하고, 해당 경로에 따라 패킷을 전달해준다.
프로토콜 : IP, ICMP, OSPF
PDU : 패킷
장비 : 라우터, 스위치
물리 계층으로 송수신 되는 정보를 관리하여 데이터가 안전하게 전달되도록 도와주는 역할을 한다.
데이터 링크 계층에서는 노드 간의 직접 통신이 이루어지고, 프레임은 ARP
프로토콜을 통해 MAC
주소를 찾아 실제 송수신 노드를 식별한다. 이 계층에서도 통신 간 신뢰성을 보장하기 위해 오류 검사, 에러 검출, 재전송 등을 수행한다.
프로토콜 : ARP
PDU : 프레임
장비 : 브리지, 스위치, 네트워크 어댑터
데이터를 전기적인 아날로그 신호로 변환해서 주고 받는 기능을 하는 계층이다.
이 계층에서는 단지 데이터를 전달만 할 뿐 전송하려는 데이터가 무엇이며, 어떤 에러가 있는지 등은 신경 쓰지 않는다. 단지 데이터의 전기적인 신호로 변환해서 주고 받는 기능만 정의한다.
프로토콜 : Ethernet, USB
PDU : 비트
장비 : 리피터, 허브
송신 호스트는 각 계층에서 맡은 역할에 따라 프로토콜을 통해 업무를 처리하고, 헤더정보(수신 호스트가 필요한 정보)를 추가하여, 하위 계층에게 보낸다. 수신 호스트에서는 헤더 정보를 기반으로 현재 계층에서의 업무를 수행하고, 더이상 불필요한 헤더를 삭제하는 과정이 이루어진다.
송신측에서 상위 계층에서 하위 계층오로 데이터가 옮겨질 때, 헤더가 추가되는 과정을 캡슐화 라 한다.
수신측에서 하위 계층에서 상위 계층으로 데이터가 옮겨질 때, 헤더를 제거하는 과정을 역캡슐화 라 한다.