네트워크 기초, TCP/IP 4계층 모델

박세건·2025년 3월 19일
0
post-thumbnail

네트워크의 기초 🚀

네트워크란 노드링크(간선)가 서로 연결되거나 연결되지 않은 집합체를 의미합니다.

  • 노드(Node): 서버, 라우터, 스위치 등의 네트워크 장비 🖥️
  • 링크(Link): 유선 또는 무선 연결 📶

좋은 네트워크란 짧은 시간에 많은 양의 데이터를 처리할 수 있고, 장애 발생 빈도가 적으며, 보안성이 뛰어난 네트워크를 말합니다. 🔒


용어 설명 📝

  • bps (bits per second): 초당 전송되는 비트 수
  • 대역폭 (Bandwidth): 주어진 시간 동안 전송될 수 있는 최대 비트 수
  • 지연 시간 (Latency): 두 장치 사이에 데이터를 전달하는 데 걸리는 시간 ⏱️

네트워크 토폴로지 🌐

네트워크 토폴로지는 네트워크의 구조, 즉 노드들이 어떤 형태로 연결되어 있는지를 나타냅니다.

  • 트리 토폴로지

    • 계층형 구조
    • 노드의 삽입과 삭제가 쉬움
    • 과도한 트래픽이 하위 노드에 영향을 줄 수 있음
  • 버스 토폴로지 (LAN에서 주로 사용)

    • 중앙 회선을 기반으로 연결됨
    • 노드의 삽입과 삭제가 용이함
    • 스푸핑(Spoofing) 위험 존재
      • 부가 설명: 스푸핑은 네트워크 장비(예: 스위치)를 속여 악의적인 노드로 패킷이 유도되도록 하는 공격 기법입니다. 😈
  • 스타 토폴로지

    • 중앙 노드에 모든 노드가 연결됨
    • 중앙 노드 장애 발생 시 전체 네트워크 장애
    • 구축 비용이 다소 높음 💰
  • 링 토폴로지

    • 노드들이 원형으로 연결되어 있음
    • 하나의 링크 장애 발생 시 전체 네트워크에 영향
  • 메시 토폴로지

    • 모든 노드가 다수의 다른 노드와 직접 연결됨
    • 구축 비용이 높고, 관리가 복잡함

네트워크 토폴로지가 왜 중요한가? 🔍

네트워크 상에서 병목 현상이 발생하면 문제 해결을 위해 전체 구조와 경로를 파악해야 합니다. 올바른 토폴로지 이해는 문제 원인 분석과 해결에 큰 도움이 됩니다.


네트워크 분류 📡

  • WAN (Wide Area Network): 전 세계를 아우르는 광역 네트워크
  • MAN (Metropolitan Area Network): 도시 단위의 네트워크
  • LAN (Local Area Network): 사무실, 학교 등 제한된 범위 내의 네트워크

범위가 좁아질수록 데이터 전송 속도가 빠르고 혼잡도가 줄어듭니다. ⚡


네트워크 성능 분석 명령어 🔧

병목 현상의 주된 원인:

  • 네트워크 대역폭 부족
  • 부적절한 네트워크 토폴로지
  • 서버의 CPU 및 메모리 사용량 과다
  • 비효율적인 네트워크 구성

주요 명령어:

  • ping: 일정 크기의 패킷을 전송하여 네트워크 연결 상태와 왕복 시간을 확인 (ICMP 프로토콜 사용)
  • netstat: 현재 접속된 네트워크 상태를 표시
  • nslookup: DNS 관련 정보를 확인
  • tracert 또는 traceroute: 목적지까지의 경로 및 어느 구간에서 지연이 발생하는지 확인

네트워크 프로토콜 표준화 📜

여러 장치들이 데이터를 주고받기 위해 공통 인터페이스와 프로토콜을 정의합니다. 이를 통해 다양한 벤더의 장비들도 서로 원활하게 통신할 수 있습니다.


TCP/IP 4계층 모델 🏛️

TCP/IP 모델은 4계층으로 구성되어 있으며, 각 계층은 서로 독립적으로 동작합니다.

  1. 애플리케이션 계층
    (애플리케이션, 표현, 세션 계층을 포함하며 사용자에게 서비스를 제공합니다.)

  2. 전송 계층
    (송신자와 수신자 사이의 데이터 전달을 책임지며, 연결형(TCP)과 비연결형(UDP) 방식을 제공합니다.)

  3. 인터넷 계층
    (패킷을 목적지 IP 주소로 전달하며, 비연결형 특성을 가집니다.)

  4. 링크 계층
    (물리 계층과 데이터 링크 계층을 포함하며, 실제 데이터 전송 및 신호 제어를 담당합니다.)


애플리케이션 계층 🎨

사용자가 직접 이용하는 서비스를 제공하는 계층입니다.

주요 프로토콜:

  • FTP: 파일 전송 프로토콜
  • HTTP: 웹 서버와 클라이언트 간의 통신
  • SSH: 보안 쉘, 암호화된 원격 접속
  • SMTP: 이메일 전송
  • DNS: 도메인 이름을 IP 주소로 변환

전송 계층 📦

송신자와 수신자를 연결하여 애플리케이션과 인터넷 계층 사이에서 데이터 전달을 중계합니다.

주요 프로토콜:

  • TCP (Transmission Control Protocol)
    • 연결지향적이며 신뢰성 있는 데이터 전송
    • 데이터를 세그먼트 단위로 전송하며, 가상회선을 통해 순서를 보장합니다.

TCP 연결 설정: 3 Way Handshake 🔄

  1. 클라이언트 → 서버: SYN

    • SYN 패킷에는 클라이언트가 보낼 첫 데이터의 초기 시퀀스 번호(ISN)가 포함됩니다.
    • 이 번호는 이후 데이터 전송 시, 데이터의 순서를 추적하는 기준이 됩니다.
  2. 서버 → 클라이언트: SYN-ACK

    • 서버는 클라이언트의 SYN을 받고, 자신의 초기 시퀀스 번호(ISN)를 포함한 SYN-ACK 패킷을 보냅니다.
    • 또한, ACK 번호로는 클라이언트가 보낸 시퀀스 번호에 1을 더한 값을 전달합니다.
    • ACK 번호의 의미: 클라이언트가 지금까지 받은(또는 기대하는 다음) 바이트 번호를 의미하며, 연결의 신뢰성을 보장합니다.
  3. 클라이언트 → 서버: ACK

    • 클라이언트는 서버가 보낸 SYN-ACK를 받고, ACK 패킷을 전송합니다.
    • 이때, ACK 패킷의 번호는 서버의 시퀀스 번호에 1을 더한 값을 포함하여, 서버가 보낸 데이터(또는 SYN)에 대해 확인 응답을 합니다.

→ 이 과정을 통해 양측은 연결이 성립되며, 이후 데이터를 신뢰성 있게 전송할 수 있습니다.

  • UDP (User Datagram Protocol)
    • 비연결형이며, 신뢰성 보장이 없는 데이터 전송을 제공합니다.
    • 데이터그램 단위로 전송되며, 각 패킷은 독립적으로 처리되어 순서가 보장되지 않습니다.

가상회선 vs. 데이터그램

  • 가상회선(Virtual Circuit):
    특정 회선을 따라 패킷들이 순서대로 전달되어 데이터의 순서와 신뢰성이 보장됩니다. (TCP에 적용)
  • 데이터그램(Datagram):
    각 패킷이 독립적으로 전송되어 도착 순서가 섞일 수 있습니다. (UDP에 적용)

TCP 연결 해제: 4 Way Handshake ✂️

  1. 클라이언트 → 서버: FIN
    • 클라이언트가 연결 종료 요청을 보내면 FIN_WAIT1 상태가 됩니다.
  2. 서버 → 클라이언트: ACK
    • 서버는 FIN을 확인하고 ACK를 보냅니다.
    • 클라이언트는 FIN_WAIT2 상태로 전환하며, 서버는 CLOSE_WAIT 상태가 됩니다.
    • 부가 설명:
      • FIN_WAIT1: 클라이언트가 FIN을 보낸 후 서버의 ACK를 기다리는 상태입니다.
      • FIN_WAIT2: 클라이언트가 ACK를 받은 후 서버의 FIN을 기다리는 상태입니다.
  3. 서버 → 클라이언트: FIN
    • 서버가 연결 종료를 요청하면 클라이언트는 TIME_WAIT 상태가 됩니다.
  4. 클라이언트 → 서버: ACK
    • 클라이언트가 서버의 FIN에 대한 ACK를 보내면 서버는 CLOSED 상태가 되고, 일정 시간 후 클라이언트도 CLOSED 상태로 전환됩니다.
    • TIME_WAIT 상태는 지연된 패킷을 처리하거나 네트워크상의 패킷 중복을 방지하기 위해 존재합니다.

인터넷 계층 🌍

인터넷 계층은 장치로부터 받은 네트워크 패킷을 IP 주소의 목적지로 전달합니다.
이 계층은 데이터 전송의 신뢰성을 보장하지 않는 비연결형 특성을 가집니다.

주요 프로토콜:

  • IP: 패킷 전달을 위한 주소 지정 및 라우팅
  • ARP (Address Resolution Protocol):
    • 부가 설명: ARP는 논리 주소(IP 주소)를 물리 주소(MAC 주소)로 변환하는 역할을 수행합니다.
  • ICMP: 네트워크 상태 및 오류 메시지 전달

링크 계층 🔗

링크 계층은 물리 계층데이터 링크 계층을 포함하며, 실제 데이터를 전달하는 규칙과 신호 제어를 담당합니다.
이 계층은 Network Access 계층이라고도 불립니다.

  • 물리 계층: 0과 1로 이루어진 데이터를 실제로 전송하는 계층
  • 데이터 링크 계층: 이더넷 프레임(Ethernet Frame)을 통해 에러 검출, 흐름 제어, 접근 제어 등을 담당합니다.

프로토콜: IEEE802.3
전이중화(Full Duplex):

  • 동시에 서로 송수신이 가능한 방식으로, 송신과 수신 통로가 분리되어 있습니다. 🔄

반이중화(Half Duplex):

  • 한 경로를 통해 송수신하며, 한 번에 한 방향으로만 통신합니다.
  • 대표적으로 CSMA/CD (유선 LAN: 충돌 발생 시 재전송)와 CSMA/CA (무선 LAN: 충돌 사전 회피) 방식이 있습니다.

유선 및 무선 LAN 📶

유선 LAN 케이블

  • 트위스트 페어 케이블: 구리선 8개로 구성되며, 일반적으로 LAN 케이블로 사용됩니다.
  • 광섬유(Fiber Optic Cable):
    • 부가 설명: 광섬유는 유리나 플라스틱 섬유를 통해 빛의 신호로 데이터를 전송합니다.
    • 레이저나 LED를 사용하며, 장거리 및 고속 통신에 적합합니다.

무선 LAN

  • 와이파이(Wi-Fi): 무선 접속 장치(공유기)를 통해 연결됩니다.
  • BSS (Basic Service Set):
    • 부가 설명: BSS는 하나의 무선 액세스 포인트(AP)와 그에 연결된 클라이언트들의 집합입니다.
  • ESS (Extended Service Set):
    • 부가 설명: 여러 개의 BSS가 연속적으로 연결되어 넓은 영역의 무선 네트워크를 구성합니다.

계층간 데이터 송수신 과정 🔄

네트워크 계층 구조에서 데이터는 한 계층에서 다른 계층으로 전달될 때 각 계층의 PDU (Protocol Data Unit)를 사용합니다.

  1. 애플리케이션 계층:
    • 데이터는 메시지(Message) 형태로 준비됩니다.
  2. 전송 계층:
    • 메시지를 세그먼트(Segment) (TCP) 또는 데이터그램(Datagram) (UDP)으로 캡슐화합니다.
  3. 인터넷 계층:
    • 세그먼트 또는 데이터그램을 패킷(Packet) 형태로 캡슐화하여 IP 주소 기반 라우팅을 진행합니다.
  4. 링크 계층:
    • 패킷을 프레임(Frame)으로 변환하여 물리 계층으로 전송하고, 실제 비트로 전송합니다.

각 계층은 자신의 헤더(header)를 추가하며, 수신 측에서는 이 헤더들을 차례로 제거해 원본 데이터를 복원합니다.


PDU (Protocol Data Unit) 📦

PDU는 각 계층에서 데이터를 전달할 때 사용되는 단위입니다.
구성은 헤더(header)페이로드(payload) (실제 데이터)로 이루어집니다.

계층별 PDU:

  • 애플리케이션 계층: 메시지(Message)
  • 전송 계층: 세그먼트(Segment) 또는 데이터그램(Datagram)
  • 인터넷 계층: 패킷(Packet)
  • 링크 계층: 프레임(Frame) (물리 계층에서는 비트(Bit))

profile
멋있는 사람 - 일단 하자

0개의 댓글