【TCP/IP】入门学习笔记 四 - TCP/IP 协议系统之 网际层

专业术语:

地址类:IP地址的分类系统。网络类别确定了将地址划分为网络ID和主机ID的方式。

 

地址解析协议(ARP):网际层的重要协议,用于获取与IP地址相对应的物理地址。ARP缓存记录着最近解析的物理地址和IP地址对。

 

BOOTP:用来远程启动计算机或其他网络设备的协议。

 

点分十进制:基数为10,而且使用4个数字来表示二进制IP地址的形式,这4个数字分别表示二进制地址的4个八位组,这4个数字之间使用句点分开(209.121.131.14)。

 

主机ID:IP地址的组成部分,代表网络上的一个节点。一个网络内每个节点的IP地址都应该具有唯一的主机ID。

 

Internet控制消息协议(ICMP):网际层的重要协议,路由器利用它发送消息来告知源IP关于路由的问题。ping命令也使用ICMP来判断网络上其他主机的状态。

 

网际协议(IP):网际层的重要协议,用于数据报的寻址、传递和路由。

 

多播:允许数据报同时发送给一组主机的技术。

 

网络ID:IP地址的组成部分,表示网络。

 

八位组:一个8位的二进制数值。

 

逆向地址解析协议:TCP/IP的一个协议,根据物理地址返回相应的IP地址,一般被远程启动的无盘工作站使用。

 

子网:TCP/IP地址空间的逻辑划分。

 

原理图解:

一、网关接收去往其他网络的数据报

1.如果目的地址与源地址在同一个网段,源计算机就把数据包直接发送给目的计算机。IP地址被ARP解析为物理地址,数据被直接发送到目的网络适配器。2.如果目的地址与源地址不在一个网段上,就执行如下过程。

a)直接将数据报发送到网关。网关是位于局域网网段上的一个设备,能够把数据报转发到其他网段(在第1章讲到,网关基本上也算是一个路由器)。网关地址被ARP解析为物理地址,数据被发送到网关的网络适配器。

b)数据报通过网关被路由到较高级别的网段(见图),再次重复上述过程。如果目的地址在这个新网段里,数据就被发送到目的,否则数据报就会被发送到另一个网关。

c)数据报经过一系列网关被转发到目的网段,目的IP地址被ARP解析为物理地址,数据被发送到目的网络适配器。

 

为了在复杂的路由式网络中传输数据,网际层协议必须具有以下功能:

识别网络中所有的计算机;

提供一种方式来判断何时需要通过网关来传递消息;

提供一种与硬件无关的方式来识别目的网段,从而让数据报能够高效率地经过路由器到达正确的网段;

提供一种方式把目标计算机的逻辑IP地址转化为物理地址,让数据能够传输给目的计算机的网络适配器。

 

二、IP报头

每个IP数据报都以一个IP报头开始。源计算机的TCP/IP软件构造这个IP报头,目的计算机的TCP/IP软件利用IP报头中封装的信息处理数据。IP报头包含大量信息,包括源IP地址、目的IP地址、数据报长度、IP版本号和对路由器的特殊指令。

 

 

版本:这个4位的字段表示所使用的IP版本。目前IP版本是4,相应的二进制是0100。

 

网际报头长度(IHL):这个4位字段表示IP报头以32位字为单位的长度。IP报头的最小长度是5个32比特字,相应的二进制表示是0101。

 

服务类型:源IP能够指定特殊的路由信息。有些路由器会忽略这个字段的信息,但随着服务质量(QoS)技术的出现,这个字段得到了更多的重视。这个8位字段的主要用途是对等待通过路由器的数据报区分优先级,而目前大多数IP实现把是这个字段全填为0。

 

总长度:这个16位的字段表示IP数据报的长度,单位是字节,这个长度包含了IP报头和数据载荷。

 

标识:这个16位的字段是一个依序变大的数值,分配给源IP发出的消息。当传递到IP层的消息太大而不能放到一个数据报里时,IP会把消息拆分到多个数据报,并对这些数据报排序分配相同的标识号。接收端利用这些数值重组为原始消息。

 

标记:这个字段表示分段可能性。第1位未使用,其值应该为0。第2位称为DF(不分段),表示是否允许分段,0表示允许,1表示不允许。第3位是MF(更多分段),表示是否还有分段正在传输,设置为0时表示没有更多分段需要发送,或是数据报根本没有分段。

 

分段位移:这个13位的字段是一个数值,被赋予每个连续的分段。目的设备的IP利用这个值以正确的次序重组分段。这个数值使用的单位是8字节。

 

生存时间(TTL):这个字段表示数据报在被抛弃之前能够保留的时间(以秒为单位)或路由器跳数。每个路由器都会检查这个字段,并且至少把它减去1,或数据报在路由器中延迟的秒数。当这个字段的值为0时,数据报会被抛弃。跳数代表数据报到达目的之前必须经过的路由器的数量。如果数据报在到达目的之前经过了5个路由器,我们就说距离目的有5跳。

 

协议:这个8位的字段表示接收数据载荷的协议,比如协议标识为6(二进制为00000110)的数据报会被传递到TCP模块。下面是一些常见的协议标识值。

 

报头校验和:这个字段包含16位的校验和,只用于检验报头本身的有效性。数据报经过的每个路由器都会对这个值进行重新计算,因为TTL字段的值是在不断变化的。

 

源IP地址:这个32位的字段包含了数据报的源IP地址。

 

目的IP地址:这个32位的字段包含了数据报的目的IP地址。目的IP根据这个值检验发送的正确性。

 

IP选项:这个字段支持一些可选的报头设置,主要用于测试、调试和安全的目的。这些选项包括严格源路由(数据报必须经过指定的路由)、网际时间戳(经过每个路由器时的时间戳记录)和安全限制。

 

填充:IP选项字段的长度不是固定的。填充字段可以提供一些额外的0,从而保证整个报头的长度是32位的整倍数(报头长度必须是32位字的整倍数,因为“网际头长度(IHL)”字段以32位字为单位表示报头的长度)。

 

IP数据载荷:这个字段一般用于保存传递给TCP或UDP(在传输层中)、ICMP或IGMP的数据。数据块的长度不定,可以包含数千字节。

 

三、IP地址类型

IP地址中的一部分是网络ID,另一部分是主机ID。地址分类系统把IP地址划分到不同的地址类。绝大多数IP地址属于以下几类。

A类地址:IP地址的前8位表示网络ID,后24位表示主机ID。

B类地址:IP地址的前16位表示网络ID,后16位表示主机ID。

C类地址:IP地址的前24位表示网络ID,后8位表示主机ID。

 

那么,计算机或路由器如何判断一个IP地址是A类、B类还是C类呢?TCP/IP地址的规则使得地址本身就可以说明其类别:二进制地址的前几个位说明了地址属于哪一类,规则如下:

如果32位的地址以0开头,它就是A类地址;

如果32位的地址以10开头,它就是B类地址;

如果32位的地址以110开头,它就是C类;

 

四、地址解析协议ARP

网段上每台主机在内存中都保存着一个被称为ARP表或ARP缓存的表格,其中包含着网段上其他主机的IP地址与物理地址的对应关系(见图)。当主机需要向网段上的其他主机发送数据时,它会查看ARP缓存来获得目的的物理地址。ARP缓存是动态变化的。如果要接收数据的地址当前并不存在于ARP缓存,主机就会发送一个名为ARP请求帧的广播。

 

 

ARP请求帧包含未解析的IP地址,还包含发送这个请求的主机的IP地址和物理地址。网段上的其他主机接收到这个ARP请求,拥有这个未解析IP地址的主机会向发出请求的主机发送自己的物理地址。这个新的IP地址与物理地址的对应关系就会添加到请求主机的ARP缓存里。

 

 

 

 

----------------------------------------------------------------------

笔记整理自《TCP/IP入门经典(第5版)》感兴趣可以购买或者下载电子书

----------------------------------------------------------------------

posted @ 2020-03-24 16:59  蓝色星辰1993  阅读(450)  评论(0编辑  收藏  举报