OSI 7계층
OSI 7계층은 네트워크 통신의 과정을 7단계로 나눈 것입니다.
일단, 왜 계층을 7개로 나누었는 지에 대해 이야기할 수 있습니다. 사실 나눈 이유에 대해서는 컴퓨터에 대해 공부하다 보면 항상 등장하는 이야기가 있습니다. 추상화입니다. 밑에서 무슨 일이 일어나는지 몰라도, 위에서는 밑 계층에서 제공하는 기능을 비교적 간단히 이용할 수 있게 만드는 겁니다. 계층 구조로 네트워크 통신을 나누지 않는다면 네트워크 프로그래밍을 할 때마다 굉장히 복잡한 과정을 거쳐야 할 것입니다. 또한, 어느 단계에서 변경이 생겨도 다른 단계에서까지 수정을 거치지 않아도 되기에 계층적 구조를 선택한 것은 합리적입니다.
윗단부터 애플리케이션, 프레젠테이션, 세션, 트랜스포트, 네트워크, 데이터링크, 피지컬 총 7개의 레이어로 이루어집니다. TCP/IP 프로토콜의 경우 애플리케이션, 프레젠테이션, 세션 레이어를 합쳐 애플리케이션 레이어로 다루고, 데이터링크 레이어와 피지컬 레이어를 합쳐 네트워크 인터페이스라 부르는 차이가 있습니다.
- 애플리케이션 레이어
OSI 7계층의 가장 상단에 존재하며 사용자와 애플리케이션 간의 상호작용에 대해 다루는 계층이며, 사용자가 직접 접근하는 부분입니다. 이 레이어에서는 사용자 인터페이스 제공, 전자 메일, 원격 서비스, 웹 서비스 등의 기능을 제시하며, FTP와 같은 프로토콜이 여기에 속합니다.
- 프레젠테이션 레이어
6번째 계층으로 응용 프로그램 간 데이터 교환을 위해 데이터의 형식을 변환하고 암호화하는 역할을 합니다. 데이터의 변환을 통해 서로 다른 응용 프로그램 간 상호 이해 할 수 있도록 돕고, 효율적인 전송을 위해 데이터를 압축하고, 보안을 위해 데이터를 암호화합니다.
- 세션 레이어
5번째 계층으로 네트워크 간 통신의 시작과 종료 과정을 관리합니다. 통신이 성공적으로 이루어지도록 세션 설정, 유지 및 종료를 담당합니다. 양 끝단에 있는 응용 프로그램이 통신을 관리하기 위한 방법을 제공합니다. 클라이언트와 서버 간 파일 시스템 공유와 관련된 NFS 프로토콜과, 윈도우 네트워크에서 파일 공유, 프린터 공유를 지원하는 SBM 프로토콜 등이 이 레이어에 속합니다.
TCP/IP 세션을 만들고 없애는 작업이 이 레이어에서 이루어집니다.
- 트랜스포트 레이어
4번째 계층으로, 통신을 확립하고 유지시키는 역할을 합니다. 송신자와 수신자 간 데이터 전송을 관리합니다. 포트를 열어 응용 프로그램들이 전송을 해줄 수 있게 해주는 게 트랜스포트 레이어입니다. 연결 설정, 데이터의 분할 및 제조립, 흐름 제어, 오류 제어와 같은 기능을 수행합니다. 통신을 활성화한다고 볼 수 있고, 데이터가 오면 합쳐서 5계층으로 보냅니다.
TCP의 경우 신뢰성 있는 연결을 지향하여 데이터의 송수신 여부, 재전송에 대해 다루지만 UDP의 경우 속도를 중요시여겨 신뢰성이 낮습니다.
- 네트워크 레이어
3번째 계층으로 데이터 패킷을 라우팅합니다. 대표적인 장비로 라우터가 있습니다. 주소를 부여해 줘서 어디로 갈 지 알 수 있습니다.
IP가 네트워크 레이어에 속합니다. TCP/IP 기반 인터넷 망을 통해 데이터그램 전달을 담당합니다. 단 주소를 배정해주는 거지, 주소까지 잘 찾아가는지까지는 IP의 역할이 아닙니다.
- 데이터링크 레이어
2번째 계층으로 인접한 노드간 데이터 전송 관리와 물리적 링크를 통한 데이터 전송을 다룹니다. 맥 주소를 가지고 통신합니다. 정보의 오류를 탐지하고 재전송, 흐름 제어와 같은 역할을 수행합니다. 스위치 같은 장비가 사용됩니다.
이더넷과 PPP 프로토콜이 이 레이어에 속합니다.
- 피지컬 레이어
1계층으로 최하단입니다. 실제 물리적 매체와 관련이 있습니다. 비트 단위로 통신되며 데이터가 뭐고 에러가 있는지는 중요하지 않습니다. 그저 신호를 보내는 역할입니다. 이더넷은 1, 2계층의 역할을 하니 물리 계층에서 속합니다.