LwIP Application Developers Manual3---链路层和网络层协议之IPV6,ICMP,IGMP

1.前言

本文主要讲述链路层和网络层的协议IPV6,ICMP

2.IPV6

2.1 IPV6特性

IPv6是IPv4的更新。其最显著的差别在于地址空间由32位转换成128位

2.2 从应用的角度看IPv6

lwIP正在加入IPv6,直到版本为1.4.x才可以使用IPv4或IPv6,但是并不能同时使用IPv4和IPv6。

双协议栈的代码已经在当前的开发版本中(可以通过git下载)。能同时支持双协议栈的代码版本号将会为1.5.0。一些人认为LwIP的IPv6已经非常稳定了。

开发版本可以从下面的地址下载:

2.3 IPv6 support history in lwIPLwIP Application Developers Manual3---链路层和网络层协议之IPV6,ICMP,IGMP

0,6.0
See: http://savannah.nongnu.org/patch/?7409

2.4 外部参考文献

  • Wikipedia:IPv6
  • WireShark:IPv6
  • RFC 2460 - Internet Protocol, Version 6, Specification
  • RFC 2461 - Neighbor Discovery for IP Version 6 (IPv6)
  • RFC 2462 - IPv6 Stateless Address Autoconfiguration
  • RFC 4443 - ICMPv6
  • RFC 2464 - Transmission of IPv6 Packets over Ethernet Networks
  • RFC 4291 - IP Version 6 Addressing Architecture
  • RFC 3587 - IPv6 Global Unicast Address Format
  • RFC 3493 - Basic Socket Interface Extensions for IPv6
  • RFC 3542 - Advanced Sockets Application Program Interface (API) for IPv6
  • RFC 4038 - Application Aspects of IPv6 Transition
  • RFC 3484 - Default Address Selection for Internet Protocol version 6 (IPv6)

3. ICMP

3.1 ICMP特性

ICMP(Internet Control Message Protocol)网际控制报文协议。IP协议使用该协议控制消息

LwIP中的ICMP实现了3种协议:

  • Echo Replay(0)或者“ping”

客户端应答ping,并以IP的格式回传数据。

  • Destination Unreachable(3)

指示设备不能转发IP数据包。比如,当一个寻址到该设备的数据包需要一个协议,但该设备并不支持该协议,设备会发送错误的信息  。

  • Time exceeded(11)

这是一个设备已经放弃该包的指示,由于TTL(time to live)已经减小到0。

3.2 从应用的角度看ICMP

lwIP自身可以产生ICMP消息,并处理ICMP消息。因此应用程序不要与ICMP的代码产生作用。如果用户希望产生自己的ping,则可以把数据包转换成IP格式的数据包并通过IP模块发送。

3.3 lwIP支持ICMP的历史记录

支持ICMPv4、echo(0)、destination unreachable(3)和exceeded(11)

3.4 外部参考链接

4.IGMP

4.1 从应用的角度看ICMP

4.2 lwIP支持ICMP的历史记录

1.2Unspecified.

4.3 外部参考链接

  • WireShark: IGMP
  • RFC 988 Host Extensions for IP Multicasting - describes the obsolete "version 0" of IGMP
  • RFC 1112 Host Extensions for IP Multicasting - describes version 1 of IGMP
  • RFC 2236 Internet Group Management Protocol, Version 2
  • RFC 3376 Internet Group Management Protocol, Version 3

4. 参考文献

上一篇:APP测试功能点总结


下一篇:org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of com.*.Paper.totalTime