CS
-
TCP 3-Way HandshakeCS/네트워크 2026. 7. 24. 20:27
브라우저가 DNS 조회를 마치면 서버의 IP 주소를 알게 됩니다. 하지만 TCP를 사용하는 HTTP/1.1이나 HTTP/2 통신이라면 바로 HTTP 요청부터 보내지 않습니다. 먼저 클라이언트와 서버 사이에 TCP 연결을 만듭니다.회선 교환, 가상 회선, TCP 연결은 어떻게 다를까?회선 교환(Circuit Switching)은 통신 전에 종단 간 경로의 대역폭이나 시간 슬롯 같은 실제 네트워크 자원을 예약합니다. 과거 전화망이 대표적입니다. 반드시 한 가닥 선을 혼자 쓴다는 뜻은 아니지만, 통신 중 사용할 자원을 회선처럼 확보합니다. 가상 회선(Virtual Circuit)은 데이터를 패킷으로 보내면서도 먼저 논리적 경로를 설정합니다. 중간 스위치나 라우터는 회선 식별자와 다음 홉 같은 상태를 유지하고,..
-
주소창에 도메인을 입력하면, IP는 어디서 올까? DNS 조회의 전체 흐름CS/네트워크 2026. 7. 23. 00:49
브라우저 주소창에 www.example.com을 입력하면 곧바로 웹 서버에 연결되는 것처럼 보입니다.하지만 네트워크는 도메인 이름만으로 목적지를 찾을 수 없습니다. 실제 통신을 시작하려면 먼저 IPv4 또는 IPv6 주소가 필요합니다.그렇다면 브라우저는 누구에게 IP 주소를 물어보고, DNS 서버들은 어떻게 최종 답을 찾아낼까요? 이 글에서는 브라우저 캐시부터 재귀 DNS 리졸버, Root DNS, TLD DNS, Authoritative DNS까지 이어지는 전체 조회 흐름을 따라갑니다. 마지막에는 TTL이 서버 이전에 미치는 영향과 DNS가 UDP뿐 아니라 TCP도 사용하는 이유까지 정리합니다.1. 브라우저는 도메인 이름만으로 접속할 수 없다DNS는 사람이 읽기 쉬운 도메인 이름을 네트워크가 사용할 I..
-
HTTP Stateless와 Keep-Alive, 세션과 JWTCS/네트워크 2026. 7. 13. 21:33
HTTP의 Stateless는 요청 사이의 애플리케이션 문맥을 자동으로 기억하지 않는다는 뜻입니다. Keep-Alive는 여러 요청에서 TCP 연결을 재사용합니다. 둘은 서로 다른 계층의 개념입니다. TCP가 기억하는 정보와 백엔드 애플리케이션이 기억할 정보는 다릅니다. TCP는 양 끝의 IP와 포트, Sequence·ACK 번호, 송수신 버퍼와 윈도 등 바이트 전달에 필요한 연결 상태를 관리합니다. 반면 HTTP 요청을 보낸 사용자가 누구인지, 장바구니에 무엇을 담았는지, 이전 요청에서 어떤 비즈니스 로직을 실행했는지는 알지 못합니다.Keep-Alive로 같은 TCP 연결을 재사용해도 로그인 상태가 저절로 이어지지는 않습니다. 서버가 사용자를 식별하려면 세션 ID나 JWT 같은 인증 정보를 각 HTTP..
-
HTTP HOL Blocking에서 QUIC Stream까지CS/네트워크 2026. 6. 29. 21:07
HTTP/2는 하나의 TCP 연결에 여러 HTTP Stream을 Multiplexing해 HTTP 계층의 순차 대기를 줄였고, HTTP/3는 독립된 QUIC Stream을 사용해 한 Stream의 패킷 유실이 다른 Stream의 전달까지 막는 TCP 계층 HOL Blocking을 줄였다.Stream은 하나의 연결 안에 만드는 논리적인 바이트 통로다. HTTP/2는 여러 통로처럼 보이지만 밑에서는 하나의 TCP 통로를 함께 사용한다. 그래서 TCP 데이터가 유실되면 모든 Stream이 기다릴 수 있다. HTTP/3는 QUIC이 Stream별 통로를 직접 관리하기 때문에 한 Stream의 유실이 다른 Stream의 순서까지 막지 않는다. TCP는 연결 방향마다 하나의 바이트 순서 공간을 사용한다. 중간 바이..