programing

IPv4 클라이언트/서버 앱에서 IPv6 지원 추가 - sin6_flowinfo 및 sin6_scope_id 필드?

codeshow 2023. 10. 9. 23:38
반응형

IPv4 클라이언트/서버 앱에서 IPv6 지원 추가 - sin6_flowinfo 및 sin6_scope_id 필드?

저는 여러 애플리케이션에 대해 IPv6 지원을 구현하는 작업을 하고 있습니다만, 이 두 분야는 무엇을 위한 분야인지 궁금했습니다.여기에 대한 질문이 너무 적어서 제가 제대로 이해했는지 잘 모르겠습니다.

  • 스코프 ID ( )에 대해서 - 음, Q1, Q2, Q3, Q4에 대해서 스코프 ID에 대한 아이디어를 줬는데 이해가 되는 것 같습니다.그래서 scope-id를 구성할 수 있도록 구성 매개 변수를 하나 더 추가해야 합니다. (누군가 관심이 있을 경우를 대비하여 여기에 추가하기로 결정했습니다.짧은 범위 ID는 트래픽을 처리해야 하는 장치를 고유하게 결정하기 위해 필요합니다. 동일한 IP를 가진 인터페이스가 여러 개 있지만 다른 인터페이스(인터페이스?)가 있을 수 있기 때문입니다.아이디. 지금까지, 좋아요.
  • 그러나 "흐름 정보"( )는 어떻습니까?
    • 왜 그러시죠?저는 그것에 대해 재미있는 것을 발견할 수 없었습니다.RFC를 읽었지만 전혀 도움이 되지 않았습니다.
    • 가능한 값이 있습니까?sin6_flowinfo(like - flags, 뭔가를 의미하는 flags와 같은 여러 값), 또는 그것은sin6_scope_id- 기기에 따라 연결하려는 값이 있을 수도 있습니다.
    • 걱정이라도 해야 할까요, 아니면 그냥 놔둘까요?0(Beej's Guide to Network Programming)., 시도해 보았습니다. 작동합니다. 하지만 이 경우에만 작동하는지(네트워크 구성에 따라 다름), 아니면 항상 작동하는지(설정된 경우) 잘 모르겠습니다.0?
    • 아니면, 구성 가능하도록 해야 할까요? 즉, 구성 옵션을 하나 더 추가하고 사용자가 그 가치를 정의하도록 해야 할까요?
    • google-ing "sin6_flowinfo"는 구조 정의와 맨 페이지를 제공합니다. 이 필드에 대해 유용한 것은 없습니다.흥미로운 정보가 있습니까?(이해할만한..RFC :D)이 아닙니다.

편집: 음, @glglgl의 대답과 힌트 후에,sin6_flowinfo더 이상 쓸모가 없을지도 모르지만, 몇 가지 흥미로운 출처를 발견했습니다: RFC: IPv6 Flow Label Specification, IETF 초안: Flow Label as Transport-Layer Nonce, SolarisWikipedia위한 실용 가이드.
필드가 더 이상 쓸모가 없는 것은 아니지만(또는 이를 확인하는 소스를 찾을 수 없음) 다음과 같습니다.0가치가 충분하기 때문에.

가장 좋은 방법은 사용하는 것입니다.

의사 코드:

struct addrinfo *restrict hints = { .ai_family = AF_UNSPEC, .ai_socktype = SOCK_STREAM };
struct addrinfo * res, r;
if (0 == getaddrinfo("foo.bar.baz", "http", &hints, &res)) {
    for (r=res; r; r=r->ai_next) {
        sock = socket(r->ai_family, r->ai_socktype, r->ai_protocol);
        connect(sock, r->ai_addr, r->ai_addrlen);
        if error: continue
        break
    }
}
freeaddrinfo(res);

은 입니다에 입니다.sin6_scope_id으로부터;은.0, 의 링크 합니다.fe80::1234:56ff:fe78:9abc%eth2 .eth2는 올바른 범위 ID로 변환됩니다.

sin6_flowinfois older(AFAIK)이므로 의 결과에서 0으로 설정됩니다.

언급URL : https://stackoverflow.com/questions/8256671/adding-support-for-ipv6-in-ipv4-client-server-apps-sin6-flowinfo-and-sin6-scop

반응형