네트워크- 프로토콜과 캡슐화

김명주·2024년 12월 30일
0

패킷 교환 네트워크

메시지는 네트워크를 통해 주고받는 정보를 의미한다. 그 메시지는 패킷 단위로 주고받게 된다.
패킷이란 패킷 교환 네트워크에서 주고받는 데이터 단위이다.
2GB 짜리 파일이 있다면 이것이 통째로 옮겨가는 것이 아닌 패킷 단위로 쪼개져서 전송되고, 전송된 목적지에서 쪼개진 패킷이 재조립되서 도착한다.
이렇게 주고받는 정보를 패킷 단위로 주고받는 네트워크가 바로 패킷 교환 네트워크다.
그리고 오늘날 인터넷에서 주로 활용되는 네트워크이기도 하다.

  • A 컴퓨터가 C 컴퓨터에 무언가를 보내주고 있을 때, B도 그 사이에 끼어들어서 D 컴퓨터에 같이 보내줄 수 있다. -> 두 개의 메시지를 한번에 보내줄 수 있음.

패킷 스위치

중간 노드로써 패킷을 교환하는 역할이다. 패킷을 전달할 때, 하나의 경로만으로 보내는 것이 아닌 여러 경로로 보낼 수 있다.

  • 쪼개진 패킷을 어디로 전달하는지(라우팅)
  • 패킷의 손상 유무

회선 교환 네트워크

패킷 교환 네트워크와 상반되는 개념이다. 정해져 있는 링크로만 통신하는 네트워크로써, 사전에 연결 수립 작업을 진행하여 그 연결로만 통신하는 네트워크다.

  • 정해진 회선(서킷)으로만 통싱하는 네트워크
  • 사전에 연결 수립 작업
  • 다른 호스트는 도중에 끼어들 수 없음
  • 전송률을 보장하나(데이터의 양을 정확히 예측 가능), 회선 이용률이 저하된다.
  • C 컴퓨터가 A 컴퓨터에 무언가를 전송하고 싶은데 A 컴퓨터가 B 컴퓨터와 무언가 주고받고 있다면, C는 그 사이에 끼어들 수 없다.
  • 예시 : 전통적인 전화망

패킷 구성 요소

  • 헤더(header) : 패킷에 붙일 부가 정보
    • 이 패킷이 어디로 가야하는지, 어디에서 출발하는 패킷인지 등이 포함되어있음
    • 주소, 프로토콜을 보조하는 정보 등
    • 헤더의 내용은 프로토콜의 영향을 받는다. 프로토콜이 달라지면 헤더의 내용도 달라질 수 있다.
  • 페이로드(payload) : 패킷에 보낼 정보
    • 실제로 보내고자 하는 정보
  • [트레일러(trailer)] : 패킷 뒤에 붙일 부가 정보

프로토콜

  • 장비 간 정보를 주고받을 규칙이나 방법
  • 호스트 간에 합의된 의사소통 규칙, 호스트 간의 언어라고도 볼 수 있다.
  • 프로토콜이 서로 일치해야 정보를 주고받을 수 있다.
  • 프로토콜마다 규칙이 다르니, 프로토콜마다 목적도 다르다.

네트워크 참조 모델

내가 친구와 메시지를 주고받는다고 생각해보자. 이 과정을 세세하게 나누면 계층으로 표현할 수 있다. 계층이란, 네트워크 송수신 과정에서의 정형화된 단계를 의미한다.

내가 메시지를 보내면 4계층부터 1계층 순으로 메시지를 전송하게 되고, 친구는 1계층부터 4계층 순으로 메시지를 전달받게 된다.
반대로 친구가 메시지를 보내면 4계층부터 1계층 순으로 메시지를 전송하고, 나는 1계층부터 4계층 순으로 메시지를 전달받게 된다.

  • 네트워크에서 메시지를 송신하는 대상은, 높은 계층에서 낮은 계층 순으로
  • 네트워크에서 메시지를 수신하는 대상은, 낮은 계층에서 높은 계층 순으로

대표적인 참조 모델

대표적으로 OSI 모델과 TCP/IP 모델이 있다.

OSI 모델

총 7계층으로 이루어져 있다. 이론적인 참조를 위해 만들어진 모델이다.

  • 물리 계층
    • 가장 근원적인 송수신이 이루어지는 계층
    • 0과 1로 이루어진 비트를 주고받거나 케이블 또는 전자파를 통해 주고받는 계층
    • 하드웨어 단에서 송수신이 이루어지는 계층이다
  • 데이터링크 계층
    • 오류 제어를 하거나, LAN 환경에서 주소를 식별한다(MAC 주소).
    • LAN 환경에서 안전하게 통신할 수 있도록 충돌을 방지한다.
    • 이 계층에서 패킷에 트레일러가 추가된다.
  • 네트워크 계층
    • 네트워크 끼리 통신할 수 있게 해주는 계층
    • IP의 등장, 통신의 범위를 넓힐때 사용
  • 전송 계층
    • 송수신 과정에서 신뢰성을 더하고 싶을때 사용된다.
    • 내 컴퓨터에 있는 프로그램이 인터넷 밖으로 나갈때 어떻게 식별될 지에 대한 정보로써 PORT 라는 번호를 사용함
  • 세션 계층
    • 세션이라고 하는 연결관계를 유지하고 수립하는 계층
  • 표현 계층
    • 압축 및 인코딩을 담당
  • 응용 계층
    • 실제로 어플리케이션 프로그램이 동작하는 계층
    • 네트워크로부터 데이터를 전달받거나 전송하거나 하는 프로그램이 동작하는 계층
    • HTTP가 대표적

TCP/IP 모델

OSI 모델과 유사하나, 만들어진 목적이 다르다.
OSI 모델은 이론적인 참조를 위해 만들어졌고, TCP/IP 모델은 실제 구현을 위해 만들어진 모델이다.
즉, OSI 모델은 이론적, 이상적인 설계에 집중되어 있고 TCP/IP 모델은 실제 구현에 집중되어 있다.

  • 네트워크 액세스 계층
    • OSI 모델의 물리 계층, 데이터 링크 계층을 합친 것과 유사
  • 인터넷 계층
    • OSI 모델의 네트워크 계층과 유사
  • 전송 계층
    • OSI 모델의 전송 계층과 유사
  • 응용 계층
    • OSI 모델의 세션 계층, 표현 계층, 응용 계층을 합친 것과 유사

캡슐화와 역캡슐화

내가 친구와 메시지를 주고받을 때, 캡슐화와 역캡슐화 과정을 거치면서 주고받는다.

캡슐화

메시지를 전달할 때, 송신 측에서는 높은 계층에서 낮은 계층으로, 수신 측에서는 낮은 계층에서 높은 계층으로 메시지가 이동한다.
이 과정에서 캡슐화가 이루어진다.
계층마다 주로 사용되는 프로토콜이 다른데 (네트워크 계층에서는 IP, 전송 계층에서는 TCP, 응용 계층에서는 HTTP), 계층을 지날수록 프로토콜의 목적에 따라 헤더가 추가된다.
즉, 응용 계층에 있던 헤더와 페이로드가 전송 계층을 지나면서 하나의 페이로드로 합쳐지고, 새 헤더가 추가된다. 전송 계층에 있던 헤더와 페이로드가 네트워크 계층을 지나면서 하나의 페이로드로 합쳐지고 새 헤더가 추가된다. 그리고 네트워크 계층에 있던 헤더와 페이로드가 데이터 링크 계층을 지나면서 하나의 페이로드로 합쳐지고, 새 헤더와 트레일러가 추가된다.

이렇게 계층을 지나면 지날수록 헤더의 내용이 추가되는 과정이 캡슐화 이다.
즉, 캡슐화란
**상위 계층으로부터 내려받은 패킷을 페이로드로 삼아, 상위 계층으로부터 받은 정보에 걸맞는 헤더 혹은 트레일러를 덧붙이는 과정**
을 의미한다.

역캡슐화

위에서 설명한 캡슐화 과정에서 붙인 헤더 및 트레일러는 각 계층에서 제거하는 것을 의미한다. 이는 수신하는 쪽 입장에서 진행된다. 최종적으로 수신받고자 하는 데이터만 수신받는 것이 역캡슐화다.

PDU?

PDU란 캡슐화 과정에서 생겨난 헤더와 페이로드(캡슐화된 데이터들)를 의미하는데, 각 계층에서 PDU를 부르는 지칭이 다르다.
OSI 계층에서는 아래와 같이 부른다.

  • data -> 응용, 표현, 세션계층에서 사용되는 지칭
  • 세그먼트(TCP를 이용할 경우), 데이터그램(UDP를 이용할 경우) -> 전송 계층에서 사용
  • 패킷 -> 네트워크 계층에서 사용, 여기서의 패킷과 패킷 교환 네트워크에서의 패킷은 다른 개념
    • 패킷 교환 네트워크의 패킷은 메시지 자체를 지칭한다.
    • 혼동을 방지하기 위해 PDU에서의 패킷을 IP패킷으로 부르기도 한다.
  • 프레임 -> 데이터 링크 계층에서 사용
  • 비트 -> 물리 계층에서 사용
profile
개발자를 향해 달리는 사람

0개의 댓글