사이 좋게 네트워크를 나눠 쓰는 방법, TCP의 혼잡 제어

사이 좋게 네트워크를 나눠 쓰는 방법, TCP의 혼잡 제어

혼잡 제어란, 말 그대로 네트워크의 혼잡 상태를 파악하고 그 상태를 해결하기 위해 데이터 전송을 제어하는 것을 이야기한다.

네트워크는 워낙 광대한 블랙박스이기 때문에 정확히 어디서 어떤 이유로 전송이 느려지는지는 파악하기 힘들지만, 단순히 느려지고있다 정도는 각 종단에서도 충분히 파악할 수 있다. 그냥 데이터를 보냈는데 상대방으로부터 응답이 늦게 오거나 안오면 뭔가 문제가 있다는 것이니 말이다.

패킷의 흐름과 오류를 제어하는 TCP

패킷의 흐름과 오류를 제어하는 TCP

TCP(Transmission Control Protocol)은 원활한 통신을 위해 전송하는 데이터 흐름을 제어하고 네트워크의 혼잡 상태를 파악해서 대처하는 기능을 프로토콜 자체에 포함하고 있다.

TCP가 연결을 생성하고 종료하는 방법, 핸드쉐이크

TCP가 연결을 생성하고 종료하는 방법, 핸드쉐이크

저번에 작성했던 TCP의 헤더에는 어떤 정보들이 담겨있는걸까? 포스팅에 이어 이번에는 TCP의 핸드쉐이크 과정과 그 속에서 변화하는 TCP 상태에 대해서 한번 알아보려고 한다.

TCP의 헤더에는 어떤 정보들이 담겨있는걸까?

TCP의 헤더에는 어떤 정보들이 담겨있는걸까?

저번에 HTTP/3는 왜 UDP를 선택한 것일까? 포스팅을 진행하며 TCP에 대해 간단한 언급을 했었지만, 해당 포스팅에서는 기존의 HTTP에서 사용하던 TCP에 어떤 문제가 있었는지에 집중해서 이야기했었지만 이번에는 TCP 자체에 조금 더 집중해서 이야기해보려고 한다.

HTTP/3는 왜 UDP를 선택한 것일까?

HTTP/3는 왜 UDP를 선택한 것일까?

HTTP/3HTTP(Hypertext Transfer Protocol)의 세 번째 메이저 버전으로, 기존의 HTTP/1, HTTP/2와는 다르게 UDP 기반의 프로토콜인 QUIC을 사용하여 통신하는 프로토콜이다. HTTP/3와 기존 HTTP 들과 가장 큰 차이점이라면 TCP가 아닌 UDP 기반의 통신을 한다는 것이다.

ACK AIMD Aamazon Web Service Agile Algorithm Array Asynchronous Atlassian Audio Average Backpropagation Blocking Burn Out CWND Commit Congestion Control Data Driven Data structure Deep Learning ECN Error Control Essay Essay Tips Event Loop Express FIN Feedback Flow Control Freedom & Responsibility Git Go bacK N Good Programmer Gravity HTTP HTTP/2 HTTP3 Hash Table Heap Hoisting IP JavaScript JavaScript Audio API Jira MFS Machine Learning Memory leak Merge Merge and squash Netflix Network NodeJS Non Blocking Notification API OOP Object Oriendted Programming PWA Paypal Progressive Web Application Prototype Rebase Render Optimizing Reno SEO SPA SSR SYN Selective Repeat Server Side Rendering Single Page Application Sliding Window Slow Start Sort Algorithms Sound Engineering Stop and Wait Study Synchronous TCP TCP Handshake TCP 플래그 TDZ Tahoe Temporal Dead Zone Tutorial TypeScript UDP V8 Versioning Vue Web Web Push Webpack Writing memory-fs traceroute webpack dev middleware webpack dev server 개발서적 개발자 객체지향프로그래밍 공동집필 공부 궤도 구현하기 글쓰기 나이퀴스트 난수생성알고리즘 네트워크 넷플릭스 논리학 논블록킹 누적평균 데이터 기반 의사결정 동기 딥러닝 렌더 최적화 머신러닝 메르센 트위스터 면접 배열 성능 최적화 버전관리 번아웃 부트캠프 불안감 불안요소 마주보기 블록킹 비동기 비전공 개발자 사운드 엔지니어 서버사이드 렌더링 소프트웨어 개발 방법론 소프트웨어 장인 리뷰 소프트웨어 장인정신 수학 슬라이딩 윈도우 알고리즘 애자일 애자일 프로세스 에세이 역전파 알고리즘 오디오 이펙터 오류 제어 이벤트 루프 자료 구조 자료구조 자바스크립트 자유와 책임 정렬 알고리즘 조직문화 좋은 프로그래머 중력 중력 구현하기 철학 커피 한잔 마시며 끝내는 VueJS 컴퓨터 공학 컴퓨터공학 케플러 6요소 케플러 궤도 방정식 코딩테스트 코딩학원 타입스크립트 타입스크립트 인공 신경망 퇴사 튜토리얼 페이팔 평균구하기 프라하 프라하 생활 팁 프로그래밍 프로그래밍서적 프로토타입 프로페셔널 피드백 한 달살기 해시테이블 헤더 협업 호이스팅 혼잡 제어 회고 회고록 흐름 제어
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×