第5章网络层-IP协议网络层IP协议主要负责IP寻址、路由选择和IP数据包的分割与组装,它是TCP/IP协议族中的主要网络层协议,与TCP协议结合组成整个因特网协议的核心协议。通常我们所说的IP地址都可以理解为符合IP协议的网络地址。本章主要介绍IP地址的结构和功能、如何对IP地址进行构建和归类、IP子网及路由,以及无类域间路由等方面的内容。本章学习要点:IP协议基础知识IP数据包格式*IP寻址技术子网及掩码IP路由选择无类域间路由特殊IP地址及相关命令5.1IP协议概述Internet上使用的一个关键的低层协议就是网际协议,也就通常所说的IP协议。IP协议是一种不可靠的无连接数据报服务——尽力传输服务。不对数据进行差错校验和跟踪,各个数据报独立传输。IP协议是TCP/IP协议族中的核心协议,提供了网络数据传送的最基本服务,同时也是实现网络互连的基本协议。TCP/IP协议簇真实的IP数据是怎么样的呢?看不懂怎么办???????5.2IP数据报格式IP数据报有两部分构成:IP首部和数据部分。下图所示为首部格式。普通的IP首部长为20个字节,除非含有选项字段。版本首部长度服务类型总长度标识标志片偏移寿命协议首部检验和源IP地址目的IP地址长度可变的选项字段填充数据…比特04816192431固定部分可变部分04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特数据部分首部传送IP数据报首部发送在前可变部分首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特数据部分首部传送IP数据报固定部分首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特数据部分首部传送IP数据报固定部分可变部分首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特固定部分可变部分版本——占4bit,指IP协议的版本目前的IP协议版本号为4(即IPv4)首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特固定部分可变部分首部长度——占4bit,可表示的最大数值是15个单位(一个单位为4字节)因此IP的首部长度的最大值是60字节。首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特固定部分可变部分服务类型——占8bit,用来获得更好的服务这个字段以前一直没有被人们使用服务类型8位用来获得更好的服务优先级DTRC未用01234567LowDelayHighThroughputHighReliabilityLowCostToS0ToS最多有一位置1ToS字段推荐值首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特固定部分可变部分总长度——占16bit,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535字节。总长度必须不超过最大传送单元MTU。首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特固定部分可变部分标识(identification)占16bit,它是一个计数器,用来产生数据报的标识。首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特固定部分可变部分标志(flag)占3bit,目前只有前两个比特有意义。标志字段的最低位是MF(MoreFragment)。MF1表示后面“还有分片”。MF0表示最后一个分片。标志字段中间的一位是DF(Don'tFragment)。只有当DF0时才允许分片。首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特固定部分可变部分片偏移(13bit)指出:较长的分组在分片后某片在原分组中的相对位置。片偏移以8个字节为偏移单位。偏移=0/8=0偏移=0/8=0偏移=1400/8=175偏移=2800/8=350140028003799279913993799需分片的数据报数据报片1首部数据部分共3800字节首部1首部2首部3字节0数据报片2数据报片314002800字节0IP数据报分片的举例首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特固定部分可变部分生存时间(8bit)记为TTL(TimeToLive),这是为了限制数据报在网络中的生存时间,其单位最初是秒,但为了方便,现在都用“跳数”作为TTL的单位。数据报每经过一个路由器,其TTL值就减1。首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特固定部分可变部分协议(8bit)字段指出此数据报携带的数据使用何种协议以便目的主机的IP层将数据部分上交给哪个处理过程运输层网络层首部TCPUDPICMPIGMPOSPF数据部分IP数据报协议字段指出应将数据部分交给哪一个进程常用的协议字段值是:UDP——17TCP——6ICMP——1IGMP——2BGP——3EGP——8IGP——9OSPF——89TP4——29首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特固定部分可变部分首部检验和(16bit)字段只检验数据报的首部不包括数据部分。这里不采用CRC检验码而采用简单的计算方法。发送端接收端16bit字116bit字2置为全0检验和16bit字n16bit反码算术运算求和……取反码数据报首部IP数据报16bit检验和16bit字116bit字216bit检验和16bit字n16bit反码算术运算求和16bit结果……取反码数据部分若结果为0,则保留;否则,丢弃该数据报数据部分不参与检验和的计算首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特固定部分可变部分源地址和目的地址都各占4字节IP数据报首部的可变部分IP首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。选项字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目。增加首部的可变部分是为了增加IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。实际上这些选项很少被使用。5.3IP寻址Internet工程任务组(IETF)—Internet和IP的设计师选择了适合于机器表示的数值来标识IP网络和主机,因此Internet中的每一个网络具有自己独一无二的数值地址即网络地址,网络管理人员要确信网络中的每一台主机有与之对应的惟一的主机编号。5.3.1IP寻址基础知识计算机使用32位二进制表示IP地址,但为了更容易记忆,使用十进制表示,并采用n.n.n.n的形式,如:202.101.22.110;其中n的取值范围是0~255。每个数字n用二进制表示是一个8位数字,称为8位位组。MAC地址(位于数据链路层)一般位于网卡中,用于标识网络设备,控制对网络介质的访问。网络地址位于网络层。因为一个网络地址可以根据逻辑分配给任意一个网络设备,所以又叫逻辑地址。网络地址通常可分成网络号和主机号两部分,用于标识网络和该网络中的设备。5.3.2二进制和十进制00000000=010000000=12811000000=19211100000=22411110000=24011111000=24811111100=25211111110=25411111111=25512864321684215.3.3IP编址A类:B类:C类:D类:E类:0网络号主机号主机号主机号10网络号网络号主机号主机号110网络号网络号网络号主机号8位8位8位8位11110保留将来使用1110组播地址网络号24bit主机号24bit网络号16bit网络号8bitIP地址中的网络号字段和主机号字段0A类地址主机号16bitB类地址C类地址011主机号8bitD类地址1110组播地址E类地址保留为今后使用1111001网络号24bit主机号24bit网络号16bit网络号8bitIP地址中的网络号字段和主机号字段0A类地址主机号16bitB类地址C类地址011主机号8bitD类地址1110多播地址E类地址保留为今后使用1111001A类地址的网络号字段网络号为1字节网络号24bit主机号24bit网络号16bit网络号8bitIP地址中的网络号字段和主机号字段0A类地址主机号16bitB类地址C类地址011主机号8bitD类地址1110组播地址E类地址保留为今后使用1111001B类地址的网络号字段网络号为2字节网络号24bit主机号24bit网络号16bit网络号8bitIP地址中的网络号字段和主机号字段0A类地址主机号16bitB类地址C类地址011主机号8bitD类地址1110组播地址E类地址保留为今后使用1111001C类地址的网络号字段网络号为3字节网络号24bit主机号24bit网络号16bit网络号8bitIP地址中的网络号字段和主机号字段0A类地址主机号16bitB类地址C类地址011主机号8bitD类地址1110组播地址E类地址保留为今后使用1111001D类地址是多播地址网络号24bit主机号24bit网络号16bit网络号8bitIP地址中的网络号字段和主机号字段0A类地址主机号16bitB类地址C类地址011主机号8bitD类地址1110组播地址E类地址保留为今后使用1111001E类地址保留为今后使用各类IP地址的范围1A:位0NNNNNNNHostHostHost891617242532范围(1-126)1B:10NNNNNNNetworkHostHost891617242532范围(128-191)1C:110NNNNNNetworkNetworkHost891617242532范围(192-223)189161724253211111111可用的主机地址17216001010110000010000000000000000000016151413121110987654321NetworkHost000000000000000111111111111111111111111111111110......000000000000001111111101123655346553565536-...265534N2N-2=216-2=65534特殊IP地址网络地址主机号部分为全0,用来表示一个网络,