개발 기록 남기기✍️

[네트워크] OSI 7계층과 TCP/IP 4계층 본문

기초 지식/네트워크

[네트워크] OSI 7계층과 TCP/IP 4계층

너해동물원 2023. 8. 3. 11:27

🔍 OSI 7계층이란?

OSI 7 계층은 국제표준화기구(ISO)에서 1984년에 개발한 모델로, 통신이 일어나는 과정을 크게 7단계로 구분한 것이다.

아래 그림에서 아래부터 1계층(물리 계층) ~ 7계층(응용 계층)으로 구성되어 있다.

또 그림과 같이 각 계층을 지날 때마다 각 계층에서 Header가 붙게되고 수신측은 역순으로 헤더를 분석하게 된다.

 

 

❓ OSI 7계층이 생긴 이유

약 반세기 전, 컴퓨터 네트워크라는 개념이 생겨나고 학교, 군대 등 한정된 그룹에 속한 소수의 사람만이 인터넷을 사용할 때만 해도 네트워크 통신에 필요한 장치나 시스템은 서로 호환되지 않는 경우가 많았다.

 

네트워크가 생긴지 얼마 되지 않았을 당시에는 사용자가 많지 않았기 때문에 큰 문제가 되지 않았지만, 1980년대 초 개인용 컴퓨터가 보급되기 시작하면서 인터넷을 사용하는 사람이 크게 늘자 다른 기종의 컴퓨터끼리도 네트워크를 형성할 수 있게 각 단계를 구분하고 이를 표준화하려는 움직임이 생겼다.

 

그 결과 국제표준화기구(ISO)에서 1984년에 통신이 일어나는 과정을 크게 7단계로 구분하고 단계별 표준을 정의한 것이 바로 OSI 7계층이다. OSI의 뜻은 개방 시스템 상호 연결(Open Systems Iterconnection)으로, 서로 다른 시스템이 잘 연결될 수 있게 하는 표준안으로 이해할 수 있다.

 

7계층을 나누면서 통신이 일어나는 과정을 단계별로 파악할 수 있게 됐고, 특정 계층에 이상이 생기면 다른 계층은 건드리지 않고 문제가 발생한 계층만 고칠 수 있게 되는 등 유지 및 관리도 수월해졌다.

 

비록 현재 프로토콜 대부분은 TCP/IP라는 이론보다 실용성에 중점을 둔 모델을 사용하고 있지만, OSI 7계층은 네트워크를 나누어 이해하고 개발하는 데 많은 도움이 되므로 여전히 중요하게 여겨지고 있다.

 

 

🔍 TCP/IP 4계층이란?

현대 네트워크는 대부분 TCP/IP 4계층이라는 다른 모델을 참조해 이루어져 있다. TCP/IP 4계층, 또는 인터넷 프로토콜 스위트라고도 하는 이 모델은 인터넷으로 컴퓨터들이 정보를 주고받을 때 사용하는 프로토콜의 모음으로, 이론과 표준화에 중점을 준 OSI 모델과 달리 실용성을 강조한 프로토콜이다.

OSI 7계층과 TCP/IP 4계층

 

사진을 보면 OSI 모델의 세션, 표현, 응용 계층이 TCP/IP 모델의 응용 계층으로 통합되고, OSI 모델의 물리, 데이터 링크 계층이 TCP/IP 모델의 네트워크 액세스 계층으로 합쳐진 모습을 확인할 수 있다. 따라서 OSI 모델로 봤을 때 응용 계층인 HTTP와 세션 계층인 SSL/TLS는 서로 다른 계층이지만 TCP/IP 모델로 보면 전부 같은 응용 계층이다.

 


🥊 OSI 7계층과 TCP/IP 4계층 비교

🔍 OSI 7계층 구조

▪️ 1계층 : 물리계층(Physical Layer)

  • 주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송하는 물리적인 장비
  • 데이터 전기적인 신호(0,1)로 변환해서 주고받는 기능만 함
  • 이 계층에서 사용되는 통신 단위 : 비트(Bit) (1과 0으로 나타내어지는, 즉 전기적으로 On, Off 상태)
  • 장비 : 통신 케이블, 리피터, 허브 

 

  • 물리 계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한통신의 흐름을 관리
  • 프레임에 물리적 주소(MAC address)를 부여하고 에러검출, 재전송, 흐름제어를 수행
  • 이 계층에서 전송되는 단위 : 프레임(Frame)
  • 장비 : 브리지, 스위치, 이더넷 등(여기서 MAC주소를 사용)

➡️ 브릿지나 스위치를 통해 맥주소를 가지고 물리계층에서 받은 정보를 전달함.

 

 

▪️ 3계층 : 네트워크 계층(Network Layer)

  • 데이터를 목적지까지 가장 안전하고 빠르게 전달
  • 라우터(Router)를 통해 경로를 선택하고 주소를 정하고(IP) 경로(Route)에 따라 패킷을 전달 > IP 헤더 붙음
  • 이 계층에서 전송되는 단위 : 패킷(Packet)
  • 장비 : 라우터

 

▪️ 4계층 : 전송 계층(Transport Layer)

  • port 번호, 전송방식(TCP/UDP) 결정 > TCP 헤더 붙음
    • TCP : 신뢰성, 연결지향적
    • UDP : 비신뢰성, 비연결성, 실시간
  • 두 지점간의 신뢰성 있는 데이터를 주고 받게 해주는 역할
  • 신호를 분산하고 다시 합치는 과정을 통해서 에러와 경로를 제어

 

▪️ 5계층 : 세션 계층(Session Layer)

  • 주 지점 간의 프로세스 및 통신하는 호스트 간의 연결 유지
  • TCP/IP 세션 체결, 포트번호를 기반으로 통신 세션 구성
  • API, Socket

 

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

  • 전송하는 데이터의 표현방식을 결정(ex. 데이터 변환, 압축, 암호화 등)
  • 파일 인코딩, 명령어를 포장, 압축, 암호화
  • JPEF, MPEG, GIF, ASCII 등

 

▪️ 7계층 : 응용 계층(Application Layer)

  • 최종 목적지로, 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행(ex. explore, chrome 등)
  • HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜이 있다.

 

 

🔍 TCP/IP 4계층 구조

▪️ 1계층 : 네트워크 액세스 계층(Network Access Layer)

  1. OSI 7계층의 물리계층(1)과 데이터 링크 계층(2)에 해당
  2. TCP/IP 패킷을 네트워크 매체로 전달하는 것과 네트워크 매체에서 TCP/IP 패킷을 받아들이는 과정을 담당
  3. 에러 검출 기능(Detecting errors), 패킷의 프레임화(Fraimg packets)
  4. 네트워크 접근 방법, 프레임 포맷, 매체에 대해 독립적으로 동작하도록 설계.
  5. 물리적인 주소로 MAC을 사용
  6. LAN, 패킷망, 등에 사용됨

 

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

  1. OSI 7계층의 네트워크 계층(3)에 해당
  2. 어드레싱(addressing), 패키징(packaging), 라우팅(routing) 기능을 제공
  3. 네트워크상 최종 목적지까지 정확하게 연결되도록 연결성을 제공하게 됨.
  4. 프로토콜 종류 – IP, ARP, RARP

 

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

  1. OSI 7계층의 전송 계층(4)에 해당
  2. IP와 Port를 이용하여 프로세스와 통신
  3. 애플리케이션 계층의 세션과 데이터그램(datagram) 통신 서비스 제공
  4. 통신 노드 간의 연결을 제어하고, 신뢰성 있는 데이터 전송을 담당한다.
  5. 프로토콜 종류 – TCP, UDP

 

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

  1. OSI 7계층의 세션 계층(5), 표현 계층(6), 응용 계층(7)에 해당한다.
  2. 프로그램(브라우저)가 직접 인터액트하는 레이어. 데이터를 처음으로 받는곳
  3. 다른 계층의 서비스에 접근할 수 있게 하는 애플리케이션을 제공
  4. 애플리케이션들이 데이터를 교환하기 위해 사용하는 프로토콜을 정의
  5. HTTP, SMTP등의 프로토콜을 가진다.
  6. TCP/UDP 기반의 응용 프로그램을 구현할 때 사용한다.
  7. 프로토콜 종류 – FTP, HTTP, SSH

 

 

 💡 OSI 모델과 TCP/IP 모델의 차이

  OSI 모델 TCP/IP 모델
목적 호환성, 표준화 실무 적용
레이어 수 7계층 4계층
구성 역할 기반 프로토콜 기반

 

다른 기종의 컴퓨터끼리도 네트워크를 형성할 수 있게 역할 별로 계층을 나누고 각 계층의 표준을 정한 것이 OSI 모델의 시작이다. 따라서 OSI 모델의 목적은 호환성 준수와 표준화이며, 실무에 적용하기보다는 참조형 모델(이론적 표준)에 가깝다.

 

이와 달리 TCP/IP 모델은 실제로 서로 다른 컴퓨터들이 데이터를 주고받을 수 있는 프로토콜을 만들어 실무에 적용하는 것을 목적으로 한다. 때문에 TCP/IP 모델은 클라이언트에서 서비스를 요청할 때 각 계층에서 어떤 프로토콜이 필요한지를 정의한 프로토콜의 집합(실무적 표준)에 가깝다.

 

 


🔍 OSI 모델로 보는 데이터 전송

데이터 통신에는 기본적으로 데이터를 주는 사람인 송신자와 데이터를 받는 사람인 수신자가 있다. 이때 송신자와 수신자 각각 OSI 7계층에 해당하는 프로토콜과 장비가 있다.

 

먼저 송신자가 요청을 보내면 OSI 계층 중 가장 사용자와 가까이 있는 응용 계층에서 요청 데이터를 받는다. 그 뒤에 데이터는 하위 계층으로 전달되며 마지막으로 가장 멀리 떨어진 물리 계층까지 이동한다. 그리고 인터넷을 통해 목적지까지 이동하고, 목적지에 도착하면 반대로 물리 계층에서 응용 계층 순서로 데이터가 상위 계층으로 올라가고, 마지막 응용 계층까지 데이터가 도달하면 성공적으로 수신자가 데이터를 받게 된다.

 

 

 

💡 캡슐화와 역캡슐화

각 계층은 헤더 정보를 통해 데이터가 들어왔을 때 자신이 처리해야 하는 순서임을 알 수 있다.

 

헤더 정보는 보내는 쪽의 계층이 받는 쪽의 계층에 전달하는 관련 정보이다. 보내는 쪽에서 자신의 역할이 끝날 때마다 데이터 처리에 필요한 몇 가지 정보를 헤더 정보로 넣어 하위 계층으로 전달한다. 그래서 각 계층을 보면 하위 계층의 데이터가 상위 계층의 데이터를 감싸는 형태가 된다.

 

그리고 받는 쪽에서는 헤더 정보를 보고 처리한 뒤에 자신에 계층에 속한 헤더 정보는 벗겨내고 상위 계층으로 전달한다. 이렇게 계층마다 확인해야 하는 헤더 정보가 있어서 계층별로 정해진 역할을 잘 수행할 수 있다.

 

이때 보내는 쪽에서 헤더를 덧붙이면서 데이터를 하위 계층으로 보내는 과정을 캡슐화(encapsulation), 반대로 받는 쪽에서 헤더를 떼어내면서 데이터를 상위 계층으로 보내는 과정을 역캡슐화(decapsulation)라고 한다.

'기초 지식 > 네트워크' 카테고리의 다른 글

[네트워크] IP에 대해 알아보자  (0) 2023.08.04