태그: TCP
8편
-
TCP 동작 원리: 3-way handshake, 흐름·혼잡 제어(CUBIC·BBR)와 소켓 디버깅
TCP 3-way handshake와 연결 종료, rwnd·cwnd 기반 흐름·혼잡 제어, Reno·CUBIC·BBR 알고리즘 차이를 설명하고 C++·Python·Node.js 소켓 예제와 RST·느린 전송 문제를 분석하는 디버깅 방법을 다룹니다.
-
TCP 연결 상태 11가지: TIME_WAIT·CLOSE_WAIT가 쌓이는 이유와 netstat·ss 디버깅
TCP 11가지 연결 상태(LISTEN, SYN_SENT, ESTABLISHED, FIN_WAIT, TIME_WAIT 등)의 동작 원리와 상태 전이, netstat·ss로 상태를 확인하고 TIME_WAIT·CLOSE_WAIT 문제를 디버깅하는 방법을 정리합니다.
-
TCP vs UDP 전송 프로토콜 비교 | 신뢰성·지연·QUIC까지 선택 가이드
TCP와 UDP를 표로 외우는 대신 Wireshark 캡처에서 재전송·Dup ACK·손실이 어떻게 보이는지로 차이를 익히고, DNS·VoIP·게임·QUIC(HTTP/3)이 각각 어떤 이유로 전송 방식을 택했는지 실무 선택 기준으로 정리합니다.
-
C++ 네트워크 성능 최적화 | TCP 튜닝·제로카피·커널 바이패스 [#51-7]
C++ 서버의 네트워크 처리량과 지연을 개선하는 방법을 다룹니다. 소켓 버퍼와 자동 튜닝, Nagle과 TCP_NODELAY, Keep-Alive, sendfile·splice 제로카피, io_uring과 DPDK의 차이, 측정 방법과 흔한 오류를 예제로 설명합니다.
-
C++ HTTP 클라이언트 직접 만들기: TCP 소켓부터 Boost.Beast, 연결 풀, 타임아웃까지
C++로 HTTP 클라이언트를 구현하는 방법. HTTP 기초와 TCP 연결, Boost.Beast로 REST API 호출하기, 연결 풀과 Keep-Alive, 타임아웃 처리, 자주 나는 에러와 성능 벤치마크를 다룹니다.
-
C++로 HTTP 클라이언트·서버 구현하기: 파서, Beast, Keep-Alive, 청크 인코딩, 타임아웃
TCP로 받은 바이트가 요청 단위로 끊겨 오지 않는 문제에서 출발해 HTTP 파서를 직접 구현하고 Boost.Beast로 클라이언트와 비동기 서버를 만듭니다. Keep-Alive 연결 풀, 청크 인코딩, 타임아웃, body limit 초과와 CRLF 인젝션도 다룹니다.
-
TCP 위에 프로토콜 설계하기: 메시지 경계, 길이 프리픽스, 바이너리 직렬화, 엔디안과 버전 관리
C++ 네트워크 프로토콜 설계와 직렬화. TCP 메시지 경계 처리, 길이 프리픽스 프로토콜 구현, 바이너리 직렬화, JSON·Protobuf·MessagePack 비교, 엔디안 처리와 버전 호환성을 다룹니다.
-
C++ 소켓 프로그래밍: TCP/UDP 구현, SO_REUSEADDR 같은 소켓 옵션, select·poll·epoll 비교
TCP 서버와 클라이언트를 에러 처리와 EINTR 재시도까지 포함해 구현하고, SO_REUSEADDR·SO_KEEPALIVE·TCP_NODELAY를 언제 켜는지 설명합니다. 논블로킹 소켓과 select·poll 멀티플렉싱, EADDRINUSE·ECONNRESET·EPIPE 같은 에러 대처도 다룹니다.