[네트워크] 1. 인터넷 네트워크 - IP (인터넷 프로토콜) / TCP / UDP

2025. 4. 7. 18:25·BE/HTTP 웹 기본 지식
728x90

IP 프로토콜의 한계

 

  • 비연결성
    • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
  • 비신뢰성
    • 중간에 패킷이 사라졌을 경우 / 패킷이 순서대로 오지 않을 경우
  • 프로그램 구분
    • 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상일 경우

 

  1. 클라이언트 측에서는 대상 서버가 패킷을 받을 수 있는 상태인지/아닌지 모른다.
    -> 모르는 상태에서 패킷을 아무리 전송을 해도, 대상이 서비스 불능인 상태라면 서버측에서 받을 수 없다.
  2. 패킷이 소실되어도 모른다.

 

 

또한, 클라이언트에서 보낸 데이터는 여러 데이터로 쪼개져서 노드를 타게 되는데 이 때 서버에 도착하는 데이터가 요청 데이터와 순서가 완전 일치하다고 보장 할 수는 없다. (중간에 다른 노드를 타게 될 수 있기 때문)

 

이를 해결하는 것이 TCP프로토콜

 

인터넷 프로토콜 스택의 4계층

 

  1. 애플리케이션 계층 - HTTP, FTP
  2. 전송 계층 - TCP, UDP
  3. 인터넷 계층 - IP
  4. 네트워크 인터페이스 계층

 

 

TCP 특징 - 전송 제어 프로토콜(Transmission Control Protocol)

 

  • 연결지향 - TCP 3 way handshake(가상연결)
  • 데이터 전달 보증
  • 순서 보장
  • 신뢰할 수 있는 프로토콜
  • 현재는 대부분 TCP 사용

 

TCP 3 way handshake

 

  1. 클라이언트 -----  (SYN: 접속 요청) ------> 서버
  2. 서버 ----------- (SYN + ACK) ---------> 클라이언트
  3. 클라이언트 ----- (ACK: 요청 수락) ------> 서버  
    * ACK와 함께 데이터 전송도 가능하다.
  4. 데이터 전송 

연결이 된 다음 데이터를 전송하기 때문에 연결이 되어있지 않을 땐 데이터를 보내지 않는다.

이러한 방식으로 서버에 이상이나 종료된 상태면 요청에 대한 수락이 오지않아 서비스 불능일 때 대비 가능

* 여기서의 연결은 진짜 연결이 된 것이 아니다! 논리적으로 연결이 되었다고 이해하면 됨

 

TCP 세그먼트 내에는 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보 등이 추가되어있기 때문에 데이터 전달 보증 및 순서 보장이 가능하다!

 

 

UDP 특징 - 사용자 데이터그램 프로토콜(User Datagram Protocol)

 

  • 하얀 도화지에 비유(기능이 거의 없음)
  • 연결지향 - TCP 3 way handshake X
  • 데이터 전달 보증 X
  • 순서 보장 X
  • 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
  • IP와 거의 같다. +PORT, +체크섬 정도만 추가
  • 애플리케이션에서 추가 작업 필요

그럼 TCP대신 UDP는 왜 쓰는걸까?

  • UDP는 데이터 전달 및 순서가 보장되진 않지만 빠르다.
    (TCP 3 way handshake의 경우 SYN, SYN+ACK, ACK을 거쳐야 데이터를 전달할 수 있다)
  • UDP는 TCP와 다르게 UDP는 확장성에 대해 열려있어 수정이 가능하다.
 HTTP3가 UDP 프로토콜을 사용하면서 각광받게 되었다.

 

 

728x90

'BE > HTTP 웹 기본 지식' 카테고리의 다른 글

[네트워크] 4. HTTP 메서드  (2) 2025.04.15
[네트워크] 3. HTTP기본 - 비연결성 / HTTP 메시지  (0) 2025.04.15
[네트워크] 3. HTTP 기본 - HTTP / Stateful / Stateless  (1) 2025.04.08
[네트워크] 2. URI와 웹 브라우저 요청 흐름  (1) 2025.04.07
[네트워크] 1. 인터넷 네트워크 - PORT / DNS  (0) 2025.04.07
'BE/HTTP 웹 기본 지식' 카테고리의 다른 글
  • [네트워크] 3. HTTP기본 - 비연결성 / HTTP 메시지
  • [네트워크] 3. HTTP 기본 - HTTP / Stateful / Stateless
  • [네트워크] 2. URI와 웹 브라우저 요청 흐름
  • [네트워크] 1. 인터넷 네트워크 - PORT / DNS
DROPDEW
DROPDEW
💻 Developer | 기록하지 않으면 존재하지 않는다
  • DROPDEW
    제 2장 1막
    DROPDEW
  • 전체
    오늘
    어제
    • categories (408) N
      • App/Android (1)
      • BE (41) N
        • HTTP 웹 기본 지식 (8)
        • 스프링 입문 - 코드로 배우는 스프링 부트, 웹 .. (12)
        • 스프링부트와 JPA 활용 (8) N
        • 스프링부트 시큐리티 & JWT (0)
        • PHP (6)
      • FE·Client (23)
        • HTML (1)
        • React (19)
        • Unity (1)
      • Data (12)
        • AI (4)
        • Bigdata (6)
        • Database (1)
        • 빅데이터분석기사 (0)
      • Infra (0)
      • CS (7)
        • CS 면접 준비 (3)
      • 취준 (13)
        • 자격증·인턴·교육 (4)
        • 인적성·NCS (6)
        • 코테·필기·면접 후기 (3)
      • 코테 (270) N
        • Algorithm (222) N
        • SQL (35)
        • 정리 (13)
      • 인사이트 (27)
        • 금융경제뉴스 (7)
        • 금융용어·지식 (2)
        • 북마크 (7)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    티스토리챌린지
    그래프탐색
    시뮬레이션
    이분탐색
    그래프이론
    수학
    너비우선탐색
    구현
    그리디알고리즘
    문자열
    매개변수탐색
    누적합
    정렬
    투포인터
    다이나믹프로그래밍
    브루트포스 알고리즘
    최단경로
    오블완
    자료구조
    백준
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
DROPDEW
[네트워크] 1. 인터넷 네트워크 - IP (인터넷 프로토콜) / TCP / UDP
상단으로

티스토리툴바