计算机网络 - 网络层
农夫三拳有点疼~ 人气:2
# 网络层提供的两种服务
> 网络层关注的是如何将分组从源端沿着网络路径送达目的端。
> 在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向连接”还是“无连接”)曾引起了长期的争论。
> 争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?
## 电信网:虚电路服务
虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不真正建立了一条物理连接。
请注意,电路交换的电话通信是先建立了一条真正的连接。因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样。
![](https://gitee.com/songjilong/FigureBed/raw/master/img/20200317230541.png)
## 因特网:数据报服务
网络层向只提供**简单灵活的**、**无连接的**、**尽最大努力交付的**数据报服务
网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。
网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。
**尽最大努力交付的好处:**
- 由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比较)。
- 如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责(包括差错处理、流量控制等)。
- 采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。
- 因特网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。
![](https://gitee.com/songjilong/FigureBed/raw/master/img/20200317225652.png)
## 虚电路服务和数据报服务的对比
![](https://gitee.com/songjilong/FigureBed/raw/master/img/20200317230049.png)
# 网际协议 IP
## 虚拟互联网
### 网络互连的设备
中间设备又称为**中间系统**或**中继(relay)系统**。
- 物理层中继系统:转发器(repeater)。
- 数据链路层中继系统:网桥或桥接器(bridge)。
- 网络层中继系统:路由器(router)。
- 网络层以上的中继系统:网关(gateway)。
### 互连网络与虚拟互连网络
![](https://gitee.com/songjilong/FigureBed/raw/master/img/20200318211934.png)
### 虚拟互连网络的意义
所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用IP 协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。
使用IP 协议的虚拟互连网络可简称为IP 网。
使用虚拟互连网络的好处是:当互联网上的主机进行通信时,就好像在一个
网络上通信一样,而看不见互连的各具体的网络异构细节。
### IP协议简介
网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一。与IP协议配合使用的还有四个协议:
- 地址解析协议 ARP (Address Resolution Protocol)
- 逆地址解析协议 RARP (Reverse Address Resolution Protocol)
- 网际控制报文协议 ICMP (Internet Control Message Protocol)
- 网际组管理协议 IGMP (Internet Group Management Protocol)
### 网络层4个协议之间的层次
![](https://gitee.com/songjilong/FigureBed/raw/master/img/20200318212343.png)
## IP 地址
### IP层次结构
![](https://gitee.com/songjilong/FigureBed/raw/master/img/20200320145806.png)
### 网络地址
网络地址(也可以称为网络号)唯一指定了每个网络。同一网络中的每台计算机都共享相同的网络地址,并用它作为自己IP地址的一部分。
![](https://gitee.com/songjilong/FigureBed/raw/master/img/20200320150116.png)
![](https://gitee.com/songjilong/FigureBed/raw/master/img/20200320151125.png)
![](https://gitee.com/songjilong/FigureBed/raw/master/img/20200320151649.png)
特殊的几个地址
**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**
![](https://gitee.com/songjilong/FigureBed/raw/master/img/20200320162922.png)
## 划分子网和构造超网
子网划分的意义:合理划分IP地址,以防IP地址浪费或不够用
主机部分不能全为0或全为1
点对点的子网掩码是255.255.255.252,等分为64份
### 等分为两个子网:
- 为了安全考虑,你打算将这两个部门的计算机分为两个网段,中间使用路由器隔开。
- 现在将192.1 68.0.0 255.255.255.0这个C类地址划分成两个网段。
![](https://gitee.com/songjilong/FigureBed/raw/master/img/20200320165330.png)
### 等分为四个子网:
假如公司有4个部门,每个部门]有50台计算机,现在使用192.1 68.0.0/24这个C类网段,从安全考虑你打算每个部门门的计算机放置到独立的网段,这就要求你将192.168.0.0/24这个C类网络划分为4个网段,如何划分子网呢?
![](https://gitee.com/songjilong/FigureBed/raw/master/img/20200320171048.png)
### 等分为八个子网:
如果想把一个C类网络等分成8个子网,子网掩码需要往右移3位,才能划分出8个子网,第8位、第7位和第6位都变成网络位。
![](https://gitee.com/songjilong/FigureBed/raw/master/img/20200320173036.png)
## IP地址与MAC硬件地址
![](https://gitee.com/songjilong/FigureBed/raw/master/img/20200321110120.png)
### 计算机A和计算机B的通信过程
![](https://gitee.com/songjilong/FigureBed/raw/master/img/20200321110331.png)
### 为什么不直接使用硬件地址进行通信?
由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。
连接到因特网的主机都拥有统一的IP地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为调用ARP来寻找某个路由器或主机的硬件地址都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。
## ARP & RARP
![](https://gitee.com/songjilong/FigureBed/raw/master/img/20200321112429.png)
不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。
每一个主机都设有一个ARP高速缓存(ARP cache), 里面有所在的局域网上的各主机和路由器的IP地址到硬件地址的映射表。
当主机A欲向本局域网上的某个主机B发送IP 数据报时,就先在其ARP高速缓存中查看有无主机B的IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址。
## IP 数据报格式
一个IP数据报由首部和数据两部分组成。
- 首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。
- 在首部的固定部分的后面是一些可选字段,其长度是可变的。
![](https://gitee.com/songjilong/FigureBed/raw/master/img/20200321211008.png)
### IP 数据报首部的固定部分中的各字段
- **版本**:占4位,指IP协议的版本
- **首部长度**:占4位,可表示的最大数值是15个单位(一个单位为4字节),因此IP的首部长度的最大值是60字节。
- **区分服务**:占8位,用来获得更好的服务.在旧标准中叫做服务类型,但实际上一直未被使用过。1998年这个字段改名为区分服务。只有在使用区分服务(DiffServ)时,这个字段才起作用。在一般的情况下都不使用这个字段。QoS 服务质量
- **总长度**:占16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535字节。总长度必须不超过最大传送单元MTU
- **标识**(identification):占16位,它是一个计数器,用来产生数据报的标识,不是序号,每产生一个数据包,就增加1。
- **标志**(flag):占3 位,目前只有前两位有意义。标志字段的最低位是MF(More Fragment)。MF=1表示后面“还有分片”。MF=0表示最后一个分片。标志字段中间的一位是DF (Don't Fragment)。只有当DF=0时本允许分片。
- **片偏移**:占13 位,较长的分组在分片后某片在原分组中的相对位置。片偏移以8个字节为偏移单位。
![](https://gitee.com/songjilong/FigureBed/raw/master/img/20200321212935.png)
- **生存时间**(8位)记为TTL (Time To Live),数据报在网络中可通过的路由器数的最大值。每经过一个路由器,TTL减一
- **协议**(8位)字段指出此数据报携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个处理过程 [协议号列表](https://zh.wikipedia.org/zh-hans/IP协议号列表)
- **首部检验和**(16位)字段只检验数据报的首部不检验数据部分。这里不采用CRC检验码而采用简单的计算方法。
![](https://gitee.com/songjilong/FigureBed/raw/master/img/20200321220346.png)
- IP首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措
施,内容很丰富。选项字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目。增加首部的可变部分是为了增加IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。实际上这些选项很少被使用。
# 网际控制报文协议 ICMP
## ICMP简介
- 为了提高IP数据报交付成功的机会,在网际层使用了网际控制报文协议ICMP (Internet Control Message Protocol).
- ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。
- ICMP不是高层协议,而是IP层的协议。
- ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。
## ICMP报文格式
![](https://gitee.com/songjilong/FigureBed/raw/master/img/20200322180701.png)
## ICMP报文的类型
ICMP报文的种类有两种,即**ICMP 差错报告报文**和 **ICMP 询问报文**。
ICMP报文的前4个字节是统一的格式,共有三个字段:即**类型**、**代码**和**检验和**。接着的4个字节的内容与ICMP 的类型有关。
- 差错报告报文有五种:终点不可达,源点抑制(Source quench),时间超过,参数问题,改变路由(重定向)
- 询问报文有两种:回送请求和回答报文,时间戳请求和回答报文
### 差错报告报告报文的数据字段的内容
![](https://gitee.com/songjilong/FigureBed/raw/master/img/20200322184402.png)
# 虚拟专用网VPN和网络地址转换 NAT
网络地址转换NAT (Network Address Trans lat ion)
网络地址转换NAT方法于1994年提出。
需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一一个有效的外部全球地址IP所有使用本地地址的主机在和外界通信时都要在NAT路由器上将其本地地址转换成IP才能和因特网连接。
加载全部内容