CS (Computer Science)/네트워크

네트워크 계층 모델, 패킷

pigggulggul 2024. 12. 1. 18:02

네트워크 계층 모델

  • TCP/IP 계층
    • 현재의 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 통신 규약
  • 1계층~4계층까지 각각 네트워크 엑세스, 인터넷, 전송, 응용으로 나뉩니다

OST 7계층

  • 네트워크 통신을 체계적으로 다루는 ISO에서 표준으로 지정한 모델
  • 데이터를 주고받을 때 데이터 자체의 흐름을 각 구간별로 나눕니다
  • 네트워크 패킷들은 사실 TCP/IP에 더 맞습니다

계층분류​

7계층: 응용 HTTP, SMTP, SSH
6계층: 표현 XDR
5 계층: 세션 NetBIOS
4 계층: 전송 TCP, UDP, SPX
3 계층: 네트워크 IP, ICMP, ARP
2 계층: 데이터 링크 Ethernet
1 계층: 물리 전산, 동축케이블, CSMA/CD
  1. 물리 계층 (Physical Layer):
    • 역할: 물리적 매체와 전기 신호를 다룹니다. 하드웨어 단에서 송수신이 일어납니다
    • 주요 활동: 데이터를 전기 신호로 변환, 전송 매체 관리. 예를 들어, 네트워크 케이블, 허브, 리피터, NIC 등의 장치가 이 계층에 속합니다
  2. 데이터 링크 계층 (Data Link Layer):
    • 역할: 직접 연결된 두 노드 간의 신뢰성 있는 데이터 전송을 보장합니다
    • 주요 활동: 프레임(데이터 패킷)의 전송, 오류 검출 및 수정, 흐름 제어, 노드 간 주소 지정 (MAC 주소) 등을 수행합니다. 스위치와 이더넷 카드가 이 계층에 속합니다
  3. 네트워크 계층 (Network Layer):
    • 역할: 여러 네트워크 간 라우팅과 패킷 전달을 관리합니다
    • 주요 활동: 라우팅, 논리 주소 지정 (IP 주소), 패킷 전달 및 중계, 서브넷 구분 등을 수행합니다. 라우터가 이 계층에 속합니다
  4. 전송 계층 (Transport Layer):
    • 역할: 호스트 간 통신을 위한 종단 간 연결과 데이터 흐름 제어를 관리합니다
    • 주요 활동: 포트 번호를 사용하여 프로세스 간 통신을 구분하고, 데이터의 신뢰성을 제공하기 위해 오류 복구와 흐름 제어를 수행합니다. TCP와 UDP가 이 계층에 속합니다
  5. 세션 계층 (Session Layer):
    • 역할: 세션 관리, 대화 제어, 동기화, 체크포인트 및 복구를 제공합니다
    • 주요 활동: 세션 설정, 유지, 종료, 데이터 동기화 및 복구 등을 처리합니다
  6. 표현 계층 (Presentation Layer):
    • 역할: 데이터 형식 변환, 압축, 암호화 및 해독 등 데이터 표현 및 변환을 담당합니다
    • 주요 활동: 데이터 인코딩, 데이터 형식 변환, 보안 기능을 수행하여 상위 계층에서 데이터를 처리하기 쉽도록 합니다
  7. 응용 계층 (Application Layer):
    • 역할: 응용 프로그램과 사용자 간의 인터페이스를 제공합니다
    • 주요 활동: 응용 프로그램과 네트워크 간의 통신을 지원하며, 예를 들어 이메일, 웹 브라우징, 파일 전송, 원격 접속 등 다양한 응용 프로그램을 포함합니다

TCP/IP 모델과 OSI 모델의 공통점 및 차이점

공통점

  • 네트워크를 계층으로 나누고 계층마다 역할을 정의합니다

차이점

  • 계층의 수 차이 (7계층, 4계층)
  • OSI는 역할 기반이고, TCP/IP는 프로토콜 기반입니다
  • OSI는 통신 전반에 대한 표준입니다
  • TCP/IP는 데이터 전송기술에 특화되었습니다
  • OSI는 이론적인 참조를 위해서 TCP/IP는 구현을 위해서 만들어졌습니다. 실제로 네트워크 프로토콜을 일일히 캡쳐해서 보면 TCP/IP에 가깝습니다
  • TCP/IP의 1계층이 OSI모델에선 1,2계층으로 나뉘어있습니다. (OSI모델에서 너무 세분화해서 나눴습니다)
  • HTTP도 7계층이라 표현했지만 하나의 프로토콜 안에 응용, 표현, 세션이 다 들어가있습니다
  • 하지만 우리나라의 웬만한 시험, 면접에선 TCP/IP보다 OSI 7계층에 대해 물어봅니다

패킷

  • 네트워크 상에서 전달되는 모든 데이터의 통칭(단위)
  • 데이터의 형식화된 하나의 블록단위
  • 패킷 안에는 제어 정보와 사용자 데이터로 이루어집니다 (누가 누구에게 보내는지, 어떻게 어떤 데이터를, 뭘 요청하는지 등)
  • 패킷은 여러 프로토콜의 조합입니다. (a.k.a 마트료시카 인형)
  • 프로토콜이 달라지면 헤더의 내용이 달라집니다

(패킷의 이동)

패킷의 형태

  • 기본형태

헤더페이로드풋터

풋터는 1가지 경우 빼고 사용 안 하고 헤더+페이로드만 사용합니다 (1가지 : Ethernet 프로토콜)

ex)

Ethernet | IPv4 | TCP | HTTP

  1. 위의 경우에 HTTP프로토콜을 페이로드로 해서 TCP라는 헤더를 붙입니다. 이러면 하나의 패킷이 됩니다
  2. 다시 1의 패킷을 페이로드로 해서 IPv4를 헤더를 붙입니다.
  3. 2의 패킷을 페이로드로해서 Ethernet 프로토콜을 헤더로 붙입니다. 패킷의 형태는 정해져있지 않고 계속 붙을 수 있습니다.
    데이터
  TCP 데이터
IPv4 TCP 데이터
Ethernet IPv4 TCP 데이터

캡슐화 과정에서 상위계층에서 하위계층으로 내려가면서 프로토콜을 붙입니다. 하위프로토콜 앞에 상위 프로토콜이 올 수 없습니다. (OSI 계층으로 나누면 TCP는 4계층 IPv4는 3계층 Ethernet은 2계층입니다)


페이로드에 프로토콜을 헤더에 붙이는 과정을 캡슐화라고 하는데 캡슐화는 누군가에게 패킷을 보낼 때 사용합니다. 반대로 패킷을 받을 때는 프로토콜을 하나씩 확인하면서 데이터를 확인하는 과정을 디캡슐화라고 합니다. 확인을 할 때는 반대로 Ethernet부터 시작해서 하나씩 확인하여 페이로드를 확인합니다.


패킷

각각의 계층에서 패킷을 부르는 용어가 다릅니다. 패킷은 인터넷에서 네트워크 망을 통하여 왔다갔다하는 네트워크 데이터를 통칭해서 부르는 말이지만 계층에 따라 용어가 다릅니다.

  • 세그먼트 (4계층) - TCP+데이터 만 붙어있음
  • 패킷 (3계층) - 통칭해서 말하는 패킷과는 다름. IPv4 + TCP + 데이터
  • 프레임 (2계층) - Ethernet + IPv4 + TCP + 데이터
패킷의 생성

 

프로세스가 소켓에다가 입출력을 시도하면 그 때 메모리에 저장된 스트림형식의 길다란 데이터를 일정 단위로 Segment화 한 후에 패킷 형식으로 캡슐화하여 생성됩니다. MTU(Maximum Transmission Unit)가 보통 1500이라 2000바이트로 보내면 패킷이 2개가 보내지게 됩니다.

회선 교환 네트워크

  • 정해진 회선으로만 통신하는 네트워크 (전통적인 전화망)
  • 사전에 연결 수립 작업
  • 다른 호스트는 도중에 끼어들 수 있습니다
  • 장점 : 전송률 보장
  • 단점 : 회선 이용률 저하