✔️ 웹이나 HTTP는 인터넷 네트워크 망을 기반으로 동작한다. 인터넷 네트워크에 대해 먼저 알아보자.
▶️ 인터넷 통신
▶️ IP (Internet Protocol)
▶️ TCP, UDP
▶️ PORT
▶️ DNS
인터넷 프로토콜 스택의 4계층 | 설명 |
---|---|
어플리케이션 계층 - HTTP , FTP | 사용자 응용 프로그램으로 부터 요청을 받아 이를 적절한 메시지로 변환하고 하위 계층으로 전달한다 |
전송계층 - TCP, UDP | IP에 의해 전달되는 패킷의 오류를 검사하고 통신 노드간의 제어 및 자료의 송수신을 담당한다 |
인터넷 계층 - IP | 통신 노드 간의 IP패킷을 전송하는 기능 및 라우팅 기능을 담당한다 |
네트워크 인터페이스 또는 데이터 링크 계층 - LAN, 패킷 망 | 이더넷 카드 등으로 연결된 물리적인 네트워크들을 의미한다 |
✔️ Transmission Control Protocol로 전송 제어 프로토콜을 뜻한다.
✔️ TCP는 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟을 안정적으로, 순서대로, 에러없이 교환할 수 있게 도와준다.
✔️ TCP는 프로토콜 계층 중 전송계층에 위치한다.
✔️ IP 패킷만으로 해결이 안되던 순서, 전송제어, 검증정보에 대한 것들이 해결 가능해진다.
✔️ 전송 제어 프로토콜이다.
1️⃣ 연결지향적이다.
▶️ 클라이언트와 서버간의 연결을 하고 데이터를 전송하기 때문에 IP 비신뢰성의 한계를 뛰어넘는다.
▶️ TCP 3 way handshake (가상연결 프로세스)
2️⃣ 데이터 전달 보증
▶️ 중간에 패킷이 누락되면 누락됐는지 확인할 수 있다.
3️⃣ 순서 보장
✔️ 이러한 특징들은 TCP 패킷에 의해 가능해진다.
✔️ TCP는 이러한 특징들을 통해 신뢰할 수 있는 프로토콜이 됐고 현재 대부분 TCP를 사용하고 있다.
✔️ User Datagram Protocol로 컴퓨터가 다른 컴퓨터와 데이터 통신을 하기 위한 규약(프로토콜)이다.
✔️ UDP는 전송 계층(Transport Layer)에서 사용하는 프로토콜로 동일 계층에서 사용하는 또 다른 프로토콜로 TCP가 존재한다.
▶️ 하얀 도화지에 비유 (기능이 거의 없음)
▶️ 연결지향 X
▶️ 데이터 전달보증 X
▶️ 순서보장 X
✔️ 데이터 전달 및 순서가 보장되지 않지만 단순하고 빠른 작용을 한다.
✔️ 어플리케이션에 추가 작업이 필요하다.
✔️ IP와 거의 비슷하다. IP기능 + PORT, 체크섬 등만 추가되어있다.
하나의 IP에서 다중으로 실행되고 있는 어플리케이션의 구분을 도와주는 것.
▶️ 프로그램들은 네트워크로 통신할 때 신뢰성이 높은 TCP를 사용한다. TCP는 데이터 신뢰성을 보장하기 위한 방식이기 때문에 누락된 데이터를 모두 받기 위한 메커니즘이 정의되어 있다.
▶️ 이러한 매커니즘은 이메일이나 파일전송과 같은 분야등에서 필수불가결의 요소였으나 실시간 스트리밍 서비스에서는 걸림돌로 작용한다. 간단히 전체 영상에서 점 하나 못 받은 것 때문에 버퍼링 돌린다고 재생이 중지되기 일쑤였고, TCP는 혼잡제어를 위해 보내는 양까지 조절하기 때문에 영상 데이터의 퀄리티가 안정적이지 못했다. 결국 이를 해결하기 위하여 제시된 것이 UDP이다.
▶️ 매커니즘이 정해져있어서 손을 댈 수 없는 TCP 기반을 더 최적화 하고 싶을 때, TCP는 그대로 두고 UDP를 이용해서 어플리케이션 레벨에서 만들어내면 된다.
출처:
https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC