현대 시스템에서는 여러 애플리케이션이 동시에 네트워크 자원을 사용하면서 서로 경쟁하게 됩니다. 특히 컨테이너 기반 환경에서는 네트워크 사용량이 증가함에 따라 자원 경쟁으로 인해 성능 저하나 지연(latency)이 발생할 수 있습니다. 이런 문제를 해결하기 위해 Linux 커널은 TC(Traffic Control)라는 네트워크 트래픽 제어 시스템을 제공합니다. TC의 역할TC는 네트워크 트래픽을 효과적으로 관리하고 최적화하여 처리량(Throughput)과 지연(Latency) 같은 네트워크 성능 지표를 개선하는 데 사용됩니다. tc를 사용하여 특정 유형의 트래픽에 우선순위를 부여하거나, 각 애플리케이션 및 컨테이너가 사용 가능한 대역폭을 제한할 수 있습니다. TC의 동작 과정네트워크 패킷이 장치를 통과..
사실 이글을 쓰기 위한 이전의 혼잡제어 정리글이 보고싶다면 아래에서~2024.10.27 - [CS/network] - 혼잡 제어 Congestion Control BBR은 Google이 개발한 혼잡 제어 알고리즘으로, 네트워크에서 병목 대역폭과 왕복 시간(RTT)을 추정하여 최적의 전송 속도를 유지하는 방식이다. 기존 TCP 혼잡 제어 방식과 달리, BBR은 패킷 손실이 아닌 대역폭과 지연 시간이라는 지표를 기반으로 속도를 조정하여 네트워크 자원을 더 효율적으로 활용한다. 기존 혼잡 제어 방식과의 차이기존의 TCP 혼잡 제어 방식(TCP CUBIC, TCP Reno 등)은 패킷 손실을 혼잡 신호로 인식한다. 전송 도중 패킷이 손실되면 네트워크가 혼잡하다고 판단하고 전송 속도를 줄이며, 손실이 없을 때는 ..
혼잡 제어는 네트워크에서 데이터가 너무 몰려 속도가 느려지거나 손실되는 것을 막기 위한 기술이다. 마치 고속도로에 차가 몰려 교통체증이 생기는 것처럼, 네트워크에서도 데이터가 한꺼번에 몰리면 문제가 발생할 수 있다. 이를 방지하기 위해 혼잡 제어는 데이터 전송 속도를 조절하여 네트워크가 원활하게 흐르도록 돕는 역할을 한다.1988년 연구에 따르면, 단순히 수신자가 송신 속도를 조절하는 방식은 오히려 문제를 더 키울 수 있다고 한다. 예를 들어, 라우터에서 데이터가 잠깐 지연될 경우, 송신자가 응답을 받지 못한 것으로 착각하고 동일한 데이터를 다시 보내면서 혼잡이 더 심해질 수 있다. 따라서 혼잡 제어에서는 송신자가 네트워크 상황을 파악하고 스스로 전송량을 조절해야 한다는 결론이 도출되었다. 혼잡윈도..
Proxy Protocol이란?Proxy Protocol은 로드 밸런서나 프록시 서버를 거쳐 백엔드 서버로 트래픽이 전달될 때, 클라이언트의 원래 IP 주소와 포트 정보를 보존하기 위해 사용되는 프로토콜이다. 일반적으로 로드 밸런서나 프록시 서버는 클라이언트의 원래 IP를 숨기고 자체 IP로 요청을 전달하기 때문에, 백엔드 서버는 클라이언트의 실제 IP 정보를 알 수 없게 된다. Proxy Protocol은 이러한 문제를 해결하기 위해 요청의 첫 부분에 클라이언트 IP 주소와 포트 정보를 포함시켜 전달한다. Proxy Protocol의 동작 방식Proxy Protocol은 v1과 v2 두 가지 버전이 있으며, 현재 두 버전 모두 사용되고 있다.v1: 텍스트 기반의 프로토콜로, 헤더 정보가 사람이 읽기 쉬..