学习笔记· 网络层 IPV4(1)

时间:2024-07-07 07:04:02

一.IPV4结构

1.IP地址很熟悉,每台主机都由唯一的IP地址。

二.IPv4数据包

1.包头:实现网络层功能所必需的数据组成。这里是可变长度的

2.数据:包括所需传输的上层数据。总长 - 包头(可变) = 传输数据

数据包通常是由一些固定的结构,保证传输正确。其余是可变部分,和数据部分。

三.直连路由和地址解析协议

ARP,地址解析协议。链路层用于找到IP地址对应的MAC地址,虽然破坏了网络层的抽象,但可以视其为两层之间的桥梁。

包括:

1查询IP地址所对应的MAC地址的报文结构。

2.记录它们之间映射关系的对应表。

过程如下,网络层通过链路层向一台主机发送数据包时,首先查询ARP对应的表。拿到对应IP地址所对应的MAC地址。如果在对应表中找到MAC地址,那就构造一个链路层帧,实现传输。如果没找到映射,就给链路层所有可达主机发ARP报文。先发送操作为1的请求报文,给以太网广播FF:FF:FF:FF:FF:FF。如果是对应接到请求,并且IP相符。则发给那个请求主机,操作类型为2响应报文。请求主机会先将这个响应过来的MAC地址更新到ARP表中,再发送过去以太帧。

四.子网和间接路由

主机R是一台特殊的主机,陈为路由器。一个路由器有多个网卡,每个网卡有它自己的IP地址。子网掩码是32比特数。同一个子网的有效IP地址 与 子网掩码按位与的结果相同(网络地址)。子网中有两个地址是保留的,不被其他主机使用。一个是网络地址,子网中任意IP地址与子网掩码按位与得到的结果。一个是广播地址,子网掩码按位非的结果,再与网络地址按位或的结果。既网络中,不能定义子网的二进制位都置为1.

例子:

IP地址为192.168.1.5,子网掩码为255.255.255.0

IP地址:   11000000.10101000.00000001.00000101

子网掩码:11111111.11111111.11111111.00000000

网络地址:11000000.10101000.00000001.00000000(转换为十进制为192.168.1.0)

我们将这个取反后的子网掩码与网络地址进行“或”运算。这个“或”运算也是一个二进制操作,它比较两个数的每一位,只要有一个数为1,结果就为1。因此,我们得到的广播地址是:

广播地址:11000000.10101000.00000001.11111111(转换为十进制为192.168.1.255)

子网定义后,IPv4提供了一种在不同网络的主机之间传输数据包的方法。关键是每台主机IP模块的路由表。IPv4模块向另一台远程主机发送数据包时,首先决定是使用1.ARP表+直连路由,还是使用间接路由。

每个IPv4模块包含一个路由表。对于每一个可达的目标子网,路由表包含一行信息。内容位 如何将数据包发送到这个子网。