IPv6 简介以及位址介绍

IPv6 简介

IPv6(IP版本6)是互联网通讯协议(Internet Protocol,简称IP)的新版本,它被设计来取代IPv4。并且针对当初设计IPv4时没有考虑到的问题做了以下改进:

  • 扩展地址空间  IPv6将IP地址长度从32 bits扩展到128 bits,其主要目的是支持更多层的阶层式的路由架构,更大的地址空间(IPv6的地址不再有耗尽之虑),并且提供更简单的自动组态配置。在multicast address中新增 ”scope” 字段来提升multicast routing的可扩展性。定义一个新的地址类型称为 ”anycast address”,用来发送封包到一个群组中路由最近的一个node。
  • 简化IP表头格式  IPv6删除了IPv4表头中不必要的字段,并且将选项字段移到扩展表头,降低router转送IP封包的处理时间。
  • 支持更佳的扩充性  更改IP表头的某些选项,使得router转送封包更有效率,并且提供未来更大的灵活度来引入新的选项或新的扩展表头。
  • 提供更好的QoS  在IP表头添加新的标签字段称为 "Flow Label”,让封包发送者能要求特殊的流量处理,譬如real-time服务。
  • 认证和保密功能  支持认证、数据完整性及保密性。

须知,IPv6除了将完全取代IPv4以外,由于IP层版本的替换过程相当冗长艰巨,其设计者更希望IPv6是IP层的终极版本,未来不用再面临IP层版本更新的难题。至于IPv6是否能经得起考验,成为IP层的终极版本,只能有赖时间来证明。

专有术语

Address  地址,用来标示一个或一组interfaces。

Asymmetric reachability(非对称可达性)1个link可能具有non-reflexive(非反向性)或non-transitive(非传递性)的封包传送方式。Non-reflexive是指:A可传送封包到B,但是B无法传送封包到A。Non-transitive是指:A可传送封包到B,B可传送封包到C 但是A无法传送封包到C。

Host(本机)  非router的nodes皆称为host。

Immediate Router 封包送达目的地所经过的routers。

Interface  node连接到link的实体附件。例如网络卡。

Link  通信介质,node之间可以透过link layer进行通信。即IP的下层。例如Ethernet,PPP links,X.25,Frame relay,ATM networks。

Link MTU  一个link上可以传送IP packet的最大单元。即maximal link framesize减掉link frame header size。

Neighbors  邻居,连接到相同link的nodes。

Node(节点)  实现IPv6的设备皆称为node,包含hosts和routers。

Path MTU  来源和目的node路径中的最小的link MTU。即来源和目的路径中可以发送的MTU。由于IPv6的router不做fragmentation动作,如果packet的size超过path MTU,将无法送达目的地。

Reachability(可达性)  是指封包单向送达邻居的路径是否正常。特别是指封包是否送达邻居的IP层且被接收的IP层做适当处理。所谓reachable的邻近router,是指node的IP层发送的IP 封包被送达邻近的router的IP层,且router也确实转送封包。所谓reachable的邻近hosts,是指node的IP层封包被送达邻近host的IP层。

Router(路由器)  负责转发IP封包的node。

Upper layer(上层)  IPv6的上层通讯协议。例如:传输协议如TCP和UDP,控制协议如ICMP,路由协议如OSPF。

IPv6地址

IPv6具有128 bits长度的IP地址。如此庞大的地址空间,IPv6地址不再有耗尽之虑。IPv6 的大地址空间设计主要用于建立有效率、具有更多层的阶层式路由基础结构,使主干router路由表要小得多(IPv4 Internet主干路由器的路由表中通常超过70,000个以上的路由)。

IPv6地址分成Prefix(前缀)及Interface ID两部分,各占64 bits。Prefix等同subnet ID。Interface ID等同一个segment(网段)的host ID。

IPv6地址语法

IPv6地址的128 bits以16 bits区分成8个区块,并用冒号隔开。每个16 bits区块转换为16进位表示法。例如:

ABCD:0F01:2345:6789:ABCD:0F01:2345:0089

2001:0DB8:0000:0000:0008:0800:020C:417A

为了简化Ipv6地址的表示,前置零可以移除,但是每个16 bits区块至少要有一个数字。

ABCD: F01:2345:6789:ABCD:F01:2345:89

2001:DB8:0:0:8:800:20C:417A

由于IPv6的大地址空间,有些类型的地址中经常会包含一连串的区块为零。为了进一步简化Ipv6地址的表示,连续为零的区块可压缩为「::」。例如:

2001:DB8:0:0:8:800:20C:417A可以压缩为2001:DB8::8:800:20C:417A

FF01:0:0:0:0:0:0:101可以压缩为FF01::101

0:0:0:0:0:0:0:1可以压缩为 ::1

0:0:0:0:0:0:0:0可以压缩为 ::

零压缩只能使用一次。否则无法确定每个「::」表示0的区块个数。

IPv6 Address Prefix

IPv6 address prefix(地址前缀)表示语法为ipv6-address/prefix-length。可以用来定义路由或子网。Prefix-length为64时,代表一个segment(网段)。Prefix-length小于64时,可以代表路由表的路由、子网或地址的范围。

例如:

2001:2DB:0:BC::/64 代表segment(网段)的prefix ID

2001: 2DB:0: BC::/60 代表路由表的路由、subnet(子网络)

2001: 2DB:0:CD30::/60也可以代表地址范围:

2001:2DB:0: CD30::/64到2001: 2DB:0: CD3F::/64

不在prefix-length内的bits必须为零。例如2001: 2DB:0:CD3F::/60就不是个合法的表示法。

地址类型表示法

IPv6地址的类型由不同长度及内容的前缀来表示。这些不同长度内容的前缀称为Format Prefix(FP)(格式前缀)。RFC
2373定义初始分配的FP如下:

IPv6的地址类型

IPv6地址的大小为128 bits,有三种类型:

  • Unicast(单点传送)
  • Multicast(多播)
  • Anycast(任一传送)

此外,IPv6废除了使用broadcast address来传送封包。所有与broadcast相关的传送功能都被multicast address取代,主要原因是broadcast封包会传送到整个segment中所有的nodes,这种广播式的传送对同一segment上所有的nodes均造成影响。Multicast取代broadcast后,只有multicast的接收者才会加入对应的multicast group,不需要处理此multicast封包的nodes不再受到影响。

Unicast Address(单点传送)

一个识别地址指定给单一interface。目地地址为unicast address的IPv6封包将被传送到具有这个识别地址的interface。因为封包接收者只允许一个interface,所以称为unicast address。

依据地址能传送的有效范围,Unicastaddress细分为以下类型:

  • Global unicast addresses (全局唯一地址)
  • Link-local addresses(区域链结地址)
  • Unique local addresses(唯一的区域地址)
  • Special addresses(特殊地址)

Global Unicast Address

与IPv4的public地址相同,Globalunicast addresses的传送范围适用整个IPv6 Internet,并且是独一无二的地址。格式如下:

Global Unicast Address的最前面3 bits固定为001。最左边的48 bits或称为site prefix(站台前缀),通常是由ISP分配给一个组织或机构自行建构子网络。Subnet ID字段长度16 bits,并非为了能切分成216个网段,而是提供每个站台网络管理者建立多层的阶层式路由架构。Subnet ID字段也可能被ISP细分成更多的子网络,可提供给个别的小型网络使用(例如:家庭或个人用户)。

Link-Local Address

link-local address的传送范围只适用在一个segment,其地址唯一性仅限于同一个link上。所有的Interface都必须配置link-localaddress。

Link-local address的prefix为固定值:FE80::/64,是自行配置生成的。由于它的传送范围只适用在一个segment,IPv6 router不会转送目的地址为link-localaddress的封包到其它的segments。

Unique Local Address

简称ULA,1个segment或2个segments以上透过routers连接一起的子网络,传送范围适用在一个site的子网络。类似IPv4的专用网,ULA适用于专用网。

  • ULA的前缀固定为FC00::/7。
  • L(Local) bit  值为1代表Global ID是local自行设定。值为0代表Global ID是依照RFC 4193的算法生成的。
  • Global ID  一个Global ID指定给1个site使用。
  • Subnet ID 由site网络管理者自行配置。16 bit的长度并非为了把site切割成216个子网,而是提供site多层的阶层式路由架构。

RFC 4193定义了一个算法,声称依此算法生成的Global ID几乎不会重复,故美其名为Unique Local Address(唯一的区域地址)。其算法的主要目的是当2个的ULA子网络需要合并在同一个子网时,可避免因为Global ID相同而必须更改整个ULA子网络的prefix。

虽然RFC 4193预设ULA的传送范围为global,ULA的传送范围或可大于site-local,但应该局限于合并的ULA子网络。况且ULA无法在整个internet提供全局阶层式的路由架构,把ULA提升为全局传送只会徒增routers转送封包的负担。

Special Address

以下是IPv6的special addresses

  • Unspecified address  未指定的地址

未指定的地址(0:0:0:0:0:0:0:0 或 ::) 仅用于表示此地址是空的,未指定。Unspecifiedaddress只能做为来源地址,不能指定给 interface,也不能做为目的地址。一般而言,当发送封包者还没有IPv6地址或者有些封包并不需要指定发送者的IPv6地址时,就会将来源地址设为 (::)。

  • Loopback address  回路地址

回路地址(0:0:0:0:0:0:0:1 或 ::1) 用于识别回路接口,使node得以向自己传送封包。发往回路地址的封包绝不能在link上传送,也不能由 router转送。Loopback address不能当来源地址。

IPV6 MULTICAST ADDRESSES(多播)

  • 一个识别地址指定给零到多个interfaces。目标地址为multicast address的IPv6封包将被传送到具有这个识别地址的所有interfaces。因为封包接收者是零到多个的interfaces,所以称为multicast(多播)。Multicast主要应用在一对多的传送方式,譬如在线游戏、在线直播节目、视频会议及聊天系统等都可能利用multicast来达到多播。
  • Multicast也称为“群播“,接收同一个multicast address封包流的所有nodes称为一个group。一个group的大小没有限制,可零到任意多个。透过特定的protocol(例如MLD)通知邻近的router,group的成员可任意加入或离开。每个multicast address代表不同的group,每个group聆听对应的multicast 封包流。譬如在线直播节目,每个multicast address代表不同的节目,收看同一个节目的所有nodes即一个group。
  • 多播的优点是只要发送一个封包,透过routers就可以转送到所有的聆听者。不像unicast addresses,如果要发送同一个封包给N个nodes,就必须重复发送N个封包到N个unicast addresses。
  • 被指定IPv6 multicastaddress的interface只能当聆听者,不能以IPv6 multicast address的身份去发送封包,所以IPv6 multicast addresses不能做为来源地址。
  • 此外,IPv6定义特定的multicast addresses取代IPv4原有broadcast相关的功能。只有欲接收相关multicast封包的nodes才会加入该multicast group,其它的nodes不再受到影响。
  • IPv6 multicast addresses的前缀为1111111(0xFF),即以0xFF开始的皆为multicast地址。

MULTICAST ADDRESS格式

前缀为0xFF表示为multicast address以外,IPv6 multicast address还包含其它结构:flag、scope和group ID。

FlagsO R P T表示multicast address上设定的旗标。如下所示,该字段大小为4 bits。

  • 高序位bit保留且必须设为0。
  • Transient (T) flag设为 0 时,表示是由 Internet 编号机构 (IANA) 配置的永久性且众所周知的multicast address。设为 1 时,表示是一个暂时的 (非永久指派的) multicast address。
  • P flag的用途定义在RFC 3306。
  • R flag的用途定义在RFC 3956。

    Scope  IPv6 multicastaddress可以传送的范围。长度为 4 bits。内容如下:(routers利用以下定义来确保multicast封包不会跨出其可传送范围)

Group ID  用来识别不同的multicast group。该字段大小为 112 bits。

由于在 Group ID 中使用了 112 bits,可以拥有 2112个群组 ID。但是,考虑到 IPv6 multicast地址低序位32 bits对应到 Ethernet multicastMAC 地址低序位32 bits的方式,RFC 2373 建议从 IPv6 multicast地址的低序位 32 bits开始指定 Group ID,并将group ID其余的bits设为 0。透过只使用低序位32 bits,每个Group ID 均对应到唯一的 Ethernet multicastMAC 地址。如此可完全避免multicast封包影响到其它的nodes。

预先定义好的MULTICAST 地址

RFC 4291定义了以下众所皆知的multicast 地址。

保留的MULTICAST 地址:

FF00:0:0:0:0:0:0:0

FF01:0:0:0:0:0:0:0

FF02:0:0:0:0:0:0:0

FF03:0:0:0:0:0:0:0

FF04:0:0:0:0:0:0:0

FF05:0:0:0:0:0:0:0

FF06:0:0:0:0:0:0:0

FF07:0:0:0:0:0:0:0

FF08:0:0:0:0:0:0:0

FF09:0:0:0:0:0:0:0

FF0A:0:0:0:0:0:0:0

FF0B:0:0:0:0:0:0:0

FF0C:0:0:0:0:0:0:0

FF0D:0:0:0:0:0:0:0

FF0E:0:0:0:0:0:0:0

FF0F:0:0:0:0:0:0:0

以上multicast地址均保留,且永不指定给任何multicast group。

All Nodes Addresses:

scope 1(node-local)及2(link-local)。Group值为 1表示all nodes。

FF01:0:0:0:0:0:0:1

FF02:0:0:0:0:0:0:1

譬如:FF02:0:0:0:0:0:0:1表示在link的范围内,此multicast 封包接收者为所有的nodes。

请注意,由于FF02:0:0:0:0:0:0:1封包会传送到link上所有的nodes,实际上,它跟broadcast所造成的影响是等同的。IPv6用multicast取代broadcast的目的是把原先broadcast所造成的影响尽量降到最低,并非完全根绝使用broadcast功能。在Neighbor Discovery Protocol中,Unsolicited Router Advertisement及Unsolicited Neighbor Advertisement messages均使用FF02:0:0:0:0:0:0:1来发送封包。实际上这2 messages的发送对象正是link上所有的nodes。

此外,IPv4的broadcast封包传送限制在同一link内的范围,因此All Nodes Addresses的scope也只限于1(node-local)以及2(link-local)。

All Routers Addresses:

scope 1(node-local),2(link-local)及5(site-local)。Group值为 2表示all routers。

FF01:0:0:0:0:0:0:2

FF02:0:0:0:0:0:0:2

FF05:0:0:0:0:0:0:2

譬如:FF02:0:0:0:0:0:0:2表示在link的范围内,此multicast 封包接收者为所有的routers。FF05:0:0:0:0:0:0:2表示在site-local的范围内,此multicast 封包接收者为所有的routers。

Solicited-Node Addresses:

表示法为FF02:0:0:0:0:1:FFXX:XXXX。章节Solicited-Node Address将详细介绍。

对应 IPv6 Multicast Addresses 到 Ethernet Addresses

当从Ethernet link发送IPv6 multicast封包时,对应的目的MAC address的格式为33-33-mm-mm-mm-mm,其中mm-mm-mm-mmIPv6 multicast address的最后32 bits值。

Ethernet网络卡有一个MAC 地址表,而且这个MAC地址表的内容可动态设置。当接收到一个Ethernet frame的目的MAC address与MAC地址表任何一个地址相同时,就会把这个Ethernet frame传送给上层做进一步的处理。当接收到的Ethernet frame的目标MAC address不符合MAC 地址表任何地址时,则丢弃这个Ethernet frame。基本上,每个MAC 地址表会有下列的MAC addresses:

  • Broadcast MAC Address  即MAC地址FF:FF:FF:FF:FF:FF。可能直接加在MAC地址表中,或者用另外一个flag来设定是否接收Broadcast MAC address。
  • Unicast MAC Address  此MAC地址是网络卡出厂时就设定好的,它是独一无二的MAC address且不可更改,其目的是防止跟其它的网络卡的Unicast MAC address冲突。所有指派给网络卡上IP层的IPv6 unicastaddresses(包含Global, Link-local, unique local及anycast)都用此Unicast MAC address来接收Ethernet frame,并且发送Ethernet frame时,以它为来源MAC地址。
  • Multicast MACAddress  除了取代IPv4原有broadcast功能的multicast addresses以外,一般都是动态加入到MAC 地址表或从MAC 地址表移除。当application layer加入某个IPv6 multicast address时,系统就会把对应的multicast MAC address加入MAC 地址表。反之,当应用程序停止聆听某个IPv6 multicast address时,就会把对应的multicast MAC address从MAC 地址表中移除。

    此外,一般网络卡可以设定2种接收模式如下:

  1. Normal Mode  一般模式。即利用MAC地址表来决定接收到的Ethernet frame的去留。此模式适用在一般的Host。
  2. Promiscuous Mode  混杂模式。不做目的MAC的比对,此模式下直接将所有接收到的Ethernet frames传送给上层做进一步处理。此模式适用在router或其它特殊设备。当使用工具sniffer监看网络上的所有封包时也是启动此种模式。

IPv6 Anycast Addresses(任一传送)

一个识别地址指定给1到多个interfaces。目的地址为anycast address的IPV6封包将被传送到最邻近且具有这个地址身份的interface。“最邻近” interface是指路由距离上最近的interface。因为封包只被传送到这些interfaces中的其中一个,所以称为anycast。

每个不同的anycast address对应某特定的服务,服务内容视应用需求而定,并且是预先定义好的。目前anycast只能指定给router,所有被指定到同一个anycast address的routers都将提供相同的特定服务。譬如电话号码110,119或104查号台,这些服务台散布在全国各地并且提供相同的服务,相当类似anycast的应用概念。Mobile IPv6章节里将介绍anycast address的实际应用例子,届时读者对这个既新颖又抽象的anycast addresses会有更深一层的认识。

Anycast 地址取自于unicast 地址空间而来,所以具有与unicast相同的scope 属性(即Global,link-local或unique local)。由于anycast取自unicast地址空间,两者的格式完全一样,从格式语法上无法区别是anycast或unicast。当某个unicast地址被指定给1个以上的interfaces时,它就变成anycast地址,而且必须预先声明它是个anycast地址。譬如:电话号码110,119等都是预先经过明确公告,大众才会知道这些特殊号码的用途。

Anycast addresses不能当来源地址,也不能指定给hosts。

Solicited-Node Address(请求节点地址)

此类地址为前缀FF02:0:0:0:0:1:FF00::/104,与unicast或anycast地址的低序24 bits所合并形成的multicast地址,其目的用在解析邻近node的MAC地址。IPv4 ARP用broadcast解析邻近node的MAC地址,总是影响到所有邻近的nodes。而IPv6 Neighbor Discovery利用Solicited-Node Address取代broadcast,把这种影响降到非常低。例如:4037::01:800:200E:8C6C对应的Solicited-Node Address为FF02::1:FF0E:8C6C。只有地址的低序24 bits为0E:8C6C的nodes才会受到影响,将造成影响的几率降到非常低。

章节Neighbor Discovery将介绍如何利用Solicited-Node Addresses来解析邻近node的MAC地址。

Node需要配置的IPv6地址

以下是host需要配置的IPv6地址:

  • Link-Local Addressfor each interface  每个interface都必须自行配置1个link-local地址。这是最基本也是第一个必须先配置的地址,有了link-local地址才能配置后续的其它地址。例如:assigned unicast Addresses及所有unicast address映像的Solicited-Node Multicast Address。
  • Unicast Addresses  透过routers或者DHCPv6 server,配置global unicast或unique local unicast地址。这2种地址可别分配置0到多个。
  • Loopback Address
  • All-Nodes MulticastAddresses  即FF01:0:0:0:0:0:0:1和FF02:0:0:0:0:0:0:1。
  • Solicited-NodeMulticast Address  所有配置到的unicast地址所映像的Solicited-Node Multicast地址。
  • Multicast Addresses  所有host欲聆听的multicast地址,此乃动态任意join或leave的multicast地址。

Router需要配置的IPv6地址

Router除了需要配置host所有的地址以外,还需要配置以下IPv6地址:

  • Anycast addresses  所有router配置到的anycast addresses及所映像的Solicited-Node Multicast地址。
  • All-RoutersMulticast Addresses 

    FF01:0:0:0:0:0:0:2

    FF02:0:0:0:0:0:0:2

    FF05:0:0:0:0:0:0:2

IPv6 Interface Identifiers

Interface ID用来识别link上不同的interfaces,所以它在同一link上必须是独一无二的。此外,有些生成Interface ID的方法中,所配置的Interface ID在整个IPv6全局里也可能是独一无二的。Interface ID使用固定64 bits长度的主要目的是为了能映像48 bits MAC地址,也能映像IEEE 1394的64 bits MAC地址和未来的网络link layer地址。由于MAC地址是唯一的,映像出的Interface ID也同样具有唯一性。

Interface ID可以由以下几种方式来配置:

  • 在RFC 4291中定义,可以从Extended Unique Identifier (EUI)-64配置Interface ID。由于此种配置方法是一对一的映射,从Interface ID可以反推到映像的实际MAC address,进而得知与interface或主机相关的讯息,不具隐秘性。
  • 在RFC 4941中定义,可以临时分配,随机产生Interface ID。这种随机配置的方法,可以提供隐秘匿名的需求。
  • 透过DHCPv6,动态配置IPv6地址(包含Interface ID)。
  • 在RFC 5072中定义,可以基于link-layer address或serial number来配置Interface ID。也可以在PPP产生联机时随机配置Interface ID。

以EUI-64配置 INTERFACE ID

IEEE 802 地址格式

IEEE 802使用48 bits地址,它由24 bits(前3个bytes)的公司ID和24 bits(后3个bytes)的扩展ID组成。制造每个网络卡时,组合公司ID及224范围内的扩展ID,即产生一个全局唯一的48 bits地址。此地址称为硬件地址或者MAC地址。

公司ID的格式如下:

  • “c” bits为公司ID。能申请的公司ID数可多达222.
  • “u” bit为Universal/Local (U/L) bit。值为0代表MAC是全局唯一,值为1代表MAC是本地管理(不具全局唯一性,只能区域性使用此MAC地址)。
  • “g” bit 为Individual/Group (I/G) bit。此bit是预留来区分unicast及multicast地址。值为0代表unicast地址,值为1代表multicast地址。

网络适配器的MAC出厂设定值:U/L及I/G bits皆设为0。

IEEE EUI-64 地址

前3个bytes的公司ID格式与IEEE 802完全相同,但扩展ID的长度是40 bits (5 bytes)。

IEEE 802地址转换成IEEE EUI-64地址的方法:

将16 bits值 0xFFFE置入公司ID及扩展ID之间。

IEEE EUI-64地址转换成Interface ID的方法:

将IEEE EUI-64地址的U/L bit取1的补码。如果U/L bit为1,则设为0。如果为0,则设为1。

IEEE 802地址转换成INTERFACE ID的方法:

先将IEEE 802转换成EUI-64,再将EUI-64转换成Interface ID。

参考文件

RFC
3306    Unicast-Prefix-based
IPv6 Multicast

RFC
3587    IPv6
Global Unicast Address Format

RFC
4193    Unique
Local IPv6 Unicast Addresses

RFC
4291    IPv6
Addressing Architecture

时间: 2024-11-07 07:46:01

IPv6 简介以及位址介绍的相关文章

57、IPv6简介及基础配置

1.IPv6简介 IPv6地址长度为128位,地址总共2^128个. IPv6地址格式:x:x:x:x:x:x:x:x,其中x为16进制. IPv6简化: 2001:0DB8:010F:0001:0000:0000:0000:0D0C 去掉前导0 2001: DB8:10F:   1:   0:   0:   0: D0C 连续多个0可以用::代替 2001: DB8:10F:   1         ::      D0C 2001:0DB8:0000:0000:FFFF:0000:0000:

CloudStack(一)简介及相关理论介绍

简介 CloudStack(cloudstack.apache.org)是IaaS类型云计算的一种开源解决方案,同类的解决方案有OpenStack.OpenNebula等,CloudStack是以java语言所研发并具有高可用性.可扩展性.丰富的UI功能.Hypervisor 的多样性等等..(更多请见http://www.cloudstack-china.org/2013/11/2702.html),它可以帮助用户利用自己的硬件提供类似于Amazon EC2那样的公共云服务.CloudStac

MAC(Media Access Control)地址,或称为 MAC位址、硬件位址,用来定义网络设备的位置。在OSI模型中,第三层网络层负责 IP地址,第二层

http://baike.baidu.com/view/69334.htm MAC(Media Access Control)地址,或称为 MAC位址.硬件位址,用来定义网络设备的位置.在OSI模型中,第三层网络层负责 IP地址,第二层数据链路层则负责 MAC位址.因此一个主机会有一个IP地址,而每个网络位置会有一个专属于它的MAC位址. MAC(Medium/Media Access Control)地址,或称为 MAC地址.物理地址,用来表示互联网上每一个站点的标识符,采用十六进制数表示,共

angular简介和其特点介绍

这篇文章主要介绍了angular简介和其特点介绍,本文讲解了关于和jquery的比较.关于适用场合.关于UI的结合.关于angularjs的特点等内容,需要的朋友可以参考下以前开发(web或者移动端)前端主要使用jQuery+原生js,如果使用某些前端UI框架的话,它自己还可能提供一些API可以使用.而且目前很多UI框架都是基于jQuery的,所以说一下由jQuery跨到angularjs跨度较大,研究了一段时间的angularjs ,下面从整体上说说感受吧:     关于和jquery的比较

angular简介和其特点介绍(上)

这篇文章主要介绍了angular简介和其特点介绍,本文讲解了关于和jquery的比较.关于适用场合.关于UI的结合.关于angularjs的特点等内容,需要的朋友可以参考下以前开发(web或者移动端)前端主要使用jQuery+原生js,如果使用某些前端UI框架的话,它自己还可能提供一些API可以使用.而且目前很多UI框架都是基于jQuery的,所以说一下由jQuery跨到angularjs跨度较大,研究了一段时间的angularjs ,下面从整体上说说感受吧: 关于和jquery的比较 首先an

<13>【了解】计算机中的进制+【理解】原码反码补码基本概念+【理解】为什么要引入反码、补码?+【掌握】位运算符介绍及使用+位运算应用:编程实现10进制转2进制

1 #include <stdio.h> 2 3 int main(int argc, const char * argv[]) { 4 5 //定义10进制数,打印出10.8.16进制的值 6 int a = 13; 7 printf("%d\n",a); 8 printf("%o\n",a); 9 printf("%x\n",a); 10 11 //int 64 4个字节 12 int b = 0b0000000000000000

loadrunner对异步,IPv6和64位协议支持汇总

下表显示了loadrunner12以上版本对异步,IPv6和64位录制的协议支持 原文地址:https://blog.51cto.com/372550/2422223

IPv6简介

https://segmentfault.com/a/1190000008794218 IPv6的优点 更大的地址空间 名字叫IPv6,但它的长度并不是64位,而是128位,总的地址空间大约为3.4*1038,一个亿是10的8次方,那么IPv6就有340万亿亿亿亿个地址(4个亿连一起),所以说给地球上的每一粒沙子分配一个IP地址不是在吹牛,是真可以. 可以参考这篇文章和这篇文章,里面提到地球上所有沙滩的沙子大约有7.5*1018粒,这个值跟IPv6的1038相差了很多个数量级,就算加上沙漠等其它

c++位运算符介绍

下面是C/C++位操作运算符列表,其中运算符优先级为从上到下递减,但<<,>>优先级相同. C/C++位操作运算符 操作符 功能 用法 ~ 位求反 ~expr << 左移 expr1 << expr2 >> 右移 expr1 >> expr2 & 位与 expr1 & expr2 ^ 位异或 expr1 ^ expr2 | 位或 expr1 | expr2 位简介 位是数据存储的最小单位.在 计算机中的二进制数系统中,