문제

나는 사용을 고려하고있다 SCTP C로 작성된 P2P 앱의 TCP 대신에 작성해야합니까? 또한 SCTP의 속도는 TCP의 속도와 어떻게 비교됩니까?

편집 : 나는 그것을 발견했다 SCTP는 UDP를 통해 터널링 할 수 있습니다 터널링 된 SCTP 인 유일한 문제는 Untunneled SCTP와 상호 운용 할 수 없습니다.

도움이 되었습니까?

해결책

지역 네트워크를위한 것이라면 물론 가십시오.

그러나 개방형 인터넷에서 사용하려는 경우 많은 소비자 등급 방화벽은 인식 할 수없는 IP 프로토콜을 통해 유연하지 않습니다.

다른 팁

대상 시스템이 모두 SCTP에 사전 설치되어 있는지 또는 응용 프로그램 자체를 포함 해야하는지 여부를 고려해 보셨습니까? 내 경험상 나는 모든 시스템이 SCTP를 설치할 것으로 기대하지 않을 것이며, Windows인지는 기대하지 않을 것입니다.

애플리케이션 자체에 SCTP를 포함하면 사전 설치된 TCP를 사용하는 것과 비교할 때 성능에 영향을 미치는 커널에서 전달되는 메시지 수의 두 배 이상이됩니다.

SCTP에서 원하는 이점을 고려해 보셨습니까? 결함 공차를 언급했지만 SCTP와 함께 작동하려면 여러 이더넷 포트 및 IP 주소가 있어야합니다. 이것이 앱에있을 가능성이 있습니까?

내가 SCTP (!)를 좋아하는만큼 SCTP가 필요하다고 확신하지 않거나 호스트를 제어하지 않으면 앱을 배포하지 않는 한 TCP를 고수하는 것을 진지하게 고려할 것입니다.

문안 인사

어떻게 도움이됩니까?

P2P이므로 모든 피어는 다른 모든 피어에게 최소한 하나의 소켓이 열려 있어야합니다.

소켓이 열려 있다면, 당신은 당신이해야 할 모든 일을 할 수 있습니다. 파일 당 하나의 소켓에 접근하고 두 개의 주어진 피어 사이에 동시에 여러 개의 파일이 트랜스 포트가있는 경우 SCTP는 파일 당 하나의 소켓을 저장합니다. 그러나 모든 크기의 일반적인 P2P 네트워크에서는 거의 절대 두 피어 사이에 여러 파일이 동시에 전송됩니다.

단 하나의 소켓이 있고 자신만의 작은 프로토콜을 가지고 있습니다. 헤더가있는 패킷을 보내면 헤더는 컨텐츠 유형 (예 : 명령 또는 파일 파일)을 나타냅니다. 그렇다면 파일 및 바이트 범위를 나타냅니다.

물론, 당신은 그것에 대해 약간의 오버 헤드를 얻는 반면, 명령을위한 소켓 하나와 파일 당 하나가 있다면 더 효율적입니다. SCTP를 사용하는 시간/번거 로움/복잡성에 따라 동료 당 하나의 소켓 (한 번에 하나의 다운로드를 가정)을 저장하고 있습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top