网络层(一)

120 阅读5分钟

这是我参与11月更文挑战的第22天,活动详情查看:2021最后一次更文挑战

1. 数据包在互联网中的传送

image.png

网络层提供的服务

2. 网际协议IP

网际协议IP是TCP/IP体系中两个最主要的协议之一。与IP协议配套使用的还有四个协议:

地址解析协议ARP(Address Resolution Protocol)

逆地址解析协议RARP(Reverse Address Resolution Protocol)

网际控制报文协议ICMP(Internet Control Message Protocol)

网际组管理协议IGMP(Internet Group Management Protocol)

image.png

1)、 IP地址及其表示方法

  我们把整个因特网看成为一个单一的抽象的网络。IP地址就是给每一个连接在因特网上的主机(或路由器)分配一个在全世界范围是惟一的32位的标识符。

  IP地址现在有因特网名字和号码指派公司ICANN(Internet Corporation for Assigned Names and Numbers)进行分配

2) 、地址解析协议ARP

  不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。

  每一个主句都设有一个ARP高速缓存(ARP cache),里面有所有在局域网上的个主机和路由器的IP地址到硬件地址的映射表。

  当主机A欲向本局域网上的某主机B发送IP数据报时,就先在其ARP高速缓存中查看有没有主机B的IP地址。如果有,就可以查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址。

  ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。

  如果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。

  从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析的过程是不知道的。

  只要主机或路由器要和本网络上的另外一个已知IP地址的主机或者路由器进行通信,ARP协议就会自动地将该IP地址解析为链路层所需要的硬件地址。

3)、 逆地址解析协议RARP

  逆地址解析协议RARP使只知道自己硬件地址的主机能够知道其IP地址。

  这种主机往往是无盘工作站,因此RARP协议目前已很少使用。

4)、IP数据报的格式

  一个IP数据报由首部和数据量部分组成。

  首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。

  在首部的固定部分的后面是一些可选字段,其长度是可变的。

    版本——占4位,指IP协议的版本,目前的版本协议号为4(即IPv4)

    首部长度——占4位,可表示的最大数值是15个单位(一个单位是4个字节)因此IP的首部长度的最大值是60字节

    分区服务——占8位,用来获得更好的服务,在旧标准中叫做服务类型,但实际上一直未被使用过。1998年这个字段改名为区分服务。只有在使用区分服务时,这个字段才起作用。在一般的情况下都不使用这个字段

    总长度——占16位,指首部和数据之和的长度,单位是字节,因此数据报的最大长度为65535字节。总长度必须不超过最大传送单元MTU。

    标识——占16位,它是一个计数器,用来产生数据报的标识。

    标志——占3位,目前只有前两位有意义。标志字段的最低位是MF(More Fragment)。MF=1表示后面“还有分片”。MF=0表示最后一个分片。标志位字段的中间一位是DF(Don't Fragment)。只有当DF=0时才允许分片。

    片偏移——占12位,较长的分片后某片在原分组中的相对位置。片偏移以8个字节为偏移单位。

    生存时间——占8位,记为TTL(Time To Live),数据报在网络中可通过的路由器数量的最大值。

    协议——占8位,协议字段指出此数据报携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给那个处理过程。

    首部检验和——占16位,该字段只检验数据报的首部不检验数据部分。这里不采用CRC检验码而采用简单的计算方法。

    源地址——占4位,发送数据的IP地址

    目的地址——占4位,接收数据的IP地址

  IP数据报首部的可变部分

    IP首部的可变部分就是一个选项字段,用来支持排错,测量以及安全等措施,内容很丰富。

    选项字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目。

    增加首部的可变部分是为了增加IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的,这就增加了每一个路由器处理数据报的开销。

    实际上这些选项很少被使用。