OSI 7계층과 TCP/IP 계층

gunnoo·2025년 3월 15일

cs지식이 부족하다고 생각해서 블로그에 정리하면서 공부하려고 한다.

OSI 7계층과 TCP/IP 계층

우리는 자신의 컴퓨터에서 다른 사람의 컴퓨터로 통신하고자 할때, 네트워크 통신을 하게 되는데 컴퓨터는 네트워크 통신을 할 때 기본적으로 OSI 7계층모델 혹은 TCP/IP 계층 모델에 맞춰 작동을 하게 된다.

네트워크 통신이 일어나는 과정을 알아보자.

  1. 검색창에서 해당 페이지를 입력한다.
  2. 이를 네트워크에서 통신 가능한 형태로 만든다.(패킷이라고 부름)
  3. 이 패킷을 네트워크에 흘려 보낸다.
  4. 네트워크 중간에 있는 기기(라우터)들이 이 패킷을 읽고 해당 페이지 서버로 전달한다.
  5. 해당 페이지의 서버는 이 패킷을 다시 풀어, 웹서버가 읽을 수 있는 형태로 만들고 웹서버에 전달한다.

#패킷? 인터넷상에서 장치들이 서로 통신할 때 전송하는 데이터 조각을 말한다.

OSI 7계층 모델이란?

OSI 7계층이란 네트워크 통신의 과정을 7단계의 계층으로 나눈 설계를 의미한다. 이렇게 계층을 나누어 놓으면 무엇이 좋을까?

전체적으로 필요한 일을 여러 계층으로 나누면,
1. 계층별 해야 할 일이 명확해진다.
2. 전체적인 설계 모델이 있음으로써, 설명하기도 이해하기도 쉽다.
3. 각 층을 나누면 각 층별로 필요한 데이터들을 표준화할 수도 있다.
OSI 7계층 모델은 국제표준화기구에서 개발한 네트워크 통신 표준 모델이다.

계층 7: 응용 계층

이 계층은 웹 서비스의 UI부분, 사용자의 입출력(I/O)을 담당한다.
우리가 보통 개발하는 프론트 엔드, 백엔드 서버가 바로 이 레이어 위에서 동작한다.
즉 대부분의 사람이 사용하는 웹 서비스는 이 레이어 위에서 제공된다고 생각하면 된다.

계층 6: 표현 계층(Presentation Layer)

응용 계층과 네트워크 계층을 위해 계층 간 데이터를 적절히 표현하는 부분을 담당한다.
이미지를 압축한다든가, 데이터를 암호화 한다는가 등의 기능이 이 레이어 위에서 동작한다.

계층 5. 세션 계층(Session Layer)

통신은 실제로 세션이라고 하는 단위 위에서 이루어지는데, 이 계층은 이러한 통신 세션을 구성한다.

계층 4. 전송 계층(Transprot Layer)

컴퓨터로 들어온 네트워크 데이터를 어느 포트(어느 프로세스)로 보낼지 담당한다.
하나의 컴퓨터에는 여러 프로세스가 동작하고 있으며 프로세스마다 별도의 네트워크 포트를 가지게 된다.
예를 들면 하나의 컴퓨터에 프론트엔드 애플리케이션은 80포트를, 백엔드 애플리케이션은 8080포트에 배포 할 수 있다.
네트워크 데이터가 들어오면, 이를 80포트(프론트엔드 애플리케이션)로 보낼지, 8080포트(백엔드 애플리케이션)로 보낼지를 담당하는 것이다.
또한 네트워크가 끊기거나 데이터가 잘못된 것은 없는지 등 신뢰성 있는 데이터를 보장하는 역할을 담당한다.

계층 3. 네트워크 계층(Network Layer)

IP주소를 사용하여 네트워크 데이터를 어느 컴퓨터로 보낼지 담당한다.
IP 주소는 컴퓨터당 하나가 부여되지만, 중간에 바뀔 수 있으며 소프트웨어적으로 존재하는 개념이다.
흔히 말하는 라우터라는 기계가 이러한 역할을 해준다.

네트워크 카드의 MAC 주소를 사용해 네트워크 데이터를 어느 컴퓨터로 보낼지 담당한다.
MAC 주소는 랜카드당 하나가 존재한다.
즉 IP 주소랑은 다르게 변하지 않으며, 하드웨어 자체에 포함되는 개념이다.

계층 1. 물리 계층 (Physical)

디지털 데이터를 아날로그적인 전기적 신호로 변환하여 네트워크 전선에 흘려보낸다.
네트워크 전선은 0101과 같은 디지털 신호를 이해할 수 없다.
따라서 이런 디지털 데이터를 네트워크 전선이 이해할 수 있는 아날로그 형태로 바꾼다.
반대로 아날로그 신호를 디지털 신호로 바꾸는 역할도 한다.

TCP/IP 4계층 모델이란?

실제 대부분의 인터넷 통신은 IP와 TCP에 기반한 일명 TCP/IP 통신을 사용한다.
그리고 이 통신에 특화된 네트워크 통신 계층 모델이 따로 존재하는데, 이걸 TCP/IP 4계층 모델이라고 한다. OSI 7계층과 유사하지만, 아래 그림의 오른쪽 그림처럼 4계층으로 간소화되어 있다.

계층 4 : 응용 계층(Application Layer)

OSI 7계층 모델의 7,6,5(응용, 표현, 세션) 계층 기능을 담당한다.
HTTP, Telent, SSH, FTP와 같은 프로토콜이 여기에서 사용된다.

계층 3 : 전송 계층(Transport Layer)

OSI 7 계층 모델의 4(전송) 계층과 같다. 프로세스 간의 신뢰성 있는 데이터 전송을 담당한다.
TCP, UDP와 같은 프로토콜이 여기에서 사용된다.

계층 2 : 인터넷 계층 (Internet Layer)

OSI 7계층 모델의 3(네트워크) 계층과 같다. 컴퓨터 간 라우팅을 담당한다.

계층 1: 네트워크 인터페이스 계층 (Network Interface Layer)

OSI 7계층 모델의 2, 1(데이터 링크, 물리)계층과 같다. 네트워크 통신의 물리적인 부분들을 주로 포함한다.

HTTP vs HTTPS

먼저 HTTP는 Hyper Text Transfer Protocol의 약자로, 말 그대로 텍스트 문서를 주고 받기 위해 만들어진 프로토콜이다. 우리가 일상에서 사용하는 웹브라우저와 서버가 바로 이 HTTP를 사용하여 정보를 주고 받는다.
하지만, HTTP는 보안에 취약하다. 그래서 통신 과정에도 응용 계층의 데이터를 암호화할 필요성이 느껴졌는데, 이로 인해 보안을 위한 레이어 SSL(Secure Sockets Layer)이 생기게 된다. 해당 레이어는 응용 계층과 전송 계층 사이에 존재한다.

이렇게 보안의 역할을 하는 SSL 계층을 기반으로 하는 HTTP 통신을 HTTPS라고 한다.
HTTPS는 통신 보안을 포함하고 있으므로, 당연히 HTTP보다 더 좋다. 다만 내용을 암호화하고 복호화하는 로직이 추가되었으므로, 기존보다 통신 로직이 좀 더 복잡해진다.

profile
개발 블로그

0개의 댓글