네트워크 OSI 7계층

이진석·2023년 1월 17일

오늘은 네트워크에서 통신이 일어나는 과정의 흐름을 7단계로 나누어 단계별로 파악할 수 있게 해놓은 OSI(Open Systems Interconnection Reference Model)에 대해서 정리해보았다.

위와 같이 계층을 나누어 정리해놓은 이유 중에 가장 와닿는 이유는 통신의 과정을 단계별로 파악해 네트워크 통신에서 어떤 문제가 발생 했을 때, 경우에 따라 어떤 계층의 문제인지를 특정하여 다른 계층은 건들지 않고 해당 계층만 고칠 수 있다는 점이다.

그럼 먼저 가장 아래에 있는 1계층, Physical Layer부터 시작해 가장 위에 있는 Application Layer까지 알아보도록 하자.

Physical Layer

  • 이 계층은 주로 전기적, 기계적 혹은 기능적 특성을 이용해 통신 케이블로 데이터를 전송한다.
  • 사용되는 통신 단위는 비트이며 0과 1로 이루어져 있다.
  • 데이터를 전달하기만 할 뿐 데이터가 무엇인지, 어떤 에러가 있는지에 대해서는 파악하지 않는다.
  • 이 계층에 속하는 대표적인 장비로는 통신 케이블(LAN Cable), 리피터, 허브 등이 있다.
  • Physical Layer를 통해 송수신 되는 데이터의 에러나 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와준다.
  • 네트워크 통신의 오류를 찾거나 재전송하는 기능이 있다.
  • 해당 계층에서는 MAC 주소를 가지고 통신한다.
  • 사용되는 통신 단위를 프레임이라고 하고 대표적인 장비로는 인터넷 공유기, Wi-fi 공유기 등이 있다.
  • Poing to Point 사이의 신뢰성 있는 전송을 보장하기 위해 CRC(순환 중복 검사) 기반의 오류 제어와 흐름 제어가 필요하다.
  • 1계층과 2계층은 보통 통합 칩 형태로 구현된다. 즉 SW가 아닌 HW의 형태로 구현된다고 할 수 있다.

Network Layer

  • 네트워크 계층은 여러개의 노드를 거칠 때마다 경로를 찾아주는 역할을 하는 계층으로 다양한 길이의 데이터를 네트워크들을 통해 전달하고 그 과정에서 전송 계층이 요구하는 서비스 품질을 제공하기 위한 기능적, 절차적 수단을 제공한다.
  • 라우팅, 패킷 포워딩, 세그멘테이션, 인터네트워킹 등을 수행한다.
  • 데이터를 연결하는 다른 네트워크를 통해 전달함으로써 인터넷이 가능하게 만드는 계층이다.
  • 논리적인 주소 구조(IP), 즉 네트워크 관리자가 직접 주소를 할당하는 구조를 가지며 계층적이다.
  • 이 계층에서 가장 중요한 기능은 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 것이다.
  • 3, 4 계층은 컴퓨터 운영체제 내부에서 구현되며, 하위 2계층과 디바이스 드라이버를 통해 데이터를 통신한다.
  • 2 계층에서 받은 데이터(프레임)을 소켓 인터페이스를 통해 7 계층으로 올려보낸다.

Transport Layer

  • 통신을 활성화하기 위한 계층으로 보통 TCP 프로토콜을 이용하며 포트를 열어 응용프로그램들이 데이터를 전송할 수 있게 한다.
  • 데이터가 왔을 때 4 계층에서 데이터들을 합쳐 5 계층으로 보내준다.
  • 양 끝단(End to End)의 사용자들이 신뢰성 있는 데이터를 주고 받을 수 있도록 해주기 때문에 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해준다.
  • 특정 연결의 유효성을 제어할 수 있고, 일부 프로토콜은 상태 또는 연결기반의 개념을 가지고 있는데 전송 계층이 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들을 다시 전송하는 것을 뜻한다.
  • 대표적인 프로토콜로 TCP / UDP가 있다.

Session Layer

  • 세션 계층은 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다.
  • 동시 송수신 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(Full Duplex)의 통신과 함께 체크 포인팅과 유휴, 종료, 다시 시작 과정 등을 수행한다.
  • 이 계층에서는 TCP/IP 세션을 만들고 없애는 책임을 가진다.
  • 통신하는 사용자들을 동기화하고 오류 복구 명령들을 일괄적으로 다룬다.
  • 전송 계층과 마찬가지로 대표 프로토콜로 TCP / UDP이 있다.

Presentation Layer

  • 표현 계층은 코드간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어 준다.
  • 수신자 장치에서 적합한 애플리케이션을 사용하여 송신자 장치로부터 받은 데이터를 해석하기 위한 응용 계층 데이터 부호화, 변환을 수행한다.
  • 수신자가 압출을 풀 수 있는 방식으로 된 데이터 압축을 수행한다.
  • 전송을 위한 암호화, 복호화 작업을 수행한다.
  • MIME 인코딩이나 암호화 등의 동작이 이 계층에서 이루어진다.
  • 대표적인 프로토콜로 ASCII, UTF-8 등이 있다.

Application Layer

  • 통신의 최종 목적지로 HTTP, FTP, SMTP 등의 프로토콜이 있다.
  • 해당 계층의 통신 패킷들은 위와 같은 프로토콜에 의해 모두 처리되며, 우리가 사용하는 브라우저나 메일 프로그램 등은 프로토콜을 보다 쉽게 사용하게 해주는 응용 프로그램이다.
  • 응용 계층은 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다.

참고 자료

profile
고양이 두마리의 집사이자 행복 코딩을 추구하는 주니어 개발자입니다!

0개의 댓글