文章目录
- 一. 网络层的概述
- 二. 网络设备和OSI参考模型的关系
- 三. 网络层协议
- 四. IP数据包的结构
- 五. IP层转发分组的流程
- 七. ABCDE类网络地址
- 八. 子网划分
- 九. 互联网的路由选择协议
- 十. 网络层的设备:路由器
- 十一. VPN与NAT
- 十二. IP多播
- 十三. 移动IP
- 十四. 下一代的网际协议IPv6
- 十五. 多协议标签交换(MPLS)
一. 网络层的概述
1. 网络层的核心功能:分组转发和路由选择
网络层关注:如何将分组从源主机沿着网络路径送达到目的主机
方法:
为了将分组送到目的主机,可能沿路要进过许多跳(Hop)中间路由器
所以网络层必须知道整个网络的拓扑结构,并在拓扑结构中选择适当的转发路径
同时网络层还必须仔细存在路由器,避免发生某些通信链路或路由器负载过重,其他则空闲的状况
(1). 分组转发
1. 用法
当一个分组到达某个路由器的一条输入链路时,该路由器必须将该分组转发到适当的输出链路
2. 原理
在每一个路由器中需要有一个转发表,路由器转发分组的时候,根据到达分组首部中的转发标识在转发表在转发表中查询。
查询该转发表的结果指出了该分组将被转发的路由器的链路接口。
分组首部中的转发标识可能是该分组的目的地址或该分组所属连接的指示
(2). 路由选择
1. 定义
分组从发送方流向接收方,网络层必须决定这些分组所采用的路由或路径
2. 结果
生成供分组转发使用的转发表
实际上,路由选择直接生成的是路由表,然后由路由表生成最终的转发表
3. 方式
集中式
分布式
2. 网络层提供的两种服务
在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向连接”还是“无连接”)曾引起了长期的争论。
争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?
(1). 面向连接服务
1. 虚电路网络
在网络层提供面向连接服务的计算机网络被成为虚电路网络
①一条虚电路的组成如下:
- 源和目的主机之间的路径(即一系列链路和路由器);
- VC号,沿着该路径的每段链路一个号码;
- 沿着该路径的每台路由器(即虚电路交换机,这里我们统一使用路由器这一名称)中的转发表表项
属于一条虚电路的分组将在它的首部携带一个VC号。
2. 来源
有些人认为应当借助于电信网的成功经验,让网络负责可靠交付。
大家知道,传统电信网的主要业务是提供电话服务。
电信网使用昂贵的程控交换机(其软件也非常复杂),用面向连接的通信方式,
使电信网络能够向用户(实际上就是电话机)提供可靠传输的服务。
因此他们认为,计算机网络也应模仿打电话所使用的面向连接的通信方式。
3. 过程
- 当两台计算机进行通信时,也应当先建立连接(但在分组交换中是建立一条虚电路VC (Virtual Circuit)R),以预留双方通信所需的一切网络资源。
- 然后双方就沿着已建立的虚电路发送分组。这样的分组的首部不需要填写完整的目的主机地址,而只需要填写这条虚电路的编号(一个不大的整数),因而减少了分组的开销。
- 这种通信方式如果再使用可靠传输的网络协议,就可使所发送的分组无差错按序到达终点,当然也不丢失、不重复。在通信结束后要释放建立的虚电路。
主机H和 H之间交换的分组都必须在事先建立的虚电路上传送。
(2). 无连接服务
1. 数据报网络
在网络层提供无连接服务的计算机网络被称为数据报网络
如今计算机网络主要采用这种方式
2. 来源
但互联网的先驱者却认为,电信网提供的端到端可靠传输的服务对电话业务无疑是很合适的,因为电信网的终端(电话机)非常简单,没有智能,也没有差错处理能力。因此电信网必须负责把用户电话机产生的话音信号可靠地传送到对方的电话机,使还原后的话音质量符合技术规范的要求。但计算机网络的端系统是有智能的计算机。计算机有很强的差错处理能力
3. 因特网采用的设计思路
- 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。(这里数据报指的是分组)
- 网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。
- 网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。
4. 尽最大努力交付的好处
- 由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比较)。
- 如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责(包括差错处理、流量控制等)。
- 采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。
- 因特网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。
(3). 虚电路服务与数据报服务的对比
2. 网络层的作用
负责在不同的网络之间(基于数据包的IP地址)尽力转发数据包,不负责丢包重传和接收顺序。
有点像送快递,一个人往另一个地方寄快递,每个快递走不同的路线,可能后发的先到了,也可能丢件了。但是网络层不管这些,只管寄快递
2. 数据包在互联网中的传送
这里的互联网特指Internet,Internet既有局域网,又有广域网,既有光纤,又有铜线,无线卫星,还有不同的协议,这是Internet复杂所在。
路由器是三层设备:因为能看到网络层的IP地址来选择路径。
3. 异构互联网络与虚拟互联网络
(1). 异构互联网
如果把全世界所有网络互连在一起进行通信,会遇到许多问题如:
- 不同的寻址方案
- 不同的最大分组长度
- 不同的网络接入机制
- 不同的超时控制
- 不同的差错恢复方法
- 不同的状态报告方法
- 不同的路由选择技术
- 不同的用户接入控制
- 不同的服务(面向连接服务和无连接服务)
- 不同的管理与控制方式
(2). 虚拟互联网络
-
没有一种单一的网络能够适应所有用户的需求,
所以TCP/IP体系在网络上采用做法是:在网络层采用标准化协议(IP协议)使互相连接的网络可以是异构的 -
那样就可以把互相连接的计算机网络看成虚拟互联网,IP协议使这些性能各异的网络在网络层看起来好像一个统一的网络
-
所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用 IP 协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。
互连网络是全球最大的网络,里面用到的设备和介质是各种各样,对于我们使用者来说,不用关心里面实现的技术细节,
所以我们可以把整个internet当做一个虚拟互连网络,只要我们输入正确的地址就可以相互通信。这样可以进行更好的分层管理。
二. 网络设备和OSI参考模型的关系
1. 网络互相连接起来要使用一些中间设备
中间设备又称为中间系统或中继(relay)系统
-
物理层中继系统:转发器(repeater)
又叫中继器
-
数据链路层中继系统:网桥或桥接器(bridge)
当中继系统是转发器或网桥时,一般并不称之为网络互连, 因为这仅仅是把一个网络扩大了,而这仍然是一个网络。
-
网络层中继系统:路由器(router)
互联网都是指用路由器进行互连的网络 路由器其实就是一台专用计算机,用来在互联网上进行路由选择
-
网络层以上的中继系统:网关(gateway)。
用来连接两个不兼容的系统需要在高层进行协议转换 网关由于比较复杂,目前使用得较少。 由于历史的原因,许多有关 TCP/IP 的文献将网络层使用的路由器称为网关。
1. 举例,PC4向PC3传输数据
PC:计算机;Hub:集线器;Switch:交换机;Router:路由器
(1). 发送端(封装):
(1). 应用层准备要传输的数据;
(2). 传输层把文件进行分段并编号;(数据段)
(3). 网络层把传输层的每一个数据包增加原IP地址和目标IP地址;(数据包)
(4). 数据链路层把每个数据加上MAC地址;
两种情况:(数据帧)
使用自己的子网掩码,判断自己和目标地址分别在哪个网段,
1. 若在同一个网段(不过路由器),通过ARP协议广播的方式得到目标IP地址的MAC地址,然后就能封装出一个数据帧;
2. 如果子网掩码不是一个网段(用与运算),通过ARP协议广播的方式得到路由器(网关)的MAC地址,
然后把数据通过交换机发送到路由器M2,因为M2和M3是点对点通信,没有别的主机,所以它们之间的MAC地址就是FF。
(5). 物理层把数据帧变成数字信号(bit流)
(2). 接收端(解封):
(1). 交换机Hub0接收bit流,能对数据进行存储转发。它根据数据帧的MAC地址,确定数据是从哪来的,要去哪。
(2). 路由器M2获取交换机的数据包,识别其中的IP地址,根据路由表选择出口,它无法识别数据段内容。
(3). 路由器M2到M3是点对点通信,遵守PPP协议。
(4). PC3收到bit流后,数据链路层发现MAC地址是自己的,去掉MAC地址给它的网络层,网络层去掉IP地址给传输层,传输层把数据给应用层,应用层把各个数据拼接起来。
2. 路由器/交换机/集线器会不会中病毒?
不会,路由器不能识别数据内容。它只负责信息的传递。但是病毒会影响网络设备。因为病毒会占用网络流量,导致其他设备忙着转发没用的数据包
三. 网络层协议
1. TCP/IP协议层次关系
ARP为IP服务,IP为ICMP/IGMP服务
IP协议:把数据包从一个网段转到另一个网段,就是用来选择路径用的。
网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一。与 IP 协议配套使用的还有四个协议:
- 地址解析协议 ARP (Address Resolution Protocol)
- 逆地址解析协议 RARP (Reverse Address Resolution Protocol)(已被淘汰)
- 网际控制报文协议 ICMP (Internet Control Message Protocol)
- 网际组管理协议 IGMP (Internet Group Management Protocol)
2. IP协议(又叫网际协议)
Internet Protectal,IP
(1). IP地址的发展
我们把整个因特网看成为一个单一的、抽象的网络。IP 地址就是给每个连接在因特网上的主机(或路由器)接口【一个主机或路由器可能有多个接口】分配一个在全世界范围是唯一的 32 位的标识符。
IP 地址现在由因特网名字与号码指派公司ICANN (Internet Corporation for Assigned Names and Numbers)进行分配
(2). IP地址的表示:点分十进制记法
对主机或路由器来说,IP地址都是32位的二进制代码。为了提高可读性,我们常常把32位的IP地址中的每8位插入一个空格(但在机器中并没有这样的空格)。为了便于书写,可用其等效的十进制数字表示,并且在这些数字之间加上一个点。这就叫做点分十进制记法(dotted decimal notation)。
(3). IP地址的编址方式发展阶段
1. 分类编址
这是最基本的编址方法,在 1981 年就通过了相应的标准协议。
一个网络号在整个互联网范围内必须是唯一的。一台主机号在它前面的网络号所指明的网络范围内必须是唯一的。由此可见,一个IP地址在整个互联网范围内是唯一的。
这里A类、B类和C类地址都是单播地址((一对一通信),是最常用的。
2. 划分子网
这是对最基本的编址方法的改进,其标准[RFC 950]在 1985 年通过。
从两级IP地址到三级IP地址
(1). 分类IP地址的缺点:
- IP 地址空间的利用率有时很低。
- 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。
- 两级的 IP 地址不够灵活。
(2). 划分子网的基本思路
(3). 举例理解:
(4). 子网掩码的概念
(5). 子网掩码的作用
(6). 划分子网的方法
(7). 举例理解划分子网求网络地址
3. 无分类编址CIDR(构成超网)
这是目前因特网所使用的编址方法。1993 年提出后很快就得到推广应用
(1). 来源
划分子网在一定程度上缓解了因特网在发展中遇到的困难。然而在 1992 年因特网仍然面临三个必须尽早解决的问题,这就是:
- B 类地址在 1992 年已分配了近一半,眼看就要在 1994 年 3 月全部分配完毕!
- 因特网主干网上的路由表中的项目数急剧增长(从几千个增长到几万个)。
- 整个 IPv4 的地址空间最终将全部耗尽。
1987 年,RFC 1009 就指明了在一个划分子网的网络中可同时使用几个不同的子网掩码。使用变长子网掩码 VLSM (Variable Length Subnet Mask)可进一步提高 IP 地址资源的利用率。
在 VLSM 的基础上又进一步研究出无分类编址方法,它的正式名字是无分类域间路由选择 CIDR (Classless Inter-Domain Routing)。
(2). CIDR 最主要的特点(使用网络前缀+斜线记法)
网络前缀:CIDR把32位IP地址分为两个部分,前面的部分是不定长的网络前缀,代替分类编址的网络号来指明网络。
(2). 地址掩码(子网掩码)
在分类编址中,给定一个IP地址,就确定了它的网络号和主机号。但在无分类编址中,由于网络前缀是不定长,IP地址本身并不能确定其网络前缀和主机号。
- 使用地址掩码(address mask)可以找出 IP 地址中的网络部分(网络前缀)。
- CIDR 虽然不使用子网了,但仍然使用“掩码” 或“子网掩码”这一名词。
为了更方便地进行路由选择,CIDR使用32位的地址掩码(address mask)。地址掩码由一串1和一串0组成,而1的个数就是网络前缀的长度。
默认子网掩码:
(3). CIDR斜线表示法
(4). CIDR 记法的其他形式
(5). 常用CIDR地址块+构成超网
从表可看出,每一个CIDR地址块中的地址数一定是2的整数次幂。除最后几行外,CIDR地址块都包含了多个C类地址(是一个C类地址的2的n次方倍,n是整数),这就是“构成超网”这一名词的来源。
(6). 最长前缀匹配
1. 来源
2. 解决办法
(7). 使用二叉线索查找路由表
(4). 常用的三种类别的IP地址(特殊的IP地址)
1. 环回测试地址
2. 网络地址+广播地址
3. 私有IP地址
把它们其中一个地址放到互联网上,路由器是无法识别的,它们只适用于在内部网络使用。
(5). IP地址的范围大小
(6). IP地址的特点
(7). 举例互联网中IP地址分布
-
在同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的。图中所示的网络号就是IP地址中的网络号字段的值,这也是文献中常见的一种表示方法。另一种表示方法是用主机号为全0的网络IP地址。
-
用网桥(它只在链路层工作)互连的网段仍然是一个局域网,只能有一个网络号。
-
路由器总是具有两个或两个以上的IP地址。即路由器的每一个接口都有一个不同网络号的IP地址。
-
当两个路由器直接相连时(例如通过一条租用线路),在连线两端的接口处,可以分配也可以不分配IP地址。如分配了IP地址,则这一段连线就构成了一种只包含一段线路的特殊“网络”(如图中的 N,N2和 N3)。之所以叫做“网络”是因为它有IP地址。但为了节省IP地址资源,对于这种仅由一段连线构成的特殊“网络”,现在也常常不分配IP地址。通常把这样的特殊网络叫做无编号网络(unnumbered network)或无名网络(anonymous network)[COME06]。
(8). IP地址与硬件地址的区别
下图说明了这两种地址的区别。
从层次的角度看,物理地址是数据链路层和物理层使用的地址,而IP地址是网络层和以上各层使用的地址,是一种逻辑地址(称P地址为逻辑地址是因为IP地址是用软件实现的)。
1. 发送数据理解
在发送数据时,数据从高层下到低层,然后才到通信链路上传输。使用IP地址的IP数据报一旦交给了数据链路层,就被封装成MAC 帧了。
MAC 帧在传送时使用的源地址和目的地址都是硬件地址,这两个硬件地址都写在MAC帧的首部中。
2. 接收数据理解
连接在通信链路上的设备(主机或路由器)在收到MAC 帧时,根据MAC 帧首部中的硬件地址决定收下或丢弃。只有在剥去MAC 帧的首部和尾部后把MAC层的数据上交给网络层后,网络层才能在IP数据报的首部中找到源IP地址和目的IP地址。
3. 总结
总之,IP地址放在IP数据报的首部,而硬件地址则放在MAC帧的首部。在网络层和网络层以上使用的是IP地址,而数据链路层及以下使用的是硬件地址。
当IP数据报放入数据链路层的MAC帧中以后,整个的IP数据报就成为MAC帧的数据,因而在数据链路层看不见数据报的IP地址。
4. 举例理解两者区别
注意一下几点:
2. ARP协议
(1). 来源
已经知道了一个机器(主机或路由器)的IP地址,需要找出其相应的硬件地址。地址解析协议ARP就是用来解决这样的问题的。
(2). ARP协议作用
(3). ARP协议的要点
每一台主机都设有一个ARP高速缓存(ARP cache),里面有本局域网上的各主机和路由器的IP地址到硬件地址的映射表,这些都是该主机目前知道的一些地址。
1. 主机怎样知道这些地址呢?
(1). 所找的主机和原主机在同一个局域网上
找的的话:
没找到就进行广播:
(2). 所找的主机和原主机在不同一个局域网上
ARP是解决同一个局域网上的主机或路由器的IP地址和MAC地址的映射关系。如果所找的主机和原主机不在同一个局域网上,那么就要通过ARP找一个位于本局域网上的某个路由器的MAC地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。
从IP地址到MAC地址的解析是自动进行的,主机的用户对这种地址解析过程是不知情的。
只要主机或路由器要和本网络上的另一个已知IP地址的主机或路由器进行通信,ARP协议就会自动地将该IP地址解析为链路层所需要的MAC地址。
(4). ARP协议的好处
(5). ARP映射地址设置生存时间
(6). 使用ARP的四种典型情况
(7). 为什么不直接使用硬件地址进行通信?
(8). 如何查看本电脑的arp缓存
将IP地址通过广播(本网段,不通过路由器,路由器隔绝广播),目标MAC地址是FF-FF-FF-FF-FF-FF,解析目标IP地址的MAC地址。
cmd中输入arp -a查看arp的缓存
3. RARP协议
只知道自己MAC地址就能获得其IP地址
通过RARP协议找出其IP地址。现在的DHCP 协议已经包含了RARP协议的功能。
(1). ARP欺骗/网络执法官/ARP防火墙-实验课
arp绑定命令:arp -s 本机地址 MAC地址
查看arp缓存:arp -a
清除缓存:本地连接—>修复
4. ICMP协议
(1). 网际控制报文协议作用和内容
概述:
- 为了提高 IP 数据报交付成功的机会,在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)。
- ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。
- ICMP 不是高层协议,而是 IP 层的协议。
- ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。
(2). ICMP报文种类
ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。
- ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。
1. ICMP 差错报告报文
ICMP 差错报告报文共有 5 种
ICMP 差错报告报文的数据字段的内容
2. ICMP 询问报文
种类:
- 回送请求和回答报文
- 时间戳请求和回答报文
(3). ICMP的应用举例
ICMP:在IP之上,用来测试网络层有没有故障。使用最多的命令是ping。
-
PING (Packet Internet Grope)测试两个主机之间的连通性。
-
PING 使用了 ICMP 回送请求与回送回答报文。
-
PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。
TTL是数据报的生存时间,每过一个路由器就会减1,作用是防止数据报在网络中循环。 TTL默认初始值如下: Linux 64 Windows 128 Unix 256 可以根据TTL值粗略判定对方是什么系统。
ping的参数
ping www.baidu.com -t表示一直ping下去
ping -l 200 www.baidu.com 发送200字节大小的包来ping
ping 8.8.8.8 -i 2更改数据包TTL时间,能够跟踪数据包途径的路由器
Windows上使用pathping 跟踪数据包路径,计算丢包情况
pathping www.baidu.com
windows上跟踪数据包路径的命令:tracert www.baidu.com
在路由器上跟踪数据包路径的命令:traceroute www.baidu.com
ping的特性
-
PING,因特网包探索器,用于测试网络连接量的程序。ping发送一饿ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。
-
ping指端对端联通,通常用作可用性检测,但是某些病毒会强行大量远程执行ping命令抢占你的网络资源,导 致系统网速变慢。严禁ping入侵作为大多数防火墙的一个基本功能提供给用户进行选择。
-
如果打开IE浏览器访问网站失败,可以通过ping命令测试到Internet的网络连通,可以为你排除网络故障提供线索。
5. IGMP协议
点到点通信:A ,B之间通信
广播:目标MAC地址全是F,目标IP地址全是255,也就是全是1.全网广播不能跨越路由器。
组播=多播:分组广播。
5.1访问多播视频节目
使用多播一般用于直播,网络会议,能够节省带宽。
IGMP协议的作用就是周期性扫描本网段内有没有主机在访问多播数据包。
四. IP数据包的结构
IP数据报的格式能够说明IP协议都具有什么功能。
1. IP数据报首部的固定部分中的各字段
每一行32bit相当于1个字节,一共5行,共20字节。
(1). 版本:
用来表示TCP/IP是哪个版本,ipv4还是ipv6.
(2). 首部长度:
用来标识固定部分和可变部分的总共长度(如果没有可变部分,首部长度可以不用定义了)
-
因为IP首部的固定长度是20字节,因此首部长度字段的最小值是5(即二进制表示的首部长度是0101)。
-
而当首部长度为最大值1111时(即十进制数的15),就表明首部长度达到最大值15个32位字长,即 60字节。
-
当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此IP数据报的数据部分永远在4字节的整数倍时开始,这样在实现IP协议时较为方便。
(3). 区分服务:
确定更高的传输优先级。用来获得更好的服务。这个字段在旧标准中叫做服务类型,1998年IETF把这个字段改名为区分服务DS
(4). 总长度:
总长度―总长度指首部和数据之和的长度,单位为字节。
总长度字段为16位,所以数据包最大有2^16-1=65535字节。
以太网V2的MAC的数据帧的数据最大是1500字节
注意,网络层,数据包最大65535字节;而数据链路层数据最大是1500字节最大传输单元MTU,是不一样的。
所以说,一旦超过数据链路层的最大要求时(网络层数据部分超过1480字节),数据链路层将数据包分片传输。
数据包分片处理:把数据分割,分别添加IP地址,通过网络发给目标MAC地址。目标在通过网络层拼接。传送过程中可能会丢包,或者后发的先到(泪滴攻击就是利用目标机发送破坏的IP包(重叠的包货过大的包负荷)可以通过TCP/IP协议来瘫痪各种不同的操作系统)。所以需要编号。
(4)标识:
如果出现数据包分片,那么标识用来确定哪些数据包是需要组合的。
- 因为IP是无连接服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。
(5)标志:
(6)片偏移:
片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对于用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。
偏移等于当前字节在数据部分的第几个再除以8.
IP数据报分片举例:
(7)生存时间:
就是TTL,time to live,每过一个路由器就减1。8位二进制。防止数据包在网络中循环。
(8)协议:
协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个协议进行处理。
用协议号标识数据部分是什么数据。
IP数据报首部的固定部分中的各字段
- ICMP协议号:1; //以下都是10进制的数字
- IGMP协议号:2;
- TCP协议号:6;
- UDP协议号:17;域名解析
- IPv6协议号:41;
- OSPF协议号:89;
(9)首部检验和:
16位,只检验数据报的首部,不检验数据部分。这里不是采用CRC检验码而是采用简单的计算方法。每经过一个路由器就会检验一次。
(10)源地址和目的地址:
都是IP地址:都占32位,只符合IPv4。IPv6是128位。
(11)可变部分:
一般没用,IPV6就没有了。
五. IP层转发分组的流程
1. 举例理解IP层分组转发
2. 简化网络拓扑
3. 路由表中包含的路由信息
根据目的网络地址来确定下一跳路由器,这样做可得出以下的结果:
- IP数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。
- 只有到达最后一个路由器时,才试图向目的主机进行直接交付。
4. 默认路由
路由器还可采用默认路由(default route)以减小路由表所占用的空间和搜索路由表所用的时间。这种转发方式在一个网络只有很少的对外连接时是很有用的。
实际上,默认路由在主机发送IP数据报时往往更能显示出它的好处。主机在发送每一个IP数据报时都要查找自己的路由表。如果一台主机连接在一个小网络上,而这个网络只用一个路由器和互联网连接,那么在这种情况下使用默认路由是非常合适的。
5. 分组转发算法
6. 注意
7. 使用子网时分组的转发
在划分子网的情况下,分组转发的算法必须做相应的改动。
我们应当注意到,使用子网划分后,路由表必须包含以下三项内容:
目的网络地址、子网掩码、下一跳地址
(1). 在划分子网的情况下,路由器转发分组的算法如下:
(2). 举例使用子网时分组转发举例
七. ABCDE类网络地址
网络地址(网络号)唯一指定了每个网络。同一网络中的每台计算机都共享相同的网络地址,并用它作为自己IP地址的一部分。ABC对应的子网掩码分别是255.0.0.0和255.255.0.0和255.255.255.0
特殊的几个地址
127.0.0.1 本地换回地址
169.254.0.0
10.0.0.0,172.16.0.0–172.31.0.0,192.168.0.0–192.168.255.0 保留的私网地址
八. 子网划分
注意,全为1是广播,所以63,127,191,254不选
九. 互联网的路由选择协议
1. 有关路由选择协议的几个基本概念
1.1 理想的路由算法
路由选择协议的核心就是路由选择算法,即需要何种算法获得路由表中的各项目。
一个理想的路由选择算法应具备如下的特点
-
算法必须是正确的和完整的。
-
算法在计算上应简单。
-
算法应能适应通信量和网络拓扑的变化,这就是说,要有自适应性。
-
算法应具有稳定性。
-
算法应是公平的。
-
算法应是最佳的。
不存在一种绝对的最佳路由算法。 所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。 实际的路由选择算法,应尽可能接近于理想的算法。 路由选择是个非常复杂的问题
(1)网络畅通的条件
沿途路由器必须知道下一跳给谁,数据包有去有回。
1.2 从路由算法的自适应性考虑分类:
1.2.1 静态路由选择策略
即非自适应路由选择,需要管理员告诉路由器所有没有直连的网络下一跳给谁。
特点:是简单和开销较小,但不能及时适应网络状态的变化。
缺点:适合于小规模网络,不能自动调整路由。
1.2.2 动态路由选择策略
即自适应路由选择,动态学习
特点:是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。
1.3 分层次的路由选择协议
因特网采用分层次的路由选择协议。
原因:
- 因特网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间。而所有这些路由器之间交换路由信息所需的带宽就会使因特网的通信链路饱和。
- 许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到因特网上
处理办法:
为此因特网将整个互联网划分为许多较小的自治系统AS(Autonomous System)
1. 自治系统 AS 的定义:在单一的技术管理下的一组路由器,
而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,
同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。
2. 现在对自治系统 AS 的定义是强调下面的事实:
尽管一个 AS 使用了多种内部路由选择协议和度量,
但重要的是一个 AS 对其他 AS 表现出的是一个单一的和一致的路由选择策略。
1.4 因特网有两大类路由选择协议
目前因特网中,一个大的ISP就是一个自治系统,这样,因特网就把路由选择协议划分为两大类:
1.4.1 内部网关协议IGP (Interior Gateway Protocol)
即在一个自治系统内部使用的路由选择协议。目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议
1.4.2 外部网关协议EGP (External Gateway Protocol)
若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。在外部网关协议中目前使用的是 BGP-4。
1.5 自治系统和内部网关协议、外部网关协议
自治系统之间的路由选择也叫做域间路由选择(interdomain routing),
在自治系统内部的路由选择叫做域内路由选择(intradomain routing)
注:早期的文档中,路由器被称为网关
2. 内部网关协议 IGP (Interior Gateway Protocol)
2.1 内部网关协议:RIP
周期性广播(每30s广播一次)路由表,选择路径的依据是最少的跳数,最大跳数是15跳,所以一般不适合大网络。
工作原理:
- 路由信息协议 RIP 是内部网关协议 IGP中最先得到广泛使用的协议。
- RIP 是一种分布式的基于距离向量的路由选择协议。
- RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
RIP 协议的三个要点
-
仅和相邻路由器交换信息。
-
交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
-
按固定的时间间隔交换路由信息,例如,每隔 30 秒。
为加快协议的收敛速度,当网络拓扑发生变化时, 路由器也及时向相邻路由器通告拓扑变化后的路由信息(即触发更新)
路由表的建立过程
- 路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为1)。
- 以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
- 经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。
- 一般情况下RIP 协议的收敛过程较快,即在自治系统中所有的结点都得到正确的路由选择信息的过程。
RIP 协议的优缺点
- RIP 存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。
- RIP 协议最大的优点就是实现简单,开销较小。
- RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。
- 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。
2.2 内部网关协议:OSPF
根据带宽选择路径。开放式
度量值:带宽;
支持多区域
触发式更新
三个表:
其中一个是邻居表 通过发送hello包判断邻居是否存在
链路状态表:将邻居的信息交换一下
OSPF 协议的基本特点
- “开放”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。
- “最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法SPF
- OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。
- 是分布式的链路状态协议
三个要点:
-
向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。
-
发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。
-
只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
OSPF 划分为两种不同的区域
划分区域
- 划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。
- 在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。
- OSPF 使用层次结构的区域划分。在上层的区域叫作主干区域(backbone area)。主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。
OSPF的特点:
- OSPF 不用 UDP 而是直接用 IP 数据报传送。
- OSPF 构成的数据报很短。这样做可减少路由信息的通信量。
- 数据报很短的另一好处是可以不必将长的数据报分片传送。分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传。
- OSPF 对不同的链路可根据 IP 分组的不同服务类型 TOS 而设置成不同的代价。因此,OSPF 对于不同类型的业务可计算出不同的路由。
- 如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这叫作多路径间的负载平衡。
- 所有在 OSPF 路由器之间交换的分组都具有鉴别的功能。
- 支持可变长度的子网划分和无分类编址 CIDR。
- 每一个链路状态都带上一个 32 位的序号,序号越大状态就越新。
3. 外部网关协议EGP (External Gateway Protocol)
3.1 外部网关协议:BGP
十. 网络层的设备:路由器
1. 路由器的工作原理
十一. VPN与NAT
1. 虚拟专用网(VPN)
2. 网络地址转换(NAT)
2.1 概述
2.2 常用的命令
netstat -n : 可以看目标端口和源端口建立的会话