Post

OSI 참조 모델과 TCP/IP 프로토콜 계층 구조

OSI 참조 모델과 TCP/IP 계층

OSI 참조 모델과 TCP/IP 프로토콜 계층 구조

03. 시스템아키텍처 이해와 활용

한 눈에 보기


TCP/IP 모델OSI 모델
응용 계층응용 계층
 표현 계층
 세션 계층
전송 계층전송 계층
인터넷 계층네트워크 계층
네트워크액세스 계층데이터링크 계층
 물리 계층
TCP/IP 모델과정 및 내용
응용 계층데이터 생성
 ⟶ 1. TCP(UDP) 헤더 추가
전송 계층데이터를 세그먼트(데이터그램)로 캡슐화
 ⟶ 2. IP 헤더 추가
네트워크 계층세그먼트를 패킷으로 캡슐화 / IP 주소로 패킷 라우팅
 ⟶ 3. 물리적 주소 추가
데이터링크 계층패킷을 프레임으로 캡슐화 (프레임: 물리 매체 통한 전송 단위)
물리 계층프레임을 비트로 변환 / 전기 신호 혹은 광신호로 전송

프로토콜이란?


  • 최적화된 소프트웨어 설계와 개발을 위해서는 네트워크에 사용되는 표준 프로토콜에 대한 이해가 필요하다.
  • 프로토콜이란, 네트워크를 통하여 데이터를 주고 받기 위한 표준화된 통신 규약을 뜻한다.
    • 라우터는 많고 많은 PC와 서버를 연결해주는데,
      라우터들이 데이터를 주고 받기 위해서는 서로 이해할 수 있는 공통의 프로토콜이 필요하다.
    • 프로토콜은 국가 간 원활한 교류를 위해 만들어진 의례, 외교용 언어라는 의미로 쓰이기도 하는데,
      마찬가지로 서로 다른 전자 기기 간 원활한 통신을 위해 맺은 약속이라고 생각하면 된다.

OSI 참조 모델


  • OSI: Open Systems Interconnection의 약자로, 직역하면 개방 시스템의 상호 연결 구조라는 뜻이다.
OSI 모델프로토콜
응용 계층HTTP, SMTP, SNMP, FTP 등
표현 계층PEG, MPEG, XDR 등
세션 계층TLS, SSH, RPC, NetBIOS 등
전송 계층CP, UDP, SCTP 등
네트워크 계층IP, IPX, ICMP, ARP 등
데이터링크 계층Ethernet, Token Ring, 무선랜 등
물리 계층전파, 광선유, PSTN 등

통신 과정 예시

1

  1. 사용자가 웹 서버에 접속 요청
  2. 무선 공유기가 사용자 요청을 받아 인터넷으로 전달
  3. 라우터가 중간에서 패킷을 라우팅
    • 쉽게 말해 라우터는 작은 데이터 블록(패킷)을 다른 네트워크로 운송하는데,
      이때 최적의 경로를 결정(라우팅)하는 장치라고 이해하면 된다.
  4. 스위칭허브를 거쳐 최종 서버로 도달
    • 스위칭허브는 장치들을 연결하여 데이터를 효율적으로 전달한다.
  • 그림은 프로토콜 계층 개념을 반영한 가상 네트워크이다.
  • 그림을 보면 화살표가 흐르는 방향이 각 계층을 거치는 순서라는 것을 알 수 있다.
    물리층을 거칠 땐 전선 혹은 스위치와 같은 하드웨어로 직접 연결되어 전기 신호를 통해 동작한다.
    이후 데이터 링크층 이상부터는 소프트웨어적으로 구현되어 동작하게 된다.

TCP/IP 프로토콜 계층


  • TCP: Transmission Control Protocol / IP: Internet Protocol
  • OSI 7계층과 TCP/IP 4계층 모두 통신 과정을 표현하기 위한 계층.
    OSI 7계층은 각 계층과 역할을 보다 정확하게 정의하며,
    TCP/IP 4계층은 이름처럼 인터넷에서 쓰이는 프로토콜 중심으로 단순화하여 모은 것이다.
  • TCP/IP 계층은
    1. 응용 계층,
    2. 전송 계층,
    3. 인터넷 계층(= 네트워크 계층),
    4. 네트워크액세스 계층(= 데이터링크 계층 + 물리 계층)
      으로 이루어진다.
TCP/IP 모델전송 단위주요 프로토콜
응용 계층메시지약 6,5000개
전송 계층세그먼트(데이터그램)TCP, UDP 등
네트워크 계층패킷IP, ICMP 등
데이터링크 계층프레임Ethernet, PPP 등
물리 계층비트 

네트워크 프로토콜 헤더와 데이터 구성

1

  • 통신은 (헤더, 데이터) 묶음 구성을 전달하며 이루어진다. 위 계층에서 내려받은 데이터는 프로토콜 헤더와 함께 전달된다.
    이 때 프토코콜 헤더에는 데이터의 내용과 출발지 주소 및 도착지 주소가 담겨있다.
  • 헤더는 전송하려는 계층에 따라 종류가 달라진다.
    • 응용 계층에서 전송하는 데이터는 전송 계층 프로토콜을 통하여 전송 가능
      • 전송 계층 프로토콜 TCP를 통하려 한다면 TCP 헤더 필요
    • 전송 계층에서 전송하는 데이터는 TCP 헤더를 포함하며, 이는 네트워크 계층 프로토콜 통해 전송
      • 네트워크 계층 프로토콜 IP를 통하려 한다면 IP 헤더 필요
    • 네트워크 계층에서도 마찬가지로 IP헤더까지 데이터로 간주, 이는 데이터링크 계층 프로토콜 통해 전송
      • 데이터링크 계층 프로토콜은 주로 이더넷을 사용, 이더넷 헤더 필요
  • 캡슐화: 데이터에 헤더를 추가해 패킷을 구성하는 과정
  • 디캡슐화: 캡슐화의 역과정

각 계층에 대한 설명


1. 응용 계층

  • 응용 계층은 이름처럼 응용 프로그램들이 동작하는 계층이다.
  • 응용 계층 프로토콜은 응용 프로그램 간 정보를 주고받기 위해 사용하는 프로토콜이다.
    • FTP: 파일 전송에 사용
    • TELENT: 터미널 연결에 사용
    • SMTP, PIP3, IMAP 등: 이메일 송신 및 접근에 사용
    • DNS: 호스트 이름과 IP 주소를 매핑
    • SNMP: 네트워크 관리에 사용
    • HTTP: 웹 클라이언트와 웹 서버 간 데이터 전송을 위해 사용
    • Bit Torrent: 네트워크 인프라에 접속하는 방식이 아닌, 단말 대 단말 통신인 P2P 프로토콜
  • HTTP: Hypertext Transfer Protocol
    • 하이퍼링크처럼 비선형적인 텍스트 등 하이퍼미디어 정보 시스템을 위한 프로토콜이다.
    • WWW 콘텐츠를 전송하기 위한 목적으로 사용한다.
    • 요청/응답 프로토콜 사용
      • 클라이언트가 서버로 요청 메시지 ⟶ 서버가 status line으로 클라이언트에게 응답 메시지

2. 전송 계층

  • 전송 계층 프로토콜은 클라이언트 애플리케이션과 서버 애플리케이션을 이어주는 최하위 프로토콜이다.
    • TCP와 UDP가 많이 사용된다.
  • TCP(Transmission Control Protocol)
    • TCP는 하나의 전체 데이터를 여러 개의 세그먼트(Segment)로 나누어 처리한다.
    • 특징
      • 흐름 제어: 패킷이 넘쳐 분실하는 일이 발생하지 않도록 패킷의 흐름 양을 조절
      • 오류 제어: 전송 도중 발생한 오류를 잡아내고, 실제 데이터 값을 복구
      • 혼잡 제어: 네트워크 용량을 초과하는 경우 발생하는 혼잡 상태를 제어
  • UDP(User Datagram Protocol)
    • UDP의 전송 단위는 사용자 데이터그램(user datagram)이다.
    • 특징
      • TCP와 달리 연결을 위한 사전 설정과정 없이 바로 데이터를 주고 받아, 신뢰성을 보장하지 않는다.
        따라서 흐름 및 오류제어, 혼잡 제어가 없어 빠르지만 안정성이 떨어진다.
      • 위와 같은 특징 때문에 실시간 통신이 중요하고 일정 수준의 손실을 처리하도록 설계된
        음성 및 비디오 트래픽(인터넷 기반 전화 서비스 등)이 UDP와 같은 프로토콜을 통해 작동된다.

3. 네트워크 계층

  • 네트워크 계층은 전송 계층으로부터 받은 세그먼트를 캡슐화하고 데이터링크 계층으로 전달한다.

  • TCP/IP 모델에서는 인터넷 계층이다.

  • 네트워크 계층의 기능

    • 패킷화(Packetized): 출발지에서는 캡슐화, 도착지에서는 캡슐 제거
    • 라우팅(Routig): 출발지에서 도착지까지 경로 찾기 수행
    • 포워딩(Forwarding): 출발지에서 도착지까지 갈 수 있도록 실제로 운송시키는 작업

4. 데이터링크 계층

  • 데이터링크 계층은 물리계층을 이용해 주변 장치로 데이터를 전송하는 계층이다.
  • TCP/IP 계층에서는 네트워크 인터페이스 계층, 네트워크 액세스(네트워크 접근) 계층이라고도 한다.

  • 데이터링크 계층의 기능: 주소할당, 오류감지
This post is licensed under CC BY 4.0 by the author.