인프런 강의 학습/HTTP 기본 지식

HTTP 웹 기본 지식 2일차

현호s 2020. 12. 24. 20:25
반응형

# 모든 개발자를 위한 HTTP 웹 기본 지식 학습

# TCP, UDP

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

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

## 프로토콜 계층

  • 외국에 있는 친구와 채팅을 한다고 가정할 때..
  • 메시지를 생성하여 SOCKET 라이브러리를 통해 전달
  • TCP 정보를 생성(메시지 데이터 포함)
  • IP 패킷 생성(TCP 데이터 포함)
  • 네트워크 인터페이스의 LAN 카드를 통해 이더넷 프레임을 포함하여 보내진다.

## IP 패킷 정보

  • 출발지 IP, 목적지 IP, 전송 데이터를 포함

## TCP/IP 패킷 정보

  • IP패킷에 TCP 관련 정보 포함
  • TCP 관련 정보 : 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보 등 
  • TCP 관련 정보가 포함되어 IP 만으로 해결하지 못했던 순서 제어 문제 등을 해결할 수 있게 된다.

## TCP의 특징 

  • TCP (Transmission Control Protocol : 전송 제어 프로토콜)
1. 연결지향 - TCP 3 way handshake(가상 연결)

2. 데이터 전달 보증

3. 순서 보장
  • 신뢰할 수 있는 프로토콜
  • 현재는 대부분 TCP 사용

### TCP의 특징 - 1. 연결지향 TCP 3 way handshake

SYN : 접속 요청
ACK : 요청 수락
  • 연결 과정(connect)을 살펴 보면..
  • 클라이언트에서 서버로 SYN 메시지 전송
  • 서버에서는 SYN + ACK 메시지를 클라이언트에게 전송
  • 그러면 클라이언트는 서버로 ACK 전송 (요즘엔 최적화가 되서 이때 데이터 전송하기도 함)
  • TCP 3 way handshake(3번 주고받아)로 연결이 되고 나면 최종적으로 데이터 전송
  • 하지만, TCP 3 way handshake는 논리적으로 연결 된 것일 뿐.

### TCP의 특징 - 2. 데이터 전달 보증

  • 클라이언트가 서버에 데이터 전송
  • 그러면 서버에서 클라이언트에게 데이터를 받았다는 응답을 전달
  • 만약, 응답이 없을 경우엔 문제가 있다는걸 인지 가능

### TCP의 특징 - 3. 순서 보장

  • 클라이언트가 패킷1, 2, 3 순서로 서버에 전송
  • 서버에 패킷이 보낸 순서대로 전송된 것이 아닌 패킷 1, 3, 2 같은 순서로 도착했다면(문제발생)
  • 패킷 2부터 다시 보내도록 서버에서 클라이언트에 요청하여 순서가 보장된다.

## UDP 특징

  • UDP (User Datagram Protocol : 사용자 데이터그램 프로토콜)
  • 하얀 도화지에 비유(기능이 거의 없음)
  • 연결지향, 데이터 전달 보증, 순서 보장하지 않음
  • IP와 거의 비슷하지만 + PORT + 체크섬(검증) 정도만 추가
  • 애플리케이션에서 추가 작업이 필요하다.
  • 단순하고 빠르다.

 

출처 : 인프런 모든 개발자를 위한 HTTP 웹 기본 지식

반응형