一、link-local addr使用方式
1、 连接同一广播域内的其他主机的link-local addr或者本机的link-local addr,必须绑定本机的link-local addr,否则连接失败(syn包都发不出去);
2、连接同一广播域内的其他主机的link-local addr时,scope id(ipv6%地址后面的内容)必须都要填写本机地址的scope id,否则connect失败(真正发送到网络上的包是不包含scope id的, scope id标识数据出口网卡)
本机地址:fe80::73d2:59:8c52:586e%15,作为客户端
对端地址:fe80::d9cf:27f:6a87:7fae%15,作为服务器
代码:
Connect("fe80::d9cf:27f:6a87:7fae%15", 9090, false, "fe80::73d2:59:8c52:586e%15", 0);
抓包:
分析:
对端的真实link_local addr:fe80::d9cf:27f:6a87:7fae%11,客户端连接时,使用此地址连接失败。必须使用fe80::d9cf:27f:6a87:7fae%15,才能连接成功。