Websocket에 대해 읽었습니다. 프로토콜에 데이터 단편화 (프레임)가 있고 WebSocket 메시지가 하나 이상의 프레임으로 구성되어 있지만 TCP (데이터 단편화)가 수행하는 것이 아닙니다. 나는 혼란스러워.WebSocket 조각화와 TCP 조각화의 차이점은 무엇입니까?
답변
데이터 전송 컨텍스트에서의 조각화는 원본 데이터를 전송하기 위해 더 작은 부분으로 분할하고 나중에 이러한 조각을 나중에 (예 :받는 사람 측에서) 다시 결합하여 원래 데이터를 다시 만드는 것을 의미합니다.
조각 모음은 종종 큰 메시지를 처리 할 수 없거나 큰 메시지로 인해 성능 문제가 발생할 경우 수행됩니다. 이러한 문제는 하나의 큰 메시지가 유실되고 작은 조각 대신에 반복 될 필요가있을 때 더 비싸기 때문에 발생할 수 있습니다. 또는 한 개의 큰 메시지를 전송하면 더 작은 메시지의 전달이 차단되는 경우 성능 문제가 될 수 있습니다. 이 경우 대용량 메시지를 조각으로 분할하고 이러한 메시지 단편을 다른 메시지와 함께 전달하여 큰 메시지가 완료 될 때까지 전달을 기다릴 필요가 없도록하는 것이 유용합니다.
- IP 메시지를 보낸 사람에 조각난하거나 일부 middlebox와는 재 조립 얻을 : WebSocket을의 메시지
조각화처럼, 데이터 전송에 다양한 계층에 존재하는 분열의 여러 유형 중 하나입니다 결국.
- TCP는 데이터 스트림입니다. 스트림의 여러 부분이 서로 다른 IP 패킷으로 전송되어 수신자에게 올바른 순서로 재구성됩니다.
- HTTP와 같은 응용 프로그램 계층 프로토콜에도 조각이있을 수 있습니다 (예 : HTTP 내의 청크 분할 전송 인코딩 모드 또는 WebSockets의 조각).
- 더 높은 계층에서 이전에 플로피 디스크에 하나의 큰 ZIP 파일을 여러 부분으로 퍼 뜨리거나 같은 파일의 여러 부분을 병렬 연결로 요청하고 결합하여 다운로드 속도를 높이는 것과 같은 더 많은 조각이있을 수 있습니다 이들은 수령인에게.
Steffen Ullrich의 자세한 답변을 좋아하지만 원본 TCP/IP와 추가 된 Websockets 레이어의 차이점에 대한 몇 가지 구체적인 정보를 추가하고 싶습니다.
TCP/IP는 데이터 제공 될 때 애플리케이션이 단편화 "패킷 경계들"에 대한 명확한 지시 또는 일본어 (비 단편화) 데이터, 조각난 조각 로 데이터를 수신 의미하는 스트림 프로토콜 인 구조.
웹 소켓 프로토콜은 응용 프로그램이 모든 조각 조각이 도착 일단은 전체 웹 소켓에게 메시지 를 받고 다시 함께을 넣어 것을 의미하는 메시지 기반 프로토콜입니다. 아주 간단한 예를 들어
:
TCP/IP : 50 메가 파일이 TCP를 사용하여 전송하는 경우, 응용 프로그램이 아마 한 번에 파일의 조각을받을 것이며, 그것은을 조각해야합니다 파일을 다시 합치십시오 (각 부분을 임시 디스크 저장소에 저장할 수도 있음).
는웹 소켓은 : 50 메가 파일이 웹 소켓 프로토콜을 사용하여 전송되는 경우, 애플리케이션은 하나의 메시지 (데이터, 메모리 또는 디스크 전체의 저장에 50MB의 전체를 수신처에 의해 지시 될 응용 프로그램 계층이 아닌 Websocket 계층).
Websocket 프로토콜은 TCP/IP 프로토콜을 통한 추가 레이어이므로 데이터는 TCP/IP를 통해 스트리밍되며 Websocket 레이어는 원본 (전체) 메시지를 전달하기 전에 조각을 다시 묶습니다.
Websocket은 tcp 연결입니다. 두 웹 서버입니다. –
데이터 조각화가 TCP 또는 Websocket 프로토콜의 기능인지 또는 둘 다 다른지 알고 싶습니다. –
내 이해까지. Websocket은 기본적으로 브라우저와 서버에서 지원되는 통신 프로토콜입니다. Websocket은 내부적으로 모든 프로토콜을 사용하여 통신 할 수 있지만 tcp는 표준에 따라 권장/선호됩니다. 그래서 한번 tcp를 사용합니다. 단편화에 차이가 없어야합니다. 둘 다 –