一.概述:

  网络层的主要任务是实现网络互联,进而实现数据包在各网络之间的传输.

  在TCP/IP架构中,网络层也称网际层.

二.网络层的两种服务

  1.面向连接的虚电路服务

    可靠通信由网络来保证;必须建立网络层的连接-虚电路VC(Virtual Circuit);通信双方沿着已建立的虚电路发报分组;目的主机的地址仅在连接建立阶段使用,之后每个分组的首部只需携带一条虚电路的编号;通信结束后,需要释放之前所建立的虚电路.

  2.无连接的数据报服务

    可靠通信有用户主机来保证;不需要建立网络层的连接;每个分组走不同的路径;每个分组的首部必须携带目的主机的完整地址;因特网采用这种方式.

三.IP地址

  1.IPv4地址概述:

    IPv4地址是为因特网上每一台主机分配的全世界唯一的32比特的标识符.

    IPv4地址由因特网名字和数字分配机构ICANN(Internet Corporation for Assingned Names and Numbers)进行分配.

    IPv4地址采用点分十进制表示方法方便用户使用.

  2.分类编址的IPv4地址

    1)A类:8位网络号 + 24位主机号

      第1位网络号固定0;最小网络号0,保留不指派;最大网络号127,作为本地环回测试地址,不指派;可指派数量为27-2 = 126(除去最小网络号0和最大网络号127),每个网络中可分配的IP地址数量为224-2 = 16777214(除去全0的网络地址和全1的广播地址)

    2)B类:16位网络号 + 16位主机号

      前两位网络号固定为10;最小可指派网络号为128.0;最大可指派网络号为191.255;可指派网络数量214 = 16384,每个网络中可分配IP地址数为216-2 = 65534(除去全0的主机号和全1的广播地址).

    3)C类:24位网络号 + 8位主机号

      前3位网络号固定为110;最小可指派网络号为192.0.0;最大可指派网络号为223.255.255;可指派网络数量为221 = 2097152,每个网络中可分配的IP地址数为28-2 = 254(除去全0的主机号和全1的广播地址).

    4)D类:多播地址,最高4位固定为1110

    5)E类:保留地址,最高4位固定为1111

    注意:在旧版的资料中指出B类网络地址128.0和C类网络地址192.0.0是保留网络号,但根据2002年9月发表的RFC 3330文档,这两个地址已经可以分配,且128.0已经分配出去.

  3.划分子网的IPv4地址

    在实际分配IPv4地址时,经常会出现浪费的情况,如某单位主机有255台,按照主机数量计算应该分配到B类的地址,但是一个B类地址的可分配IP地址数量为65534,绝大部分地址该单位不会使用,其他非该单位主机也不能使用,存在大量浪费.所以我们可以使用子网划分的方式解决这个问题.

    划分IPv4地址时,使用地址中主机号的前几位作为子网号,剩余主机号作为实际的主机号.可以看做IPv4地址的实际网络号为原来的网络号 + 子网号.我们使用子网掩码和IPv4地址进行逻辑与运算的方式计算实际的网络号.如子网掩码为255.255.128.0,代表该IPv4地址是B类IP地址,主机号中使用1位作为子网掩码,划分了两个子网.

  4.无分类编址的IPv4地址

    1993年,IETF发布了无分类域间路由选择CIDR(Classless Inter-Domain Routing)的RFC文档: RFC 1517~1519和1520,采用无分类编址的方法,以便更有效地分配IPv4的地址空间,并可以在IPv6使用之前允许因特网的规模继续增长.

    CIDR使用斜线记法,如128.14.35.7/20表示网络前缀占用20比特,主机编号占用剩余12比特.

  5.IPv4地址的应用规划

    1)定长的子网掩码:每个子网分得的IP地址数量相同,容易造成IP地址的浪费.

    2)变长的子网掩码:每个子网分得的IP地址数量根据实际需求得到,划分更为合理.

 四.IP数据报的发送和转发

  在源主机发送一条IP数据报前,会通过目标主机IP地址和自己的子网掩码做与运算得到一个网络地址(不一定是目标主机的网络地址),如果这个网络地址和当前主机的网络地址相同,目标主机和源主机就处在同一网络中,IP数据报就直接发往交换机由交换机转发;如果这个网络地址和当前主机的网络地址不相同,则目标主机和当前主机就不在同一网络中,需要由路由器做转发,IP数据报就会经交换机发往下一跳路由器,再由路由器转发往下一个路由器或目标主机.值的注意的是,当发送的IP数据报是本地网络广播时,路由器还有隔离网络的作用,不会将广播转发出去,否则会导致广播风暴.

五.静态路由配置及其可能产生的路由环路

  1.静态路由配置:用户或网络管理员使用路由器的相关命令给路由器人工配置路由表.静态路由配置一般在规模较小的网络环境中使用,可能产生网络环路问题.

  2.路由环路问题:由于错误的静态路由配置导致IP数据报在网络中永久转发(转发链成了一个环).解决路由环路问题的方法是在IP数据报的首部设置生存时间TTL字段,每次被转发TTL值减1.

六.路由选择协议

  1.静态路由选择:人工为路由器添加网络路由\默认路由\特定主机路由\黑洞路由等配置.一般只在小规模网络中采用静态路由.

  2.动态路由选择:由路由器自动添加路由相关配置.因特网采用动态路由选择.

  3.内部网关协议

    1)路由信息协议RIP

      基于距离向量.RIP要求自治系统内每一个路由器都要维护从它自己到自治系统内其他每一个网络的距离记录.路由器到直连网络的距离定义为1,路由器到非直连网络的距离定义为所经过的路由器数加1,允许的最大距离为16,大于16的距离记为不可达.因此,RIP只适用于小型互联网.当到达同一目的网络有多条"距离相等"的路由时,可以进行等价负载均衡.RIP会和相邻路由器周期性交换路由表.

    2)内部网关路由协议IGRP

      基于距离向量.思科早期私有的协议,已被EIGRP取代.

    3)增强型内部网关路由协议EIGRP

      结合了距离向量和链路状态的混合型路由协议.

    4)开放式最短路径优先OSPF

      基于链路状态.适用了迪杰斯特拉算法运算最短路径.网络管理人员会决定本路由器到相邻路由器的"代价"(费用\时延\带宽等).链路状态指路由器和哪些路由器相邻及对应的"代价".OSPF相邻路由器之间通过交互问候分组,建立和维护邻居关系.问候分组封装在IP数据报中,发往组播地址224.0.0.5,发送周期10秒,40秒未收到邻居路由器的问候分组,则认为该邻居路由器不可达.每个路由器都会产生链路状态通告,包含直连网络的链路状态信息和邻居路由器的链路状态信息,各路由器的链路状态通告采用洪泛法转发同步,同步后路由器基于迪杰斯特拉算法计算得到个路径的最短路径.

    5)中间系统到中间系统IS-IS

      基于链路状态.

  4.外部网关协议

    边界网关协议BGP.在配置BGP时,每个自治系统的管理员要选择至少一个路由器作为该自治系统的"BGP发言人".不同系统的BGP发言人交换路由信息(TCP连接,端口179).BGP发言人需要交换网络可达性的信息,各BGP发言人再根据这些网络可达性信息计算一条合适的路径到达指定网络(不要求最优路径).

七.IPv4数据报的首部格式

  数据报由20字节固定部分和40字节可变部分组成.

  1.固定部分:包括4比特版本\4比特首部长度\1字节区分服务\2字节总长度\2字节标识\3比特标志\13比特片偏移\1字节生存时间\1字节协议\2字节首部检验和\4字节源IP地址\4字节目的IP地址.

    版本:IP版本,4代表IPv4.首部长度:数值乘以4得到数据报的首部长度,数据报首部会被强制填充到4字节的整数倍.区分服务:在旧标准中称为服务类型,一直未被使用.总长度:表示数据报的总长度(首部+数据载荷).标识\标志\片偏移:共同用于数据报分片.标识:一个长度过长的数据报会被分片,所有分片的表示相同.标志:3个比特分别表示是否允许分片\是否是最后一个分片\保留位(必须是0).片偏移:分片数据报的数据载荷部分在原数据报中的位置,以8字节为单位.生存时间:防止网络环路问题,以跳为单位.协议:数据部分是何种协议单元(ICMP\IGMP\TCP\UDP\IPv6\OSPF).首部检验和:检测首部在传输过程中是否出错.

  2.可选字段:用来支持排错\测量\安全等措施.可选字段很少使用.