4.网络层
网络层提供的两种服务
网络层关注的是如何将分组从源端沿着网络路径送达目的端。
在计算机通信中,可靠交付由端系统负责。
网络层提供的两种服务:
-
虚电路服务
虚电路表示这只是一第逻辑上的连接,分组都沿着这务逻辑按照存储好的发送方式传送,而并不是真正建立了一条物理连接
电路交换的电话通信是先建立了一条真正的连接。因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样。 -
数据报服务
网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。
网络层不提供服务质量的承诺,即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。
尽最大努力交付的好处:
- 由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比)
- 如果主机(即端系统)中的进程之间的通信需要可靠的,那么就由网络的主机中的运输层负责(包括差错处理、流量控制等)
- 采用这种设计思路的好处是:网络的造价大降低,运行方式灵活,能够适应多种应用
- 因特网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性
网际协议 IP(RIP OSPF BGP)
-
虚拟互联网
中间设备又称为中间系统或中继系统- 物理层中继系统:转发器
- 数据链路层中继系统:网桥或桥接器
- 网络层中继系统:路由器
- 网络层以上的中继系统:网关
当中继系统是转发器或网桥时,一般并不称之为网络互连,因为这仅仅是把一个网络扩大了,而这仍然是一个网络。
网关由于比较复杂,目前使用得较少互联网都是指用路由器进行互联的网络。
由于历史原因,许多有关 TCP/ IP 的文献将网络层使用的路由器称为网关
虚拟互联网的意义:
- 所谓虚拟互联网也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用IP 协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。
- 使用 IP 协议的虚拟互联网络可简称为 IP 网
- 使用虚拟互联网络的好处是:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各具体的网络异构细节
IP 协议简介
网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一,与 IP 协议配套使用的还有四个协议:
- 地址解析协议 ARP(Address Resolution Protocol)
- 逆地址解析协议 RARP(Reverse Adderss Resolution Protocol)
- 网际控制报文协议 ICMP(Internet Control Message Protocol)
- 网际组管理协议 IGMP(Internet Group Management Protocol)
网络层四个协议之间的层次:
-
IP 地址
分类 IP 地址
- 每一类地址都由两个固定长度的字段组成,其中一个字段是网络号(net-id),它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号(host-id),它标志该主机(或路由器)
- 主机部分不能全为0也不能全为1
IP 地址中的网络字段和主机字段:
特殊的几个地址
- 127.0.0.1 本地环回地址
- 169.254.0.0 Windows 在 ip 地址不够用的时临时分配的地址
- 保留的私网地址(外网访问不了)
10.0.0.0
172.168.0.0 ——— 172.31.0.0
192.168.0.0 ——— 192.168.255.0
子网掩码的作用:
-
保留IP 地址的网络部分,主机部分归零,判断该 IP 与通信的 IP 是否是在同一个网段中。
-
划分子网和构造超网
计算机比较少时,一个网段中的主机地址太多的话有浪费,所以把他们分成几个子网。子网划分
-
等分在两个子网
子网掩码右 移一位,等分成两个子网
分成两个子网后的地址分配
-
等分成四个子网
把子网掩码右移两位
-
-
等分成八个子网
把子网掩码右移三位
-
点到点的子网掩码为 255.255.255.252
-
变长子网划分
依次除2 ,与等长划分类似超网:把两个网段合并成一个网段
子网掩码左移一位,合并两个网段
合并网络的规律
-
IP 址与 MAC 硬件地址
-
两台计算机之间的通信
-
ARP 协议 — 根据 IP 地址获取 MAC 地址
不管网络层使用的时什么协议,在实际网络的链路上传送数据时,最终还是必须使用硬件地址
每一个主机都设有一个 ARP 高速缓存,里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。
当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址 -
ARP 高速缓存的作用
为了减少网络上的通信量,主机 A 在发送其 ARP 请求分组时,就将自己的 IP 地址到硬件地址的映射写入 ARP 请求分组。
当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的这一地址映射写入主机 B 自己的 ARP 高速缓存中。这对主机 B 以后向 A 发送数据报时就更方便了
ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器 的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。
从 IP 地址到硬件地址的解析是行动进行的,主机的用户对这种地址解析过程是不知道的。
只要主机或路由器要和本网络上的另一个已知 IP 地址的主机或路由器进行通信,ARP 协议就会自动地将该 IP 地址解析为链路层所需要的硬件地址。- 逆向地址解析协议 RARP
逆向地址解析协议 ARAR 使用只知道自己硬件地址的主能够知道其 IP 地址。
-
-
IP 数据报格式
-
一个IP 数据报由首部和数据两部分组成
- 首部的前一部分是固定长度,共 20 个字节,是所有 IP 数据报必须具有的
- 在首部的固定部分的后面是一些可选字段,其长度是可变的
-
IP 数据的格式
-
版本:占4位,指 IP 协议的版本,目前的 IP 协议版本号为4(即 IPV4)
-
首部长度:占4位,可表示的最大数值是15个单位(一个单位为4字节)因此 IP 首部长度的最大值是60字节
-
区分服务:占8位,用来获得更好的服务,在旧标准中叫做服务类型,但实际上一址未被使用过。1988年这个字段改名为区分服务,只有在使用区分服务时,这个字段才起作用, 在一般的情况一都不使用这个字段 Qos 服务质量
-
总长度:占16位,指首部的数据之和的长度,单位为字节,因此数据报的最大长度为65535字节,总长度必须不超过最在传输单元 MTU
-
标识:占16位,这是一个计数器,用来产生数据报的标识,不是序号,每产生一个数据包,就增加1
-
标志:占3位,目前只有前两位有意义。标志字段的最低位是 MF(More Fragment)。MF = 1表示后面还有"分片"。MF = 0表示最后一个"分片"。标志字段中间的一位是 DF(don’t Fragment)。只有当 DF=0时才允许分片。
-
片偏移:13位,指出较长的分组在分片后某片在原分组中相对位置。片偏移以8个字节为偏移单位
![](/Users/limiao/personal/notebook/计算机网络/学_图片/IP 数据报偏移.png)
-
生存时间 TTL(Time To Live) :8位,数据报在网络块中可通过的路由器数的最大值
-
协议:8位,指出此数据报携带的数据使用何种协议以便目的主机的 IP 层将数据部分上交给哪个进程
-
首部校验和:16位,只检验数据报的首部,不检验数据部分,这里采用 CRC 检测码,而采用简单的计算方法
-
源地址和目标地址各占4字节(ip 地址)
-
可变部分:
- IP首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富
- 选项字段的长度可变,从1 个字节到40个字节不等,取决于所选择的项目
- 增加首部的可变部分是为了增加 IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的,这就增加了每一个路由器处理数据报的开销,实际上这些选项很少被使用
-
-
数据路由 — 路由器在不同网段发送数据包
网络畅通的条件— 能去能回,沿途的路由器必须知道目标网络下一跳给哪个接口 -
静态路由 — Windows 的网关就是默认路由
-
网络负载均衡
-
-
IP 转发分组的流程(子网划分那一部分里)
网际控制报文协议 ICMP
为了提高 IP 数据报交付成功的机会,在网际层使用了网际控制报文协议 ICMP(Internet Control Message Protocol)
ICMP 允许主机或路由器报告差错和提供有关异常情况的报告。
ICMP 不是高层协议,而是 IP 层协议
ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去
-
ICMP 报文格式
![](/Users/limiao/personal/notebook/计算机网络/学_图片/ICMP 报文格式.png)
-
ICMP 报文的类型(排错 ping)
- ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文
- ICMP 报文的前四个字节是统一的格式,共有三个字段:类型、代码、检验和。接着的4个字节的内容与 ICMP 的类型有关
- 差错报告报文有五种:终点可达、源点抑制、时间超过、参数问题、改变路由(重定向)
- 询问报文有两种:回送请求和回答报文,时间戳请求和回答报文
-
动态路由协议(选择最佳路径)
-
RIP 协议 — 根据通过的路由器数据量选择,周期性的广播
-
内部网关协议 OSPF(Open Shortest Path First) — 根据带宽选择最佳路径
- 向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法
- 发送的信息就是与本路由器相信的所有的路由器的链路状态,但这只是路由器所知道的部分信息
- 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息
-
外部网关协议 BGP
- BGP 是不同自治系统的路由器之间交换路由信息的协议,BGP 较新版本是 BGP-4
- 边界网关协议 BGP 只能是力求寻找一条能够到达目的的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由
- 每一个自治系统的管理员要选择至少一个路由器作为该自治系统的"BGP发言人"
-
VPN 连接
-
网络地址转换 NAT (Network Address Translation)
需要在专用网连接到因特网的路由器上安装 NAT 软件,装有 NAT 软件的路由器叫做 NAT 路由器,它至少有一个有效的外部全球地址 IP。所有使用本地地址的主机在和外界通信时都要在 NAT 路由器上将其本地地址转换成 IP 才能和因特网连接
-
NAT 端口映射
-
因特网的路由选择协议(选择最佳路线)
-
RIP 协议 — 根据通过的路由器数据量选择,周期性的广播
-
内部网关协议 OSPF(Open Shortest Path First) — 根据带宽选择最佳路径
- 向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法
- 发送的信息就是与本路由器相信的所有的路由器的链路状态,但这只是路由器所知道的部分信息
- 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息
-
外部网关协议 BGP
-
BGP 是不同自治系统的路由器之间交换路由信息的协议,BGP 较新版本是 BGP-4
-
边界网关协议 BGP 只能是力求寻找一条能够到达目的的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由
-
每一个自治系统的管理员要选择至少一个路由器作为该自治系统的"BGP发言人"
-
-
VPN 连接:在其他地方也可以访问指定的内网
-
网络地址转换 NAT (Network Address Translation)
需要在专用网连接到因特网的路由器上安装 NAT 软件,装有 NAT 软件的路由器叫做 NAT 路由器,它至少有一个有效的外部全球地址 IP。所有使用本地地址的主机在和外界通信时都要在 NAT 路由器上将其本地地址转换成 IP 才能和因特网连接
-
NAT 端口映射:把源端口用其他的指定的端口替换,允许Internet 上的计算机访问企业内网