基于C++中的IPv6網(wǎng)絡(luò)程序設(shè)計(jì)
IPv4 最初是由美國(guó)國(guó)防部開發(fā)的用于網(wǎng)際互聯(lián)(IP)協(xié)議,后來它不僅發(fā)展了TCP,而且還進(jìn)一步發(fā)展了IPv4(IP 協(xié)議4.0版)。IPv4現(xiàn)在已經(jīng)廣泛應(yīng)用于Internet網(wǎng)絡(luò)中,同時(shí)也應(yīng)用于大多數(shù)計(jì)算機(jī)系統(tǒng),局域網(wǎng)和廣域網(wǎng)中。然而,隨著Internet 中的計(jì)算機(jī)數(shù)量突飛猛漲,IPv4 的局限性越發(fā)明顯:
本文引用地址:http://www.ex-cimer.com/article/189949.htm1.IPv4地址數(shù)目面臨耗盡,日近緊張;
2.IPv4尋址并非完全分等級(jí),這使得Internet 樞紐路由器必須維持大量的路由表,負(fù)擔(dān)過重。
3.IPv4的地址必須被靜態(tài)分配或通過配置協(xié)議(如:DHCP)進(jìn)行分配。IPv6的開發(fā)目標(biāo)之一就是將提供更為簡(jiǎn)便的配置方案。
于是IPv6(6.0版本)應(yīng)運(yùn)而生。在Window系統(tǒng)中,Windows XP 提供了IPv6的developer-release版本;Windows 2000也可在http://www.microsoft.com/ipv6 下載 IPv6協(xié)議預(yù)覽。
一.IPv4地址及其尋址
1.IPv4地址
IPv4地址(常稱IP地址)用一個(gè)32位數(shù)表示;通常表示位十進(jìn)制格式,地址的每8位字節(jié)被表示轉(zhuǎn)為一個(gè)十進(jìn)制的數(shù)值,并由句點(diǎn)分隔,如:192.168.0.1;IPv4地址 通常分為A、B、C、D、E 五類。
2.IPv4尋址
在WiNSock 中,通過SOCKADDR_IN 結(jié)構(gòu)來指定IPv4的地址和服務(wù)斷口信息:
STruct sockaddr_in {
short sin_family ;//必須為AF_INET,表示使用IPv4地址簇
u_short sin_Port; //TCP/UDP 端口
struct in_addr sin_addr;// IP地址(以網(wǎng)絡(luò)字節(jié)順序排列, 4個(gè)字節(jié))
char sin_zero[8];//填充項(xiàng)
}
二.IPv6地址及其尋址
1.IPv6地址
IPv6地址與IPv4地址的顯著的不同是128位,長(zhǎng)度是IPv4地址的4倍。IPv6地址由16位字節(jié)分段表示,顯示為冒號(hào)分隔的十六進(jìn)制:
21DA:00D3:0000:2F3A:B234:ED12:9C5A:DAC3
IPv6地址的分配
分配
地址前綴
保留地址0000 0000
為NSAP預(yù)留0000 0001
可聚合的全球單播地址001
鏈接-本地單播地址1111 1110 10
站點(diǎn)-本地單播地址1111 1110 11
多播地址1111 1111
2. IPv6的尋址
Winsock中,尋址使用一下結(jié)構(gòu):
struct sockaddr_in6{
short sin6_family;// 地址簇:AF_INET6
u_short sin6_port;//端口號(hào)
u_lONg sin6_flowinfo;//連接標(biāo)記通信量
struct in6_addr sin6_addr;//16字節(jié)結(jié)構(gòu)的IPv6 地址
u_long sin6_scope_id;//地址所有的接口索引
}
評(píng)論