내부 구조

IP 주소를 알 필요 없이 scp처럼 사용할 수 있습니다. AltSendme에 파일을 추가하면 붙여넣을 수 있는 티켓이 생성되어 필요한 사람에게 전달할 수 있습니다. AltSendme는 기기를 직접 연결하고 계정이나 설정 없이 데이터를 전송합니다.

AltSendme 히어로 그래픽

중요 개념

1. Blobs

콘텐츠 주소 지정 blob 저장 및 전송. iroh-blobs는 BLAKE3 검증 스트림과 콘텐츠 주소 링크를 사용하여 임의 크기의 바이트 blob에 대한 요청/응답 및 스트리밍 전송을 구현합니다.

  • Blob: 불투명한 바이트 시퀀스(내장 메타데이터 없음).
  • Link: blob을 식별하는 32바이트 BLAKE3 해시.
  • HashSeq: 링크 시퀀스를 포함하는 blob(청킹/트리에 유용).
  • Provider / Requester: provider가 데이터를 제공하고 requester가 가져옵니다. 엔드포인트는 둘 다 될 수 있습니다.

2. Tickets

티켓은 iroh 엔드포인트 간에 연결 정보를 공유하는 방법입니다. 다른 엔드포인트에 연결하거나 이 경우 blob을 가져오는 데 필요한 모든 것을 포함하는 단일 토큰입니다. Ed25519 NodeIds 포함: 인증을 위한 기기의 암호화 ID. IP를 피어에 브로드캐스트하는 full P2P 시스템보다 훨씬 낫습니다. iroh에서는 명시적으로 연결하려는 피어 간 "cozy network"를 형성하는 데 티켓이 사용됩니다. "full p2p"로 전환해 연결 정보를 브로드캐스트할 수도 있지만, 티켓이 더 나은 중간 기본값입니다.

3. 피어 검색, NAT 트래버설 & 홀 펀칭

피어는 시작 시 오픈 소스 공개 릴레이 서버에 등록하여 방화벽과 NAT를 통과하고 연결을 설정합니다. 연결 후 iroh는 QUIC 홀 펀칭으로 직접 P2P 연결을 시도하고 릴레이를 우회합니다. 직접 연결이 가능하면 E2E 암호화로 직접 통신하고, 그렇지 않으면 릴레이가 임시 폴백으로 작동합니다. 이를 통해 로컬 네트워크와 인터넷 전반에서 안정적인 연결이 가능합니다.

4. QUIC & 암호화

QUIC은 UDP 기반의 현대적 전송 프로토콜로, TCP보다 지연을 줄이고 웹 성능을 개선하도록 설계되었습니다. Google이 개발했으며 IETF에 의해 HTTP/3의 기반으로 표준화되었고, TLS 1.3을 프로토콜에 직접 통합합니다.

QUIC이 가능하게 하는 슈퍼파워:

  • 암호화 & 인증
  • 스트림 멀티플렉싱
  • head-of-line blocking 문제 없음
  • 스트림 우선순위
  • 하나의 공유 혼잡 제어
  • 암호화된 비신뢰성 데이터그램 전송
  • 이전에 연결한 엔드포인트에 대한 제로 RTT 연결 설정

5. 릴레이

AltSendme는 오픈 소스 공개 릴레이 서버를 사용해 직접 연결을 설정하고, 초기 연결 시간을 단축하며, 직접 연결 실패 시 폴백을 제공합니다. 모든 연결은 E2E 암호화됩니다. 릴레이는 암호화된 패킷을 보내는 "또 다른 UDP 소켓"입니다. 더 읽기.

내부 구조 | AltSendme