2017-11-05 1 views
0

Websocket에 대해 읽었습니다. 프로토콜에 데이터 단편화 (프레임)가 있고 WebSocket 메시지가 하나 이상의 프레임으로 구성되어 있지만 TCP (데이터 단편화)가 수행하는 것이 아닙니다. 나는 혼란스러워.WebSocket 조각화와 TCP 조각화의 차이점은 무엇입니까?

+0

Websocket은 tcp 연결입니다. 두 웹 서버입니다. –

+0

데이터 조각화가 TCP 또는 Websocket 프로토콜의 기능인지 또는 둘 다 다른지 알고 싶습니다. –

+0

내 이해까지. Websocket은 기본적으로 브라우저와 서버에서 지원되는 통신 프로토콜입니다. Websocket은 내부적으로 모든 프로토콜을 사용하여 통신 할 수 있지만 tcp는 표준에 따라 권장/선호됩니다. 그래서 한번 tcp를 사용합니다. 단편화에 차이가 없어야합니다. 둘 다 –

답변

3

데이터 전송 컨텍스트에서의 조각화는 원본 데이터를 전송하기 위해 더 작은 부분으로 분할하고 나중에 이러한 조각을 나중에 (예 :받는 사람 측에서) 다시 결합하여 원래 데이터를 다시 만드는 것을 의미합니다.

조각 모음은 종종 큰 메시지를 처리 ​​할 수 ​​없거나 큰 메시지로 인해 성능 문제가 발생할 경우 수행됩니다. 이러한 문제는 하나의 큰 메시지가 유실되고 작은 조각 대신에 반복 될 필요가있을 때 더 비싸기 때문에 발생할 수 있습니다. 또는 한 개의 큰 메시지를 전송하면 더 작은 메시지의 전달이 차단되는 경우 성능 문제가 될 수 있습니다. 이 경우 대용량 메시지를 조각으로 분할하고 이러한 메시지 단편을 다른 메시지와 함께 전달하여 큰 메시지가 완료 될 때까지 전달을 기다릴 필요가 없도록하는 것이 유용합니다.

  • IP 메시지를 보낸 사람에 조각난하거나 일부 middlebox와는 재 조립 얻을 : WebSocket을의 메시지

    조각화처럼, 데이터 전송에 다양한 계층에 존재하는 분열의 여러 유형 중 하나입니다 결국.

  • TCP는 데이터 스트림입니다. 스트림의 여러 부분이 서로 다른 IP 패킷으로 전송되어 수신자에게 올바른 순서로 재구성됩니다.
  • HTTP와 같은 응용 프로그램 계층 프로토콜에도 조각이있을 수 있습니다 (예 : HTTP 내의 청크 분할 전송 인코딩 모드 또는 WebSockets의 조각).
  • 더 높은 계층에서 이전에 플로피 디스크에 하나의 큰 ZIP 파일을 여러 부분으로 퍼 뜨리거나 같은 파일의 여러 부분을 병렬 연결로 요청하고 결합하여 다운로드 속도를 높이는 것과 같은 더 많은 조각이있을 수 있습니다 이들은 수령인에게.
0

Steffen Ullrich의 자세한 답변을 좋아하지만 원본 TCP/IP와 추가 된 Websockets 레이어의 차이점에 대한 몇 가지 구체적인 정보를 추가하고 싶습니다.

TCP/IP는 데이터 제공 될 때 애플리케이션이 단편화 "패킷 경계들"에 대한 명확한 지시 또는 일본어 (비 단편화) 데이터, 조각난 조각 로 데이터를 수신 의미하는 스트림 프로토콜 인 구조.

웹 소켓 프로토콜은 응용 프로그램이 모든 조각 조각이 도착 일단은 전체 웹 소켓에게 메시지 를 받고 다시 함께을 넣어 것을 의미하는 메시지 기반 프로토콜입니다. 아주 간단한 예를 들어

:

TCP/IP : 50 메가 파일이 TCP를 사용하여 전송하는 경우, 응용 프로그램이 아마 한 번에 파일의 조각을받을 것이며, 그것은을 조각해야합니다 파일을 다시 합치십시오 (각 부분을 임시 디스크 저장소에 저장할 수도 있음).

웹 소켓은 : 50 메가 파일이 웹 소켓 프로토콜을 사용하여 전송되는 경우, 애플리케이션은 하나의 메시지 (데이터, 메모리 또는 디스크 전체의 저장에 50MB의 전체를 수신처에 의해 지시 될 응용 프로그램 계층이 아닌 Websocket 계층).

Websocket 프로토콜은 TCP/IP 프로토콜을 통한 추가 레이어이므로 데이터는 TCP/IP를 통해 스트리밍되며 Websocket 레이어는 원본 (전체) 메시지를 전달하기 전에 조각을 다시 묶습니다.

관련 문제