计算机网络-网络层-笔记
因特网的设计思路:
网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。
网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。
尽最大交付的好处
由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比较)。
如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责(包括差错处理、流量控制等)。
采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。
因特网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。
网际IP协议以及配套协议
网络的一些中间设备
中间设备又称为中间系统或中继(relay)系统。
物理层中继系统:转发器(repeater)。
数据链路层中继系统:网桥或桥接器(bridge)。
网络层中继系统:路由器(router)。
网桥和路由器的混合物:桥路器(brouter)。
网络层以上的中继系统:网关(gateway)。
当中继系统是转发器或网桥时,一般并不称之为网络互连,因为这仅仅是把一个网络扩大了,而这仍然是一个网络。
网关由于比较复杂,目前使用得较少。
互联网都是指用路由器进行互连的网络。
由于历史的原因,许多有关 TCP/IP 的文献将网络层使用的路由器称为网关。
IP协议
IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符
IP协议是TCP/IP协议网络层的主要协议,它提供无连接的数据报传送机制。
IP协议实现上非常简单,它对数据提供尽力而为服务(Best-effort Service)。
IP协议的主要功能包括:
无连接数据报传输
数据报路由(IP路由)
分组的分段和重组
IP地址的编址方式
- 分类的IP地址
- 子网的划分
- 构成超网
分类的IP地址
每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器)
A类IP地址范围1.0.0.1-126.255.255.255
00000001 00000000 00000000 00000001 - 01111110 11111111 11111111 11111111
B类IP地址范围128.0.0.1-191.255.255.255
10000000 00000001 00000000 00000001 - 10111111 11111111 11111111 11111111
C类IP地址范围192.0.0.1-223.255.255.255
11000000 00000000 00000000 00000001 - 11011111 11111111 11111111 11111111
此外,国际NIC组织对IP地址还有如下规定:
(1)主机号全“1”的网络地址用于指定网络的广播地址
(2)主机号全“0”的网络地址表示网络本身;
(3)网络号全“0”的网络地址表示本网络;
(4)32位IP地址全“1”的网络地址用于本网广播,该地址又被称为有限广播地址。
(5)A类网络地址127是一个保留地址,用于网络软件测试以及本地机进程间通信,称为回送地址(loopback address)。
地址解析协议ARP和逆地址解析协议RARP
实现了IP地址和物理地址的互相转换。
为什么不直接用MAC地址?
由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。
ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。
如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。
逆地址解析协议 RARP 使只知道自己硬件地址的主机能够知道其 IP 地址。这种主机往往是无盘工作站。 因此 RARP协议目前已很少使用。
IP数据报的格式
生存期(Time to live)
8比特,用于指明IP分组在网络中传输的最长时间。IP包每经过一个路由器TTL减1,为0则分组被丢弃。
协议域(Protocol):
上层为哪种传输协议,TCP、UDP等。
头校验和(Header checksum)
只对IP包头做校验;
算法:每16位求反,循环相加(进位加在末尾),和再求反;
有简单算法。
源地址(Source address)和目的地址(Destination address)
32位IP地址
选项(Options)
变长,长度为4字节的倍数,不够则填充,最长为40字节;
IP层的分组转发
可以想像,若按目的主机号来制作路由表,则所得出的路由表就会过于庞大。
但若按主机所在的网络地址来制作路由表,那么每一个路由器中的路由表就只包含 4 个项目。这样就可使路由表大大简化。
IP 数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。
只有到达最后一个路由器时,才试图向目的主机进行直接交付。
划分子网和构造超网
1. 从两级 IP 地址到三级 IP 地址
- IP 地址空间的利用率有时很低。
- 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。
- 两级的 IP 地址不够灵活。
三级的 IP 地址:IP地址 ::= {<网络号>, <子网号>, <主机号>}
划分子网只是把 IP 地址的主机号 host-id 这部分进行再划分,而不改变 IP 地址原来的网络号 net-id。
划分子网后变成了三级结构
2. 子网掩码
使用子网掩码(subnet mask)可以找出 IP 地址中的子网部分。
- 子网掩码是一个网络或一个子网的重要属性。
- 路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。
- 路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。
- 若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码
3. 无分类编址 CIDR(构造超网)
主要特点:
CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间。
CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。
IP 地址从三级编址(使用子网掩码)又回到了两级编址。
IP地址 ::= {<网络前缀>, <主机号>}
CIDR 使用“斜线记法”(slash notation)
地址格式: a.b.c.d/x, x表示地址中网络部分的位数,32-x表示主机的位数
与IP地址有关的一组协议
- ARP:地址解析协议解决网络层地址(IP地址)与数据链路层地址(MAC地址)的映射问题。
- RARP:反向地址解析协议用于将一个已知的MAC地址映射到IP地址。
RARP同样只能用于具有广播能力的网络。
RARP主要应用在一些无盘工作站,在开机时向RARP服务器申请IP地址。 - BOOTP:引导协议,是一种基于 UDP的协议
BOOTP主要用于无盘工作站从服务器得到自己的IP地址、服务器的IP地址、启动映像文件名、网关IP等等。
其工作原理与RARP协议类似。 - DHCP:动态地址配置协议
DHCP是BOOTP的扩展,基于客户/服务器模式的,提供了一种动态指定IP地址和配置参数的机制。 - ICMP:网际控制报文协议
ICMP是IP层的协议,用来发送差错报告和控制信息;
在IP路由的过程中,若主机或路由器发生异常,便可利用ICMP来传送相关的信息 IGMP:Internet组管理协议
IGMP协议是IP层的协议,是一种节省带宽的技术,它把一个数据流同时传送给许多接收者。IGMP协议用来在ip主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。IP采用D类地址来支持多播。每个D类地址代表一组主机。
D类IP地址范围在224.0.0.0到239.255.255.255之间。
多播是由特殊的多播路由器来实现,各个多播路由器每分钟发送一个硬件多播信息给子网上的主机,要求它们报告其当前所属的是哪一组。- CIDR:无类域间路由
将剩余的C类地址分成大小可变的地址空间
CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。
IPV6
CIDR不能从根本上解决IP地址空间匮乏的问题,提出IPV6
IPv6与IPv4不兼容,但与其它Internet协议兼容,如TCP、UDP、OSPF、BGP、DNS等。
地址从64位增加到128位(16字节)
IPv6支持几乎无限大的地址空间;
减少路由表的大小,使得路由器能够更快的处理包;
提供更好的安全性,实现IP级的安全;
支持多种服务类型,并支持组播;
允许新旧协议共存一段时间;
协议必须支持可移动主机和网络。
PING命令
- PING (Packet Internet Grope),因特网包探索器,用于测试网络连接量的程序。
- Ping发送一个ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。
一般的,连续发送4个32字节的ICMP回声请求包,根据是否收到回声应答
Ping本机IP
用于检测本机网卡配置是否正常;- Ping网关IP
用于检测网关路由器是否正常; - Ping远程IP
检测本机能否正常访问Internet。