HTTP - 기초 네트워크

Computer Science

HTTP를 시작하기 이전 기초적인 네트워크 프로토콜에 관련한 내용

 

IP(Internet Protocol)

인터넷이 통하는 네트워크에서 어떤 정보를 수신하고 송신하는 통신에 대한 규약

 

IP는 지정한 IP 주소에 패킷이라는 통신 단위로 데이터를 전달하며 IP 패킷은 다음과 같이 이루어져 있다

IP 패킷 정보

출발지(클라이언트)와 목적지(서버)를 구분할 수 있는 주소를 추가하여 우리가 전달하고자 하는 정보가 어디로 가야하는지 알려준다.

 

IP의 특징

1. 비연결성

 * 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송한다. 출발지는 목적지가 패킷을 받을 수 있는 상태인지 확인할 수 없다.

2. 비신뢰성

 * 패킷의 소실 혹은 순서를 보장하지 않는다.

3. 프로그램 구분 불가

 * 만약 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상일 경우 구분할 수 없다. (IP 주소만 가지고 있기 때문)

 

TCP(Transmission Control Protocol)

인터넷 프로토콜 스택은 위와 같이 4계층으로 이루어져 있다.

IP의 위에 TCP를 덮어서 출발지, 목적지에 대한 추가 정보를 쌓는다. 

TCP의 특징

1. 연결지향 - TCP 3 way handshake (가상연결)

* 패킷을 전송하기 전 SYN / SYN + ACK / ACK 의 3단계를 거쳐 서버가 현재 응답할 수 있는 상황인지 확인

2. 데이터 전달 보증

* 데이터가 소실되지 않고 받았는지 확인 가능

3. 순서 보장

* 올바른 순서로 도착하지 않은 경우 순서에 맞게 다시 요청

-> 신뢰할 수 있는 프로토콜

+ PORT 정보가 추가되어 같은 서버 내에서 애플리케이션을 구분할 수 있다.

(IP는 아파트, PORT는 동호수 같은 느낌. 아래에서 추가 설명)

 

UDP(User Datagram Protocol)

UDP의 특징

1. 하얀 도화지에 비유(기능이 거의 없음)

* 따라서 사용자가 커스터마이징 가능

2. 연결지향 X -> TCP 3 way handshake가 없음

3. 데이터 전달 보증 X

4. 순서 보장 X

5. 단순하고 빠름

-> IP와 거의 비슷함. PORT 정보와 체크섬 정도만 추가

 

PORT

한 번에 둘 이상 연결해야 하는 경우 애플리케이션을 구분할 수 없음

port의 필요성1

게임 패킷, 화상통화 패킷, 웹 브라우저 요청 패킷이 모두 섞여 엉뚱한 곳으로 갈 수 있음

-> 같은 IP 내에서 프로세스를 구분할 수 있는 수단이 필요

 

port의 필요성2

 

DNS(Domain Name Service)

IP는 기억하기 어렵고 변경될 수 있기 때문에 해당 문제를 해결하기 위해 DNS를 사용

DNS 사용 예시

DNS 서버가 도메인 명으로 들어온 요청을 IP 주소로 매핑

'Computer Science' 카테고리의 다른 글

HTTP - header1  (0) 2025.08.15
HTTP - 상태 코드  (0) 2025.08.15
HTTP - 메서드  (0) 2025.08.14
HTTP - 소개  (0) 2025.08.14
HTTP - URI와 웹 브라우저 요청 흐름  (0) 2025.08.14
'Computer Science' 카테고리의 다른 글
  • HTTP - 상태 코드
  • HTTP - 메서드
  • HTTP - 소개
  • HTTP - URI와 웹 브라우저 요청 흐름
hojoo
hojoo
그냥 개발이 즐거운 사람
  • hojoo
    dev_record
    hojoo
  • 전체
    오늘
    어제
    • 분류 전체보기 (82)
      • Study (0)
        • 모든 개발자를 위한 HTTP 웹 기본 지식 (0)
        • Real MySQL 8.0 (0)
        • 친절한 SQL 튜닝 (0)
        • 도메인 주도 개발 시작하기 (0)
        • 대규모 시스템 설계 기초 (0)
      • Computer Science (66)
        • Problem Solving (30)
        • Data Structure (4)
        • Spring Boot (13)
        • DB (1)
        • Java (4)
        • OS (3)
        • Server (2)
        • Tech (0)
      • Security (16)
        • Reversing (15)
        • Assembly (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    PE header
    dreamhack.io
    백준
    레나 튜토리얼
    13265
    9421
    x64dbg
    15973
    리버싱 핵심원리
    프로그래머스
    Spring boot
    servlet
    Reversing
    12033
    bean
    소수상근수
    리버싱
    Header
    HTTP
    19622
    2539
    n^2 배열 자르기
    DP
    DB
    서버 증설 횟수
    n+1
    16946
    Lena tutorial
    21278
    자료구조
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
hojoo
HTTP - 기초 네트워크
상단으로

티스토리툴바