网络层
虚电路: 只是一条逻辑上的连接; 分组沿着这条逻辑连接按照存储转发方式传送; 并不是真正建立了一条物理连接。
电路交换: 电路交换的电话通信是先建立了一条真正的连接; 分组交换的虚连接和电路交换的连接只是类似,但并不完全一样。
在计算机通信中可靠性由端系统负责网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务
1.不需要先建立连接
每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)
2.不提供服务质量的承诺
所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。
网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一
将网络互相连接起来要使用一些中间设备,中间设备又称为中间系统或中继系统。其中物理层:转发器;数据链路层:网桥或交换机;网络层:路由器;网络层以上:网关
IP协议
IP地址:给每个连接在因特网上的主机(或路由器)分配一个在全世界范 围是唯一的 32 位的标识符。
IP 地址现在由因特网名字与号码指派公司ICANN (Internet Corporation for Assigned Names and Numbers)进行分配
分类IP地址是将IP地址划分为若干个固定类,每一类地址都由两个固定长度的字段组成
IP 地址 ::= { <网络号>, <主机号>},一个IP地址在整个互联网范围内是唯一的。
A类地址的第一个十分位:1-126;B类地址:128-191;C类地址192-223
IP地址的特点:
1.每一个IP地址都由网络号和主机和构成
IP地址管理机构在分配IP地址时只分配网络号
路由器仅根据目的主机所连接的网络号来转发分组
2.IP地址是标志一个主机和一条链路的接口
3.转发器或网桥连接起来的若干个局域网还是一个网络
4.在IP地址中,所有分配到的网络号都是平等的
地址解析协议ARP
通过IP地址寻找MAC地址
不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。每一个主机都设有一个ARP 高速缓存(ARP cache), 里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表,并且映射表会动态更新。
首先由主机A广播发送ARP请求分组(广播)我是 209.0.0.5,硬件地址是 00-00-C0-15-AD-18 我想知道主机 209.0.0.6 的硬件地址
之后主机B向A发送ARP响应分组(单播)我是 209.0.0.6 硬件地址是 08-00-2B-00-EE-0A
ARP高速缓存的作用
为了减少网络通信量,主机A在发送ARP请求时,将自己硬件地址的映射写入ARP请求分组;
主机B收到A请求时,将主机A的地址映射写入自己的ARP高速缓存;
ARP协议是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
如果所要找的主机和源主机不在同一个局域网上,就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。从IP地址到硬件地址的解析是自动进行的。
为什么不直接使用硬件地址通信 |
---|
由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。 |
连接到因特网的主机都拥有统一的 IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为调用 ARP 来寻找某个路由器或主机的硬件地址都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。 |
IP数据报格式
版本:占4位,指明IP协议的版本。
首部长度:占4位,可表示的最大十进制数是15(单位4字节)。共可表示60字节
总长度:占16位,指明每一个分片首部和数据之和的总长度。IP数据报最大长度为2^16-1个字节。总长度不能超过最大传输单位MTU1500字节。
标志:占3位,目前只有两位有意义。 最低位MF(More Fragment)。MF=1表示后面“还有分片”; MF=0表示是数据报片中的最后一个。 中间一个记为DF(Don’t Fragment),DF=0表示允许分片。
片偏移:占13位,较长分组分片后,某片在原分组中的相对位置。8字节为单位
生存时间(TTL):占8位,表明数据报在网络中的寿命。当TTL=0时丢弃该数据报
协议字段:占8位,指出数据报携带的数据使用何种协议ICMP:1;TCP:6;UDP:17
首部检验和:占16位,只检验数据报的首部,但不包括数据部分。
可选字段:长度可变,从 1 个字节到 40 个字节不等,取决于所选择的项目。用来支持排错、测量以及安全等措施
填充字段:长度可变,保证可选字段部分长度是4个字节的倍数。
IP层转发分组的流程
在路由表中,对每一条路由,最主要的是信息:(目的网络地址,下一跳地址)
步骤1.查找路由表
根据目的网络地址就能确定下一跳路由器,
IP数据报最终一定可以找到目的主机所在目的网络上的路由器
只有到达最后一个路由器时,才试图向目的主机进行直接交付。
特点主机路由
为特定的目的主机指明一个路由。
采用特定主机路由可使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。
默认路由
路由器还可采用默认路由以减少路由表所占用的空间和搜索路由表所用的时间。
这种转发方式在一个网络只有很少的对外连接时是很有用的。
划分子网
在IP地址中增加了一个子网号字段,使两级IP地址变成了三级IP地址
使用子网掩码(subnet mask)可以找出 IP 地址中的子网部分。(IP 地址) AND (子网掩码) = 网络地址
子网掩码是一个网络或一个子网的重要属性
路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。
路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。
若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码。
使用 CIDR 时,路由表中的每个项目由“网络前缀” 和“下一跳地址”组成。在查找路由表时可能会得到 不止一个匹配结果。
应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配 (longest-prefix matching)。
网络前缀越长,其地址块就越小,因而路由就越具体(more specific)
最长前缀匹配又称为最长匹配或最佳匹配
网际控制报文协议ICMP
更有效的转发IP数据报和提高交付成功的机会
报告差错情况和提供有关异常情况的报告
不是高层协议,而是 IP 层的协议
ICMP 报文作为IP数据报的数据部分
ICMP报文两种类型:ICMP差错报告报文和ICMP询问报文
ICMP差错报告报文
终点不可达:当路由器或主机不能交付数据时就向源点发送终点不可达报文。
时间超过:当路由器收到生存时间为零的报文时,向源点发送时间超时报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收 到的数据报片丢弃,并向源点发送时间超过报文。
参数问题:当路由器或目的主机收到的数据报首部中有的字段值不正确时,向源点 发送参数问题报文。
改变路由:路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器
ICMP询问报文
回复请求和回答:回送请求报文由主机或路由器向一个特定的目的主机发出询问;收到 此报文的主机给源主机或路由器发送回送回答报文。
时间戳请求和回答:时间戳请求报文是请某个主机或路由器回答当前的日期和时间。时间 戳请求与回答可用来进行时钟同步和测量时间。
分组网间探测PING
PING 用来测试两个主机之间的连通性。
PING 使用了 ICMP 回送请求与回送回答报文。
PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。
traceroute,跟踪一个分组从源点到终点的路径
路由选择:从路由算法能否随网络的通信量或拓扑自适应地进行调整变化划分
非自适应路由 选择,其特点是 简单和开销较小, 但不能及时适应 网络状态的变化
自适应路由选择, 其特点是能较好地 适应网络状态的变 化,但实现起来较 为复杂,开销也比 较大
互联网采用自适应、分布式、分层次的路由选择协议
互联网被划分为许多较小的自治系统AS,自治系统之间的路由选择也叫做域间路由选择(interdomain routing) ;在自治系统内部的路由选择叫做域内路由选择(intradomain routing)
内部网关协议IGP:RIP、OSPF
外部网关协议EGP:BGP-4
内部网关协议RIP
RIP是一种分布式的基于距离向量的路由选择协议,最大优点就是简单 RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
距离定义
从一路由器到直接连接的网络的距离定义为 1。
从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。
RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。
这里的“距离”实际上指的是“最短距离”,
和哪些路由器交换信息? 仅和相邻路由器交换信息
交换什么信息? 自己的路由表
在什么时候交换信息? 按固定的时间间隔交换路由信息每隔 (例如每隔30 秒)
RIP 限制了网络的规模,它能使用的最大距离为 15,路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规 模的扩大,开销也就增加
内部网关OSPF协议
基本特点
“开放”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。
“最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法SPF
OSPF是分布式的链路状态协议。
三要点:
向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。
发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分 信息。
“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。
只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
路由器的结构
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。
从路由器某个输入端口收到的分组,按照分组要去的目的地(即目的网络),把该分 组从路由器的某个合适的输出端口转发给下一跳路由器。
下一跳路由器也按照这种方法处理分组,直到该分组到达终点为止。
路由器结构的核心是路由选择处理机,任务是根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路 由器交换路由信息,不断更新和维护路 由表。
分组转发部分由交换结构、一组输入端口和一组输出端口组成。交换结构作用是根据转发表对分组进行处理,将某个输入端口进入的分组 从一个合适的输出端口转发出去。
1.“路由选择”(routing)则是按照 分布式算法,根据从各相邻路由器 得到的关于网络拓扑的变化情况, 动态地改变所选择的路由
路由表是根据路由选择算法得出的
2.“转发”(forwarding)就是路 由器根据转发表将用户的 IP 数 据报从合适的端口转发出去
转发表是从路由表得出的
IPV6
IPV6首部改为8字节对齐,IPV4是4字节对齐
IPV6的首部长度变成固定的40字节,称为基本首部,取消了首部的检验和字段,在基本首部的后面允许有零个或多个扩展首部,所有的扩展首部和数据合起来叫做数据报的有效载荷或净负荷
IPV6数据报的目的地址是三种基本类型地址之一:
1.单播:点到点的通信
2.多播:一到多点的通信
3.任播:任播的目的站是一组计算机,但数据报在交付时只交付其中的一个, 通常是距离最近的一个
每个 16 位的值用十六进制值表示,各值之间用冒号分隔。 例如:68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF 零压缩(zero compression),即一连串连续的零可以为一对冒号所取代。 例如:FF05:0:0:0:0:0:0:B3 可以写成:FF05::B3
私有地址(专用地址) 10.0.0.0 到 10.255.255.255 172.16.0.0 到 172.31.255.255 192.168.0.0 到 192.168.255.255
这些地址只能用于一个机构的内部通信,而不能用于和互联网上的主机通信。
在互联网中的所有路由器对目的地址是专用地址的数据报一律不进行转发。
利用IP隧道技术实现虚拟专用网