书城计算机小型局域网组建与维护
13105900000015

第15章 认识计算机网络——网络协议(3)

二、工作任务

1.实现网络设备连接;

2.定义网络设备的逻辑寻址;

3.掌握地址解析协议;

4.网络控制报文协议;

5.配置网络层寻址;

6.验证网络层以下的连接。

三、相关知识点

(一)IP协议

IP提供的是不可靠的数据传输服务和尽力而为的数据传输服务。网络层的上层协议会检查所有的错误,可靠性的问题由TCP或某些特殊的应用设备来考虑,因此网络层不关心数据的可靠性。此外,因为网络层传输每个数据报都是独立地选择路线,它提供的是无连接的服务。

IP数据报格式非常简单,就是在数据块前面加上一个报头。IP报头字段格式所有IP数据报头最小长度是20字节,如果有其他选项的话,报头最长为32个字节。

版本(version):这个4位字段指明当前使用的IP版本号,接收方必须了解如何解释报头中的其余部分。

头长度(IHL):IPv4的头长度的范围从5~15个4字节字。头长度指明头中包含的4字节字的个数。可接受的最小值是5,最大值是15。

服务类型(type of service):8位中只有前4位用来作为IP的服务类型(TOS)请求。一个TOS在请求中把延时位意味着需要最小的延时;把吞吐量位意味着需要最大的吞吐量;把可靠性位意味着需要最高的可靠性。

数据报长度(total length):指的是包括报头在内的整个数据报的长度。该字段为16位,限定了IP数据报的长度最大为65,536字节。网络主机使用数据报长度来确定一个数据报的结束和下一个数据报的开始。

数据报ID(identification):这个唯一的16位标识符由产生它的主机指定给数据报。

发送主机为它送出的每个数据报产生一个单独ID,但数据报在传输的过程中可能会分段,并经过不同的网络而到达目的地。分段后的数据报都共享同一个数据报ID,这将帮助接收主机对分段进行重装。

分段标志(flags):有个3位分段标志位,第一位未用,其他两位DF和MF用于控制数据报的分段方式。如果DF(不能分段)位为1,意味着数据报在选路到目的地的过程中不会分段传输。如果MF(更多段)位为1,意味着该数据报是某两个或多个分段中的一个,但不是最后一段。如果MF位设为0,意味着后面没有其他分段或者是该数据报本来就没有分段。接收主机把标志位和分段偏移一起使用,以重组被分段的数据报。

分段偏移值(fragment offset):这个字段包含13位,它表示以8字节为单位,当前数据报相对于初始数据报的开头的位置。换句话说,数据报的第一个分段的偏移值为0;如果第二个分段中的数据从初始数据报开头的第800字节开始,该偏移值将是100。

生存周期(Time To Live,TTL):这个8位字段指明数据报在进入互联网后能够存在多长时间,它以秒为单位。生存期(TTL)用于测量数据报在穿越互联网时允许存在的秒数。

其最大值是255,当TTL到达0时,数据报将被网络丢弃。TTL代表的是数据报在被丢弃前能够穿越的最大跳数。

协议(protocol):指明数据报中携带的协议类型,主要标识TCP连接或UDP数据报或其他的IP层协议。

头校验和(header chec ksum):IPv4中不提供任何可靠服务,校验和只针对报头,保证了头的正确性但并没有增加任何传输可靠性或对IP的差错检查。

源/目标IP地址(source/destination address):是源主机和目标主机的实际的32位(4个八位组)IPv4地址。

IP选项(IPOption)是可选的且不经常使用,选项主要用于网络测试和调试。可用的选项大多与选路有关。有的选项要求中转路由器记录其IP地址为数据报打上时间戳。

指定路由、记录路由器或增加时间戳等选项增加了IP头的长度。选项字段可以包括40字节以内的选项和选项数据。

(二)IP寻址

计算机可以连接到一个或多个网络上,任何两个系统间通信必须能够识别和查找另一个,每个系统必须提供一个或多个地址在网络中标识所连接的主机。每个设备的连接接口或网络适配器需要有一个地址,这将允许网络中主机间的互访。网络中存在两种寻址方法:

MAC寻址和IP寻址。

TCP/IP网络中的每个设备使用网络地址和主机地址的组合成为网络中的唯一IP地址,IP寻址操作在第三层。同时所有的主机拥有一个唯一的物理地址,称为MAC地址,是由制造商分配网卡并固化到硬件中。MAC地址操作在OSI模型第二层。

IP地址是由国际互联网络信息中心根据申请分配给公司网络使用,每一个IP地址都包含两部分,即网络号和主机号。IP地址的网络号用于标识网络中特定的网段,主机号用于标识特定网段上特定的主机或终端设备。IP协议把网络号分解成5类:A、B、C、D和E,分法如下:

A类地址的范围是从1~126(00000001~01111111):0是保留的并且表示所有IP地址;127是保留的地址并且用于测试,如一个接口上的环回(loopback);

B类地址的范围是从128~191(10000000~10111111);

C类地址的范围是从192~223(11000000~11011111);

D类地址的范围是从224~239(11100000~11101111);

E类地址的范围是从240~254:255是保留的地址并且用于广播。

IP地址中有两个特殊的保留地址:0.0.0.0用来表示所有的IP地址;255.255.255.255表示本地广播地址。

IP地址中网络地址是网络号中的第一个地址称为网络地址,用来保留给该网络本身;在网络地址和定向广播地址之间的所有地址都是这个网段的主机地址,这些地址可分配给网段上的主机设备,诸如PC、服务器、路由器和交换机等;网络号中最后一个地址称为定向广播(directed broadcast)地址,用于表示此网段上的所有主机,在进行网络广播时使用。定向广播地址与本地广播地址类似:其主要差别是路由器不传播本地广播,但可以传播定向广播;另外私有地址(Private Addresses)主要是为了解决网络IP地址紧缺的问题,A类、B类和C类地址中有这样一些地址也称为保留地址。私有地址只能在内网中使用,如果要访问Internet,必须拥有公有地址并通过地址转换(Network Address Translation,NAT)来实现Internet访问。下面是在RFC1918中所指定的私有地址:

A类:10.0.0.0~10.255.255.255(1个A类网络);

B类:172.16.0.0~172.31.255.255(16个B类网络);

C类:192.168.0.0~192.168.255.255(256个B类网络)。

子网掩码使得外部网络能够区别网络号和主机号。使用子网可以把单个大网分成多个网络。子网掩码的功能是告知设备,地址的哪一部分是包含子网的网络号部分,哪一部分是主机号部分。子网掩码使用与IP编址相同的32位格式,由连续的1和连续的0组成。其中对应网络部分和子网部分是连续的1,而主机部分是连续的0。如果没有划分子网则使用默认的子网掩码,例如C类网络的子网掩码为255.255.255.0。这是由于C类地址中网络地址为3个8位字段,主机为一个8位字段。

子网地址由网络号、子网号及主机号组成。通过提供这三种级别的寻址,子网为网络管理员提供了很大的灵活性。为了创建一个子网地址,网络管理员从主机域“借”位并把它们指定为子网域。如A类地址最多只能有22位可以借用出去创建子网;B类地址最多只能有14位可以借用出去创建子网;而C类地址最多只能有6位可以借用出去创建子网。

例如,从C类网络中借用了主机部分的4位,则子网掩码中就增加了4位“1”。于是,子网掩码就成为了255.255.255.240。因此,子网掩码的位数越多,则子网越多,但是每一个子网内的主机数就会越少。例:假设A类地址子网掩码比特的个数是14,则子网掩码可以表示如下:11111111.11110000.00000000.00000000,子网掩码为255.240.0.0,每个子网的主机数目为220-2=1048574台。

IP地址的分配方式有两种:网络管理员手工分配的静态地址配置方式和通过DHCP服务器自动分配的动态地址配置方式。

(三)地址解析协议

地址解析协议(Address Resolution Protocol,ARP)是用来将一个已知的IP地址转换成相应的物理地址(physical address)的协议。它的工作过程是,当一台主机想要知道另一台有IP地址的主机的MAC地址时,它就发出一条ARP请求信息广播(broadcast)到网络中。目标主机收到这个ARP请求信息后,将自己的MAC地址发回到源主机,这样就完成了一次从IP地址到物理地址的转换。

ARP协议的作用就是在已知目标主机IP地址的情况下,把目标主机的IP地址解析为在同一数据链路层上的MAC地址。ARP利用广播的形式在网段内寻找其他设备的物理地址。并将学习到的网络的IP地址和MAC地址的映射条目存储在ARP表中。

如果源主机要发送一个数据给目标主机,它需要知道目标主机的IP地址。首先源主机将查看自己的ARP表以确定目标主机的MAC地址。如果ARP表中存在目标主机IP地址和MAC地址,源主机将目标主机的IP地址和MAC地址绑定在一起,封装到数据帧。然后将数据报送入网络,等待目标接收。

如果源主机知道目标主机的IP地址,但是自己的ARP表中不包含目标主机的MAC地址。因此,源主机将发送一个ARP请求的进程,以获取到目标主机的MAC地址。

ARP请求包是以广播方式发送的,局域网中所有设备都会接收到这个报文并传送给网络层检验。如果某个设备的IP地址和ARP请求中包含的目标IP地址相同,设备会做出反应,将发送一个包含自己MAC地址的ARP应答报文。一旦发出ARP请求的设备接收到ARP应答,它会从应答报文中提取出MAC地址,更新自己的ARP表。在将数据发送之前,源设备用这些新信息将数据封装。

当数据报到达目标时,在数据链路层就能够完成传输了。数据链路层去除MAC头,将数据转发给网络层。网络层检查数据,发现自身的IP地址与数据IP报头所携带的目标IP地址相匹配。网络层去除IP报头,将数据转发给OSI模型中下一个更高层——传输层(第4层)。这个过程会一直重复,直到剩余数据分组到达应用层,数据被读出为止。

设备中的ARP表往往由网络系统自动维护,很少需要网络管理员手动修改表项。ARP表定期更新以保存最新信息,如果ARP表中某些信息超过了一定期限,设备会设置删除这些信息。由于ARP保证设备拥有当前最新的ARP表,这有助于限制局域网中的广播业务量。

反向地址解析协议(Reverse Address Resolution Protocol,RARP)通过已知的物理地址来求IP地址。设备通过送出广播请求得到一个IP地址。RARP请求包含一个MAC头、一个IP报头,还有一个ARP请求报文。RARP请求包格式唯一不同的是目标和源MAC地址都必须填写。而源IP地址部分是空白的。因为它以广播方式发送给网络中所有的设备,目标IP地址将设置为全1。

网络中所有设备都可以看到以该广播形式发送的RARP请求帧,但只有指定的RARP服务器才能对RARP请求做出应答。指定RARP服务器通过发送一个RARP应答包,应答包中包含了初始发送RARP请求的设备的IP地址。RARP应答和ARP应答有同样的结构。

RARP应答包含RARP应答消息,并被封装上MAC头和IP报头。当初始发送RARP请求的设备接收到RARP应答时,就会得到自己的IP地址。

(四)网络控制报文协议

ICMP(Internet Control Message Protocol,因特网控制报文协议)用于在TCP/IP设备之间发送差错和控制信息。IP是一个实现网络数据传递不可靠的方法,它采用尽可能努力传送机制,如果网络通信存在问题它就不能确保数据被传递,假如一个中间设备如路由器工作失效或目标设备从网络断开,数据就不能被正确传递。