[TCP/UDP 프로토콜 강의 메모]
IP 프로토콜의 한계
-> 아래의 TCP가 필요한 이유와 연결지어서 생각!!!
TCP의 역할(IP 프로토콜의 한계를 극복해준다,대부분의 애플리케이션에서 TCP 사용)
1. IP(목적지 컴퓨터) 주소의 컴퓨터가 네트워크 통신을 할 준비가 돼 있는 지 [연결성 보장(연결 지향적)]
-> 3way handshake
-> 가상 연결 : 물리적 연결이 아닌 개념적 연결
클라이언트와 서버 사이에는 수 많은 노드들(라우터들)이 있다. 이 라우터들은 클라이언트와 서버 사이의
데이터 전송로를 만들어 놓지 않기 때문에 물리적으로 연결돼 있다고 말할 수 없다.
(옛날에는 전화 교환원이 전화선 PORT를 직접 꽂음으로서 물리적인 연결로 통신을 했다)
2. 전송 [패킷의 순서를 보장]
-> 일반적으로 전송 데이터가 1500byte가 넘으면 패킷을 분할해서 보낸다.
-> 서버에서 패킷 순서가 이상하면 클라이언트에게 비정상적인 패킷부터 시작하는 마지막 패킷까지
전부 다시 보내달라고 재요청 메시지를 보낸다. (TCP 패킷 정보에 [전송 순서 정보]가 들어감)
3. 도중에 패킷 소실되는 문제를 방지
-> [데이터 전달 보장] : 클라이언트에서 데이터를 보내면 서버에서 데이터를 받았다고 확인 메시지를
보내준다. 만약 확인 메세지에 이상이 있다면 서버가 클라이언트에게 다시 데이터를 보내달라고 요청
(TCP 패킷 정보에 [검증 정보]가 들어 있음)
4. 서버에 애플리케이션이 2개 이상 있을 때 Port 정보를 통해서 알맞은 애플리케이션에 데이터 전송을
가능하게 한다.
-> Port에 대한 정보(출발지PORT/목적지PORT)는 IP 프로토콜이 아닌 TCP/UDP에서 추가된다.
(참고 : UDP는 PORT와 체크섬 정보 정도만 추가된다,
TCP 기반으로 이미 많은 곳에서 애플리케이션을 운영하고 있다. 고로 개발자가 TCP를 어떻게
최적화할 수가 없다. 만약 본인이 기존의 TCP보다 더 좋은 프로토콜을 만들고 싶다면 UDP를 애플리케이션
레벨에서 최적화하는 수밖에 없다. )
* 내가 네트워크를 배울 때만 하더라도 영상 같은 데이터는 UDP를 사용하라고 배웠다.
그러나 현재는 TCP의 속도가 많이 최적화되어 영상 데이터조차 TCP를 대부분 사용하고 있다.
그러나 HTTP_3 스펙이 생겼는데, 이 스펙은 TCP의 핸드-쉐이킹으로 인한 시간 비용 등조차도
최적화해보자라는 의미에서 UDP를 기반으로한 커스텀된 프로토콜(Quick 프로토콜)을 사용하고 있다.
-> 이런 면에서 최근에는 UDP 프로토콜이 많은 각광을 받고 있다.
HTTP/3와 UDP
QUIC 프로토콜:
HTTP/3는 **QUIC(Quick UDP Internet Connections)**라는 전송 계층 프로토콜 위에서 실행됩니다. QUIC는 UDP 위에 구현되어, 기존 TCP 기반의 HTTP/2에서 발생했던 일부 문제(예: 연결 지연, 헤드 오브 라인 블로킹 등)를 해결합니다.
UDP의 장점 활용:
UDP는 연결 설정 과정이 없고, 패킷 단위로 데이터를 전송하기 때문에 TCP에 비해 가볍습니다.
QUIC는 이를 기반으로 TLS 암호화와 다중 스트림 전송을 지원하여 보안과 성능을 강화합니다.
QUIC의 주요 기능:
연결 설정 속도 개선: TLS 핸드셰이크와 연결 설정이 단일 라운드 트립으로 이루어짐.
헤드 오브 라인 블로킹 해결: 개별 스트림이 독립적으로 동작하므로, 하나의 스트림에서 문제가 생겨도 다른 스트림에 영향을 주지 않음.
내장 암호화: QUIC는 처음부터 TLS를 통합하여 보안을 기본 제공.
'CS 과목(CS科目) > 네트워크(ネットワーク)' 카테고리의 다른 글
비연결성,Connectionless(모든 개발자를 위한 HTTP) (0) | 2024.12.26 |
---|---|
HTTP(모든 개발자를 위한 HTTP 웹 기본 지식) (0) | 2024.12.26 |
SSL Protocol의 구체적 동작 방식 (0) | 2023.06.30 |
SSL Protocol의 요약본 (0) | 2023.06.30 |
SSL 인증서의 서비스 보증 방법 (0) | 2023.06.30 |