본문 바로가기

카테고리 없음

📌 TIL 22: 인터넷 프로토콜(IP)과 데이터 전송 방식(TCP, UDP)

1️⃣ 인터넷 프로토콜(IP)란?

IP(Internet Protocol)은 네트워크에서 데이터를 송수신하는 규칙(프로토콜)입니다.

  • 네트워크에 연결된 모든 장치는 IP 주소를 가지고 있으며, 이를 통해 식별됩니다.
  • IP 주소는 전화번호와 같은 역할을 하며, 데이터를 어디로 보내야 하는지 결정하는 기준이 됩니다.
  • 데이터를 전송할 때는 패킷(Packet) 단위로 나누어 전송합니다.

🔹 패킷(Packet)이란?

패킷은 인터넷에서 데이터를 전송하는 기본 단위입니다.
각 패킷에는 다음과 같은 정보가 포함됩니다.

구성 요소설명
소스 IP 출발지(보내는 컴퓨터)의 IP 주소
대상 IP 도착지(받는 컴퓨터)의 IP 주소
헤더(Header) 패킷의 정보(출발지, 목적지, 데이터 크기 등)
페이로드(Payload) 실제 데이터 내용
트레일러(Trailer) 오류 검사 및 수신 여부 확인

IP를 사용하면 목적지까지 데이터를 전송할 수 있지만, 몇 가지 문제점이 존재합니다.

⚠️ IP 방식의 문제점

  1. 애플리케이션 구분이 어렵다
    • IP는 패킷을 특정 컴퓨터(대상 IP)로 보낼 수 있지만, 해당 컴퓨터의 어떤 프로그램(웹 브라우저, 게임, 이메일 등)이 사용할 데이터인지 구분할 수 없습니다.
  2. 비연결성(Connectionless)
    • 송신자는 수신자의 상태를 확인하지 않고 데이터를 전송합니다.
    • 예를 들어, 상대방 컴퓨터가 꺼져 있어도 패킷을 보내며, 도착 여부를 확인하지 않습니다.
  3. 비신뢰성(Unreliable)
    • 패킷이 손실되거나 순서가 뒤바뀌는 경우가 발생할 수 있습니다.
    • 데이터를 여러 개의 패킷으로 나누어 전송하는데, 중간에 일부 패킷이 유실될 경우 재전송이 이루어지지 않습니다.

💡 결론: IP만으로는 신뢰성 있는 데이터 전송을 보장할 수 없습니다.
이를 해결하기 위해 TCP(Transmission Control Protocol)가 사용됩니다.


2️⃣ TCP(Transmission Control Protocol)란?

TCP는 서버와 클라이언트 간 데이터를 신뢰성 있게 전달하기 위한 프로토콜입니다.

  • 데이터가 손실되거나 순서가 뒤섞이지 않도록 패킷의 전송 순서를 관리합니다.
  • 만약 데이터가 정상적으로 도착하지 않으면 재전송을 요청하여 신뢰성을 확보합니다.

🔹 3-Way Handshake (TCP 연결 과정)

TCP는 신뢰성을 보장하기 위해 연결을 설정하는 과정이 필요합니다.
이를 3-Way Handshake(3단계 핸드셰이크)라고 합니다.

  1. SYN (Synchronize, 연결 요청)
    • 클라이언트(Client)가 서버(Server)에게 연결 요청을 보냅니다.
    • "저와 연결을 시작해도 될까요?"
  2. SYN + ACK (요청 수락)
    • 서버가 클라이언트의 요청을 수락하며, 응답을 보냅니다.
    • "네, 연결할 준비가 되었습니다!"
  3. ACK (연결 확인 및 데이터 전송 시작)
    • 클라이언트가 최종 응답을 보내면서 연결이 확립됩니다.
    • 이후 데이터를 신뢰성 있게 주고받을 수 있습니다.

💡 TCP의 장점
✅ 데이터를 전송할 때마다 수신 여부를 확인하고 응답을 받습니다.
✅ 패킷이 도착한 순서를 확인하고, 순서가 맞지 않으면 재정렬합니다.
✅ 만약 패킷이 손실되면 자동으로 재전송합니다.

⚠️ 하지만 단점도 존재합니다.

  • 연결을 설정하는 과정이 필요하기 때문에 속도가 느릴 수 있습니다.
  • 패킷이 정상적으로 전송되었는지 지속적으로 확인해야 하므로 **오버헤드(추가적인 처리 비용)**가 발생합니다.

3️⃣ UDP(User Datagram Protocol)란?

UDP는 TCP와 달리 연결을 설정하지 않고 데이터를 전송하는 비연결형 프로토콜입니다.

  • TCP보다 빠르지만 신뢰성이 낮은 방식입니다.
  • 패킷이 손실되거나 순서가 바뀌어도 보장하지 않으며, 데이터가 정상적으로 도착했는지 확인하지 않습니다.

🔹 UDP의 특징

빠른 전송 속도 (3-Way Handshake 과정 없음)
추가적인 기능이 거의 없음 (오버헤드가 적음)
실시간 통신에 적합 (지연 시간이 적음)

⚠️ 하지만 신뢰성이 낮음

  • 데이터 손실 발생 가능
  • 패킷 순서 보장 없음

UDP는 신뢰성보다는 실시간성이 중요한 경우에 많이 사용됩니다.
예시:

  • 온라인 게임
  • 실시간 스트리밍 (YouTube, Netflix)
  • VoIP(인터넷 전화, Zoom, Skype)
  • HTTP/3 프로토콜 (UDP 기반)

4️⃣ PORT(포트)란?

IP 주소만으로는 같은 컴퓨터에서 실행 중인 여러 프로그램(애플리케이션)을 구분할 수 없습니다.
이 문제를 해결하기 위해 PORT(포트) 개념이 사용됩니다.

🔹 PORT의 역할

  • 같은 IP 주소를 사용하는 여러 프로그램이 각각 다른 포트 번호를 통해 데이터를 주고받습니다.
  • 예를 들어,
    • **웹 브라우저(HTTP, 80번 포트)와 이메일 클라이언트(SMTP, 25번 포트)**가 동시에 실행될 수 있습니다.

🔹 자주 사용되는 포트 번호

포트 번호프로토콜설명
20, 21 FTP 파일 전송
22 SSH 원격 접속
25 SMTP 이메일 송신
53 DNS 도메인 네임 서비스
80 HTTP 웹사이트 접속(일반)
443 HTTPS 웹사이트 접속(보안)
3389 RDP 원격 데스크톱

💡 개발 시에는 1024번 이상의 포트를 활용하는 것이 좋습니다!


요약

  • IP(인터넷 프로토콜)은 데이터를 목적지까지 전송하지만, 신뢰성을 보장하지 않습니다.
  • TCP(전송 제어 프로토콜)은 신뢰성을 보장하며 3-Way Handshake를 통해 안정적으로 데이터를 주고받습니다.
  • UDP(사용자 데이터그램 프로토콜)은 빠른 속도를 제공하지만 데이터 손실이 발생할 수 있습니다.
  • PORT(포트)는 같은 IP 내에서 여러 프로그램을 구분하는 역할을 합니다.

OSI 7계층과 TCP/IP 4계층

더보기

. OSI 7계층과 TCP/IP 4계층의 주요 차이점

구분OSI 7계층TCP/IP 4계층
계층 수 7계층 4계층
개발 배경 ISO(국제표준화기구)에서 개발 미국 국방부에서 개발
사용 목적 네트워크 표준 모델 인터넷 통신을 위한 실용적 모델
프로토콜 포함 여부 개념적 모델, 프로토콜 포함 X 실질적인 인터넷 프로토콜 사용
구조적 차이 세분화되어 있음 OSI의 일부 계층을 통합하여 단순화됨
주요 사용 분야 네트워크 교육 및 개념 이해 인터넷 및 실제 네트워크 환경

OSI 모델은 이론적인 개념을 정립하는 데 중점을 두었으며, TCP/IP 모델은 실질적으로 사용되는 네트워크 통신 모델입니다.


2. OSI 7계층과 TCP/IP 4계층 비교

① OSI 7계층 모델

OSI 모델은 데이터를 계층적으로 처리하며, 각 계층은 고유한 기능을 수행합니다.

계층이름역할 및 기능
7 응용 계층 (Application) 사용자와 네트워크 간의 인터페이스 (예: HTTP, FTP, SMTP)
6 표현 계층 (Presentation) 데이터 인코딩, 암호화, 압축 (예: JPEG, SSL/TLS)
5 세션 계층 (Session) 세션 설정, 유지 및 종료 (예: RPC, NetBIOS)
4 전송 계층 (Transport) 신뢰성 있는 데이터 전송, 흐름 제어 (예: TCP, UDP)
3 네트워크 계층 (Network) IP 주소 지정, 경로 설정 (예: IP, ICMP, ARP)
2 데이터 링크 계층 (Data Link) MAC 주소를 이용한 데이터 전송, 오류 감지 (예: 이더넷, 스위치, PPP)
1 물리 계층 (Physical) 실제 하드웨어 및 신호 전송 (예: 케이블, 라우터, 허브)

특징:

  • 데이터가 7개의 계층을 통해 단계적으로 변환됨
  • 각 계층은 독립적으로 동작하며, 변경이 용이함
  • 이론적으로 매우 세밀하게 정의되어 있음

② TCP/IP 4계층 모델

TCP/IP 모델은 인터넷에서 실제로 사용되며, OSI 7계층을 4개로 통합한 구조입니다.

계층이름OSI 모델 대응 계층역할 및 기능
4 응용 계층 (Application) OSI 7, 6, 5 계층 애플리케이션과 직접 상호 작용 (예: HTTP, FTP, SMTP)
3 전송 계층 (Transport) OSI 4 계층 프로세스 간 데이터 전송, 흐름 제어 (예: TCP, UDP)
2 인터넷 계층 (Internet) OSI 3 계층 패킷 전달 및 경로 지정 (예: IP, ICMP, ARP)
1 네트워크 접근 계층 (Network Access) OSI 2, 1 계층 물리적 데이터 전송 및 오류 감지 (예: 이더넷, Wi-Fi)

특징:

  • 실제 인터넷 통신에 최적화된 구조
  • OSI 모델보다 계층이 단순화되어 실용성이 높음
  • 데이터 링크와 물리 계층을 하나로 묶어 "네트워크 접근 계층"으로 통합
  • 세션 및 표현 계층이 따로 존재하지 않고 응용 계층에서 처리

3. OSI 7계층과 TCP/IP 4계층의 차이점 정리

비교 요소OSI 7계층TCP/IP 4계층
구성 계층 7계층 (더 세밀한 분류) 4계층 (더 단순화)
응용 계층 응용, 표현, 세션으로 세분화 하나의 응용 계층으로 통합
네트워크 계층 네트워크, 데이터 링크, 물리 계층 네트워크 접근 계층으로 통합
프로토콜 개념적 모델, 특정 프로토콜 없음 TCP, IP 등 실질적인 프로토콜 포함
사용 목적 네트워크 개념 이해 및 학습 인터넷 및 실무 네트워크 환경

4. 결론: 어떤 모델이 더 중요한가?

OSI 7계층은 네트워크를 학습하고 이해하는 데 유용하지만, 실제로는 TCP/IP 4계층이 인터넷에서 널리 사용됩니다.
✔ 네트워크 관리나 보안 분야에서 일한다면 TCP/IP 모델을 중심으로 학습하는 것이 실용적입니다.
✔ 그러나 네트워크 프로토콜의 깊은 이해를 원한다면 OSI 7계층의 개념을 익히는 것이 도움됩니다.