피어 메시
메시는 서로 통신할 수 있고 고유한 메시 ID를 통해 식별되는 피어 노드의 명명된 컬렉션(상호 연결된 그래프)입니다. 각 노드는 다른 여러 노드에 연결됩니다. 잘 연결된 메시에서는 모든 두 노드 간에 경로가 있으며 메시의 가장 바깥쪽 가장자리에 있는 노드 사이에 홉 수가 상대적으로 적습니다. 또한 일부 노드 또는 연결이 끊어지는 경우에도 메시가 연결된 상태로 유지됩니다. 메시의 활성 노드는 다른 피어가 찾을 수 있도록 해당 메시 ID를 사용하여 끝점 정보를 게시합니다.
피어 채널을 사용하여 만든 메시의 특징
고유한 식별
- 고유 ID로 각 메시가 식별됩니다. 메시 이름(또는 메시 ID)은 DNS(Domain Name System) 호스트 이름과 동일한 형식을 사용합니다. 따라서 이 메시 ID는 사용되는 확인자 범위 내에서 의도된 응용 프로그램 클라이언트에 고유해야 합니다. "MyFamilysPeers" 또는 "KevinsPokerTable" 같은 일반 이름은 다른 사용자 이름과 충돌하기 쉽고 의도하지 않은 피어 끝점 정보를 반환할 수 있으므로 개인 정보 보호 문제가 발생하거나 연결 대기 시간이 늘어날 수 있습니다. 이러한 문제를 방지하는 한 가지 방법은 메시의 애칭에 고유 ID를 후위 형식으로 추가하는 것입니다(예: "KevinsPokerTable90210").
메시지 플러딩
- 메시를 사용하면 하나 이상의 발신자에서 동일한 메시의 다른 모든 피어 노드로 메시지를 전파할 수 있습니다. 피어 노드에서 플러딩한 메시지는
https://schemas.microsoft.com/net/2006/05/peer
의 네임스페이스에서 지정된 헤더를 사용합니다.
최적화된 연결
- 피어 채널 메시는 노드가 참가하고 벗어날 때 이에 맞게 자동으로 조정되어 모든 노드가 파티션(서로 격리되는 노드 그룹)을 만들지 않고 양호한 연결 상태를 유지하도록 합니다. 또한 메시의 연결은 발신자에서 수신자로의 메시지 대기 시간을 가능한 한 줄이기 위해 현재 트래픽 패턴을 기반으로 동적으로 최적화됩니다.
피어 채널에서 제공하지 않는 일반적인 네트워크 기능
피어 채널에서 제공하지 않는 일반적인 네트워크 기능을 알아두는 것이 중요합니다. 모두 피어 채널에서 구현될 수 있는 이러한 기능은 다음과 같습니다.
메시지 정렬: 단일 소스에서 시작된 메시지가 동일한 순서나 소스에서 전송된 순서대로 다른 모든 당사자에 도착하지 않을 수 있습니다. 메시지가 특정 순서대로 배달되어야 하는 응용 프로그램은 모든 메시지와 함께 일정하게 증가하는 ID를 포함하는 등의 방법으로 이 순서를 응용 프로그램에 빌드해야 합니다.
신뢰 메시징: 피어 채널에는 모든 피어의 메시지 수신을 보장하는 메커니즘이 포함되어 있지 않습니다. 메시지 배달을 보장하려면 피어 채널에 안정성 계층을 작성해야 합니다.