[tcp] WebSocket과 순수 TCP의 근본적인 차이점은 무엇입니까?

WebSockets 에 대해 읽었으며 브라우저가 왜 사소한 TCP 연결을 열고 다른 데스크탑 응용 프로그램과 같이 서버와 통신 할 수 없는지 궁금합니다. 왜 웹 소켓을 통해이 커뮤니케이션이 가능합니까?



답변

인트라넷 경계 내에서 작업하는 경우 해당 네트워크의 시스템을 제어하고 TCP 연결에 적합한 포트를 열 수 있기 때문에 TCP 소켓을 통해 통신하는 것이 더 쉽습니다.

인터넷을 통해 상대방의 다른 서버와 통신하고 있습니다. 그들은이다 매우 연결을위한 오래된 소켓 열려있는 가능성. 일반적으로 HTTP의 경우 포트 80 또는 HTTPS의 경우 443과 같은 몇 가지 표준이 있습니다. 따라서 서버와 통신하려면 해당 포트 중 하나를 사용하여 연결해야합니다.

이 포트는 일반적으로 HTTP를 사용하는 웹 서버의 표준 포트이므로 HTTP 프로토콜을 준수해야합니다. 그렇지 않으면 서버가 사용자와 통신하지 않습니다. 웹 소켓의 목적은 HTTP를 통해 연결을 시작한 다음 웹 소켓 프로토콜 (서버가 그렇게 할 수 있다고 가정)을 사용하여보다 “TCP 소켓”과 유사한 통신 스트림을 허용하도록 협상하는 것입니다.


답변

웹 브라우저는 응용 프로그램 계층에서 작동하고 TCP는 전송 계층에서 작동합니다. 웹 응용 프로그램 개발자는 전송 계층에서 원시 바이트 대신 응용 프로그램 계층을 통해 메시지를보다 쉽게 ​​보낼 수 있습니다.

기본 WebSockets TCP이며 단순성을 위해 추상화되었습니다.


답변

Websocket은 응용 프로그램 계층 프로토콜이고 TCP는 전송 계층 프로토콜입니다. 전송 계층에는 일반적으로 TCP 및 UDP 프로토콜이 있습니다. 응용 프로그램 계층의 모든 메시지는 전송 계층을 거쳐 다른 시스템으로 전송되어야합니다. 따라서 websocket과 tcp는 서로 관계가 있으며 비교할 수 없습니다.


답변

간단하게하기 위해 웹 소켓 통신은 TCP 포트 번호 80 (또는 TLS 암호화 연결의 경우 443)을 통해 이루어 지므로 방화벽을 사용하여 웹 이외의 인터넷 연결을 차단하는 환경에 유리합니다 .

기존 TCP 포트를 사용 하시겠습니까, 아니면 방화벽에 의해 차단 될 수있는 새 TCP 포트를 열겠습니까?


답변