网络层
该内容是计算机网络中最重要的一章了(对于考试来说)。
核心考点
- 子网划分和无分类编制CIDR
- 路由与转发,各种路由算法
- IP地址的分类、IP数据报格式、NAT
- 有时候根本没有明确定义过这些协议的在网络体系结构中的位置。学习协议的关键是掌握它们在网络中的功能和如果应用它们,至于它们到底是那一层的协议,其实是不重要的。
网络层的功能
- 虚拟互联网也就是逻辑互联网,意思是说互连起来的各种物理网络的异构性本来就是客观存在的,但是利用协议可以使这些性能各异的网络让用户看起来好像是一个统一的网络。这种协议就是网络层中的重点IP协议。
真实的互联网
- IP协议 “尽最大努力交付”的含义:
- 不保证发送出来的IP数据报一定无差错地交付到目的主机。
- 不保证发送出来的IP数据报都在某一规定的时间内交付到目的主机。
- 不保证发送出来的IP数据报一定按发送时的顺序交付到目的主机。
- 不保证发送出来的IP数据报不会重复交付到目的主机。
- 不故意丢弃IP数据报。丢弃IP数据报的情况大致有:路由器检测出错误;网络中通信量过大,路由器或目的主机中缓存已无空闲空间
检测出IP数据报有误的话,就会将该数据报丢弃。因此交付到目的主机的一定是没有差错的(或者说没有检测出错误的)。 如果要保证数据可靠地交付给目的地,则需要由高层来负责解决这一个问题。
路由
路由与转发
路由器的主要功能包括路由选择(确定哪一条路径)与分组转发(当分组到达时所采用的的动作).
- 路由选择: 根据算法确定一个进来的分组应该被传送到哪一条输出路线上。
- 分组转发:路由器根据转发表将用的IP数据报从合适的端口转发出去。
路由表示根据路由选择算法得出的,而转发表是从路由表得出的。在讨论路由选择的时候,往往不区分转发表和路由表。
- 路由表中只给出到目的网络的下一跳转路由器的IP地址,一直跳到目的网络,这样的好处是:使得路由选择成为动态的。
路由算法
分为两大类即静态路由选择策略和动态路由选择策略。动态路由算法又分为两种基本类型:距离-向量路由算法 和链路状态路由算法。
- 距离-向量路由算法:距离向量路由算法要求每个路由器维护一张距离表和路由表,并在表中给出到每个已知目的地的最短距离和路径。在距离表中,列表示和这个节点直接相连的邻居,表中的行表示目的节点,而表中的元素表示“距离”,“距离”可以是跳跃次数、时延或丢失的数据包的数量等。距离向量路由算法通过路由表之间周期性的交换数据来更新网络拓扑结构。
- 链路状态路由算法:今天,链路状态路由算法的变种算法——IS-IS或者OSPF已经称为大型网络或Internet应用最为广泛的路由算法。
该算法的设计思路非常简单,对于每个路由器来说,需要完成以下步骤:
①发现它的邻居节点,并了解其网络地址
②设置到每个邻居节点的距离或者成本度量值
③构造一个包含所有刚刚获知的链路信息包
④将这个包发送给所有其他的路由器,并接收来自所有其他路由器的信息包
⑤计算出到每个其他路由器的最短路径
实际上,该算法将完整的拓扑结构分发给了每一个路由器。然后每个路由器运行Dijkstra算法就可以找到从本地到每一个其他路由器的最短路径。
层次路由
- 指的是采用分层次的路由选择协议。
- 自治系统不是一个局域网,里边包含很多局域网。
- 故事助记:
将整个世界看作一个因特网,每个国家是不同的自治系统,而每个国家又分为许多省(区域),每个省的人只懂得自己省的风俗(每个路由器只知道本区域的完整网络拓扑)。但是各个省之间是需要互相交流的,这样就在每个省选出一个省长(区域边界路由器),这样该省的百姓就可以将信息通过省长传给另外一个省长(通过骨干区域)。当然有时候国家主席还要给各个省长开会,相互交流信息,所以需要一个组织(骨干区域,取名为0.0.0.0),该组织包括各省长和国家主席。所以说省长需要演好两个角色,一个是骨干区域的成员,另一个是区域边界成员。当然这样是不够的,如果两个国家互访(不同自治系统交换信息),这时就派主席去和外国交流(可以是骨干区域的任何一个路由器),此时主席可以看成是自治系统边界路由器。
IPv4
IPv4分组
在 TCP/IP 协议中,使用 IP 协议传输数据的包被称为 IP 数据包,每个数据包都包含 IP 协议规定的内容。IP 协议规定的这些内容被称为 IP 数据报文(IP Datagram)或者 IP 数据报。
IP 数据报文由首部(称为报头)和数据两部分组成。首部的前一部分是固定长度,共20 字节
,是所有 IP 数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。
每个 IP 数据报都以一个 IP 报头开始。源计算机构造这个 IP 报头,而目的计算机利用 IP 报头中封装的信息处理数据。IP 报头中包含大量的信息,如源 IP 地址、目的 IP 地址、数据报长度、IP 版本号等。每个信息都被称为一个字段。
P 数据报头字段如图所示。
IP 报头的最小长度为 20 字节,上图中每个字段的含义如下:
- 版本(version)
占 4 位,表示 IP 协议的版本。通信双方使用的 IP 协议版本必须一致。目前广泛使用的IP协议版本号为 4,即 IPv4。 - 首部长度(网际报头长度IHL)
占 4 位,可表示的最大十进制数值是 15。这个字段所表示数的单位是 32 位字长(1 个 32 位字长是 4 字节)。因此,当 IP 的首部长度为 1111 时(即十进制的 15),首部长度就达到 60 字节。当 IP 分组的首部长度不是 4 字节的整数倍时,必须利用最后的填充字段加以填充。
数据部分永远在 4 字节的整数倍开始,这样在实现 IP 协议时较为方便。首部长度限制为 60 字节的缺点是,长度有时可能不够用,之所以限制长度为 60 字节,是希望用户尽量减少开销。最常用的首部长度就是 20 字节(即首部长度为 0101),这时不使用任何选项。 - 区分服务(tos)
也被称为服务类型&