免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2771 | 回复: 0
打印 上一主题 下一主题

网络编程---IPV6 编程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-16 20:10 |只看该作者 |倒序浏览

IPV6点分地址
从 IPv4 到 IPv6 最明显的变化就是网址的长度不同了,IPv6 地址长度为128比特而 IPv4 地址长度为32比特。所有 IPv6 地址的个数可达3.4x1038个。
IPv6 地址格式

  
IPv6 地址在许多情况下都由两个逻辑部分组成:64位的网络前缀部分和64位的主机寻址部分,而后者通常都是主机依照 MAC 接口地址自动生成的。IPv6 地址由8组长度为16比特的十六进制数值组成,各组之间由冒号(:)分隔开,示例如下:

aaaa : aaaa : aaaa : aaaa : aaaa : aaaa : aaaa : aaaa

其中每一个aaaa, 一组长度为16比特的十六进制数值,而 a 是一位长度为4比特的十六进制数值,以下就是一个IPV6的实例.
3ffe:ffff:100:f101:210:a4ff:fee3:9566


Ipv6 地址变形:因为IPV6地址位数太多.因此如果出现全零的段(0000),可以省写为 0,这个跟IPV4一样.
如果出现连续的全0段,还可以直接写成::,如
1080:0:0:0:8:810:213C:123A地址可以省写为  1080::8:810:213C:123A,但这种写法在一个地址里只能出现一次.比如本地回环地址: 它的简写就是::1  等同于ipv4的 127.0.0.1

  还有一种表达法也是常用. 可以用“IPv6地址/前缀长度”来表示地址前缀. 前缀长度是一个十进制值,指定该地址中最左边的用于组成前缀的位数. 址前缀在一定意义上代表了这个IP地址的类型.

  例如: 假如一个IP地址它的地址前缀为16位,IP地址为“1080::8:810:213C:123A”,则用地址前缀法表示就为:1080::8:810:213C:123A/32

决定这些IP地址类型的“地址前缀”(Format Prefix ,FP)。顾名思义,地址前缀就是在地址的最前面那段数字。当然也属于128位地址空间范围之中,通过不同的地址前缀来代表不同的地址类型。下表1就是在IPv6标准中规定的地址前缀所代表的意义。类似于IPV4的子网掩码.
前缀数的换算,/32对应的地址数量为2的(128-32)次方=2的96次方个,/48对应的地址数量为2的(128-48)次方=2的80次方个,/128对应的地址数量为2的(128-128)次方=1个地址。  2的32次方对应的地址数量约为40亿个。
前缀分配
Ipv6网络的使用

ifconfig 会显示IPV6地址.

Ipv6网络不能使用ping 来测试网络,而是采用ping6 来处理,注意地址不能带前缀
这里ping其它机器需要用-I指定从哪一个网卡

  
Socket如何表示IPV6地址

struct in6_addr {
uint8_t s6_addr[16]; /* 128 bit 字节地址 */
};

#define SIN6_LEN /* required for compile-time tests */

struct sockaddr_in6 {
uint8_t sin6_len;  /* = SIN6_LEN */
sa_family_t sin6_family;  /*  = AF_INET6 */
in_port_t sin6_port;  /* */
uint32_t sin6_flowinfo;  /* priority and flow label */
struct in6_addr sin6_addr;  /* IPV6 的任意地址是 in6addr_any */
}

其余编程象socket,bind,listen,send,recv跟IPV4类似,

IP V 6的点分字符串转成sockaddr_in6使用如下语句
inet_pton(AF_INET6, argv[1], &dest.sin6_addr);


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/105675/showart_2096191.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP