[Network] HTTP Video Streaming, DASH
CSE/네트워크 (network)2025. 4. 22. 19:16[Network] HTTP Video Streaming, DASH

📡 인터넷 비디오개요인터넷 비디오 트래픽은 요즘 인터넷 대역폭의 주요 소비자로 자리잡고 있다. 2020년 기준으로 넷플릭스, 유튜브, 아마존 프라임과 같은 서비스들이 주거용 ISP 트래픽의 약 80%를 차지한다. 이런 상황에서 몇십억 명에 달하는 사용자들에게 어떻게 서비스를 제공할지는 정말 중요한 도전 과제다. 하나의 메가 비디오 서버로는 이런 규모의 서비스를 제공할 수 없고, 사용자들의 다양한 기종도 도전 요소이다. 이러한 문제를 해결하기 위해 분산된 인프라 구축이 필요하다. 비디오 매체의 특성비디오는 여러 장의 이미지(프레임)를 초당 수십 장씩 보여줘야 한다(ex: 24fps, 30fps). 각 이미지(프레임)는 픽셀들의 배열이고, 수 많은 데이터들로 구성되어 있다. 데이터를 줄이기 위해 인코딩이..

[Network] HTTP/1.0, HTTP/1.1, HTTP/2.0, HTTP/3.0
CSE/네트워크 (network)2025. 4. 22. 18:04[Network] HTTP/1.0, HTTP/1.1, HTTP/2.0, HTTP/3.0

웹은 정적 문서 몇 장을 보여주던 시대를 지나, 실시간 영상 스트리밍부터 멀티플레이 게임까지 소화하는 거대한 플랫폼이 되었다. 하지만 이 모든 것의 기반이 되는 HTTP는 아주 단순한 프로토콜에서 출발했다. HTTP는 웹의 진화와 함께 끊임없이 변화해왔고, 각 버전은 이전 버전의 문제를 해결하려는 시도에서 태어났다. 이 글을 통해 HTTP/1.0부터 HTTP/3.0까지 각 버전이 어떻게 등장했고, 어떤 문제를 해결했으며, 그 과정에서 또 어떤 새로운 고민을 남겼는지 살펴보자. 📡 HTTP/1.0문서 요청 및 응답HTTP/1.0 이전에는 사실 웹이라는 게 그렇게 널리 퍼져 있지도 않았고, 웹페이지를 본다는 것도 정말 단순한 일이었다. 텍스트 파일 하나 다운로드하듯이 HTML 문서 하나 가져오면 끝이었다...

[Network] Go-Back-N, Selective Repeat
CSE/네트워크 (network)2025. 4. 20. 15:22[Network] Go-Back-N, Selective Repeat

📡 Go-Back-N (GBN)데이터를 전송하다가 중간에 하나가 사라졌다면, 어떻게 하면 좋을까?무슨 일이 생기든 신경 안 쓰고 계속 보낸다 → 신뢰성과 멀어보임잃어버린 것만 다시 보낸다 → 좋은 생각이지만, 아직은 아님그 이후에 보낸 것도 다 다시 보낸다 → 이 방법이 Go-Back-N이다!Go-Back-N(GBN)은 네트워크에서 자주 쓰이는 신뢰성 있는 데이터 전송 방식 중 하나다. 간단하게 말해서, 한 가지 문제만 생겨도 다시 몽땅 보내는 스타일이다. GBN은 한 번에 하나씩만 보내는 게 아니라, 여러 개의 패킷을 동시에 전송할 수 있다. 단, 조건이 있다. 아직 도착 확인(ACK)을 받지 못 한 패킷이 N개 이하여야 한다. 택배로 예를 들면,base 아직 도착 확인 안 된 맨 앞 택배nexts..

[Network] reliable data transfer
CSE/네트워크 (network)2025. 4. 20. 14:07[Network] reliable data transfer

신뢰성 있는 데이터 전송 문제는 네트워킹에서 중요한 주제이다. 이 문제가 전송 계층 뿐만 아니라 링크 계층, 애플리케이션 계층에서도 발생할 수 있는 문제이기 때문이다. 네트워킹에서 가장 중요한 문제들 중 Top 10을 만든다면, 이 문제가 최상위에 위치할 후보일 것이다. 이후 TCP를 살펴볼 때, TCP가 이 섹션에서 설명하는 원칙들을 어떻게 활용하는지 확인할 수 있을 것이다. TCP를 위한 빌드업이라고 보면 될 것 같다. 애플리케이션과 같은 상위 계층이 원하는 것은 간단하다. "내 데이터를 정확하게, 손실 없이, 순서대로 상대방에게 전달해 달라"는 것이다. 이것이 바로 '신뢰성 있는 채널'이 제공하는 서비스다. 하지만 실제 네트워크 환경은 완벽하지 않다. 데이터 전송 중에 비트가 손상되거나, 패킷이 ..

[Network] UDP
CSE/네트워크 (network)2025. 4. 20. 13:25[Network] UDP

인터넷에서 데이터를 주고받는 방식에는 여러 가지가 있다. 그 중에서도 UDP$_{User \space Datagram \space Protocol}$는 ‘빠르고 단순한’ 전송 방식으로 자주 사용된다. 여기서 데이터그램이란 각 패킷이 서로 독립적으로 전송되는 방식을 의미한다. UDP는 Connnectionless(비연결형) 프로토콜이다. TCP처럼 사전에 handshaking 과정이 없기 때문에, 각 패킷은 서로 논리적인 연결 없이 독자적으로 전송된다. UDP로 보낸 메시지는 잃어버릴 수도 있고 (손실 가능) 순서가 뒤바뀔 수도 있으며, 중복될 수도 있다. 각 패킷이 ‘자기 갈 길을 가는’ 방식, 그것이 바로 UDP다. 📡 UDP를 쓰는 이유TCP처럼 신뢰성을 보장해주는 프로토콜이 있는데, 굳이 UDP..

[Network] multiplexing, demultiplexing
CSE/네트워크 (network)2025. 4. 20. 11:24[Network] multiplexing, demultiplexing

네트워크를 공부하다 보면 ’멀티플렉싱(multiplexing)’과 ’디멀티플렉싱(demultiplexing)’이라는 단어가 자주 등장한다. 생소하지만 일상 생활 속 택배 시스템과 비슷하다. 📡 multiplexing컴퓨터에서는 수많은 애플리케이션(예: 웹 브라우저, 게임, 채팅 프로그램 등)이 동시에 네트워크를 사용한다. 이 프로그램들은 각각 독립적으로 데이터를 주고받고 싶어 한다. 하지만 우리가 사용할 수 있는 네트워크 연결은 제한적이다. 그래서 여러 프로그램의 데이터를 하나의 연결로 묶어서 보내야 할 필요가 있다. 이걸 바로 Multiplexing(멀티플렉싱)이라고 한다. 전송 계층(TCP 또는 UDP)은 각 애플리케이션(정확히는 소켓)으로부터 데이터를 받아 그 위에 헤더(header)라는 라벨을..

[Network] Fairness
CSE/네트워크 (network)2025. 4. 20. 10:43[Network] Fairness

📡 Fairness왜 Fairness가 필요한가?지금까지 TCP Congestion control는 한 연결이 자신의 속도를 네트워크 상황에 따라 조절하는 방식에 집중했다. 하지만 현실에서는 수많은 TCP 연결이 동시에 같은 네트워크 자원을 사용한다. 이때 누군가 혼자만 속도를 올리고, 다른 연결이 손해를 본다면? 바로 여기서 Fairness(공정성) 개념이 필요하다. Fairness는 여러 연결이 네트워크를 서로 배려하며 사용하도록 만드는 TCP 설계 철학이다. bottleneck link대부분의 네트워크 경로에는 bottleneck link(병목 링크)가 존재한다. 경로 중 가장 대역폭이 낮은 지점으로, congestion이 가장 자주 발생하는 곳이다. bottleneck link를 지나려는 여러 ..

728x90
image