网络层协议以及IPv4编址

学习目标

  • 描述网络层的主要协议
  • 描述ipv4地址的概念、分类以及特殊的ip地址

1、网络层协议

网络层经常被成为ip层,但网络层协议并不是只是ip协议,还包括ICMP协议,以及IPX协议等等。

ip协议

ip是Internet protocol的缩写,Internet protocol本身是一个协议文件的名称,改协议文件的内容非常少,主要是定义并阐述了ip报文的格式。

经常被提及的ip,一般并不是特质Internet protocol这个协议文件的本身,而是泛指直接或者间接与ip协议相关的任何内容。

网络层协议以及IPv4编址_第1张图片

ip协议有版本之分,分别是ipv4和ipv6.目前网络上的ip报文主要还是以ipv4为主,但是正在逐步向ipv6过度,本文若无特别声明,ip均指ipv4.

  • ipv4协议族是TCP/IP协议族中最为核心的协议族。他工作在TCP/Ip协议栈的网络层,该层与OSI参考模型的网络相对应。
  • ipv6是网络层协议的第二代标准协议,同时也被成为IPng,他是Internet工程任务组IETF设计的以套规范,是ipv4的升级版本。

网络层协议以及IPv4编址_第2张图片

 应用数据需要经过TCP/IP每一层处理之后才能够通过网络传输到目的端,每一层上都使用该层的协议数据单元PDU(protocol data unit)彼此交换信息。不同层的PDU包含不同的信息,因此PDU在不同层被赋予了不同的名称。

  •  如上图数据在传输层添加TCP报头后得到的PDU被称为Segment(数据段);数据段被传递给网络层,网络层添加IP报头得到的PDU被称为Packet(数据包);数据包被传递到数据链路层,封装数据链路层的报头和尾部得到的PDU被称为Frame(数据帧);最后数据帧被转换为比特,通过网络介质传输。
  • 这种协议栈逐层向下传递数据,并填加报头和报尾的过程被成为封装

本文主要讨论的是数据在网络层的封装,如果封装为IP协议,贼被称为ip packet(IP数据包)。

IPv4报文格式

网络层协议以及IPv4编址_第3张图片

IP Packet(IP数据包),其包头主要内容如下:

  • Version:4 bit,4:表示为IPv4;6:表示为IPv6。
  • Header Length:4 bit,首部长度,如果不带Option字段,则为20,最长为60。
  • Type of Service:8 bit,服务类型。只有在有QoS差分服务要求时,这个字段才起作用。
  • Total Length:16 bit,总长度,整个IP数据包的长度。
  • Identification:16 bit,标识,分片重组时会用到该字段。
  • Flags:3 bit,标志位。 ▫ Fragment Offset:12 bit,片偏移,分片重组时会用到该字段。
  • Time to Live:8 bit,生存时间。
  • Protocol:8 bit,协议:下一层协议。指出此数据包携带的数据使用何种协议,以便目 的主机的IP层将数据部分上交给哪个进程处理。

                常见值:

                        − 1: ICMP, Internet Control Message;

                        − 2: IGMP, Internet Group Management;

                        − 6: TCP , Transmission Control Protocol;

                        − 17: UDP, User Datagram Protocol。

  • Header Checksum:16 bit,首部检验和。
  • Source IP Address:32 bit,源IP地址。
  • Destination IP Address:32 bit,目的IP地址。
  • Options:可变,选项字段。
  • Padding:可变,填充字段,全填0。

数据包分片:

将报文分割成多个片段的过程叫做分片。

网络中转发的ip报文的长度可以不同,但如果报文长度超过了数据链路所支持的最大长度,则报文就需要分割成若干个较小的片段才能够在链路上传输。

网络层协议以及IPv4编址_第4张图片

  • Identification:16 bit,发送主机赋予的标识,分片重组时会用到该字段。
  • Flags:3 bit,标志位。

                保留段位:0,保留。

                不分段位:1,表示“不能分片”;0,表示“能分片”。

                更多段位:1,表示“后面还有分片”;0,表示“最后一个数据片”。

  • Fragment Offset:12 bit,片偏移,分片重组时会用到该字段。指出较长的分组在分片后, 该片在原分组中的相对位置,与更多段位组合,帮助接收方组合分段的报文。

生存时间(Time to Live,TTL)

TTL字段设置了数据包可以经过的路由数目。

一旦经过一个路由器,TTL值就会减一,当该字段值为0时,数据包将会被丢弃。

网络层协议以及IPv4编址_第5张图片

Time to Live:8 bit,生存时间。可经过的最多路由数,即数据包在网络中可通过的路由器数 的最大值。

  • 报文在网段间转发时,如果网络设备上的路由规划不合理,就可能会出现环路,导致 报文在网络中无限循环,无法到达目的端。环路发生后,所有发往这个目的地的报文 都会被循环转发,随着这种报文逐渐增多,网络将会发生拥塞。
  • 为避免环路导致的网络拥塞,IP报文头中包含一个生存时间TTL(Time To Live)字段。 报文每经过一台三层设备,TTL值减1。初始TTL值由源端设备设置。当报文中的TTL降 为0时,报文会被丢弃。同时,丢弃报文的设备会根据报文头中的源IP地址向源端发送 ICMP错误消息。(注意:网络设备也可被配置为不向源端发送ICMP错误消息。)

协议号(Protocol)

ip报文头中的协议号字段标识了将会继续除了该报文的协议。即指出次数据包写带的数据使用何种协议,以便目的主机的IP层将数据部分上报给哪个进程处理。

网络层协议以及IPv4编址_第6张图片

  • 目的端的网络层在接受并处理报文以后,需要决定下一步对报文如何处理。IP报文头中的协议字段标识了将会继续处理报文的协议。
  • 该字段可以标识网络层协议,如ICMP(Internet Control Message Protocol,因特网控制报文 协议,对应值0x01);也可以标识上层协议,如TCP(Transmission Control Protocol,传输控 制协议,对应值0x06)、UDP(User Datagram Protocol,用户数据包协议,对应值0x11)。

 IPv4地址介绍

  • ip地址在网络中用于标识一个节点(或者网络设备的接口)。
  • ip地址用于ip报文在网络中的寻址

网络层协议以及IPv4编址_第7张图片

  • 在IP网络上,如果用户要将一台计算机连接到Internet上,就需要申请一个IP地址。IP地址就像现实中的地址,可以标识网络中的一个节点,数据就是通过它来找到目的地的。即我们 通过IP地址实现全球范围内的网络通信。
  • IP地址是网络设备接口的属性,不是网络设备本身的属性。当我们说给某台设备分配一个IP 地址时,实质上是指给这台设备的某个接口分配一个IP地址。如果设备有多个接口,通常每 个接口都至少需要一个IP地址。
  • 注:需要使用IP地址的接口,通常是路由器和计算机的接口。

IPv4地址的标识

一个ipv4地址有32为bit

ipv4地址通常采用“点分十进制”标识。

ipv4的地址范围为0.0.0.0~255.255.255.255。

网络层协议以及IPv4编址_第8张图片

IP地址表示

  • IP地址是长度是32 bit,由4个字节组成。为了阅读和书写方便,IP地址通常采用点分 十进制数来表示。

点分十进制表示法

  • IP地址表现形式能够帮助我们更好的使用和配置网络,但通信设备在对IP地址进行计 算时使用的是二进制的操作方式,因此掌握十进制、二进制的转换运算非常有必要

IPv4地址范围

  • 00000000.00000000.00000000.00000000~11111111.11111111.11111111.11111111,即 0.0.0.0~255.255.255.255。

 IP地址的构成

网络层协议以及IPv4编址_第9张图片

 IPv4地址由如下两个部分构成:

  • 网络部分(网络号):用来标识一个网络。
    • ip地址不饿能反映任何有关主机位置的地理信息,只能通过网络号码字段判断处主机属于哪个网络。
    • 对于网络号相同的设备,无论实际所处的地理位置如何,它们都是在同一个网路中。
  • 主机部分(主机号):用来区分一个网络内的不同主机。

网络掩码(net mask),又称为子网掩码。

  • 网络掩码为32bit,与ip地址的位数一样,通常也使用点分十进制来表示。
  • 网络掩码不是一个ip地址,在二进制的表示上是一堆连续的1,后面接一堆连续的0.
  • 通常将网络掩码中的1的个数成为这个网络掩码的长度,如掩码0.0.0.0的长度为0,而掩码255.0.0.0的长度为8.
  • 网络掩码一般与ip地址结合使用。其中值为1的bit对应ip地址中的网络为,值为0的bit对应ip地址中的主机位,以此来辅助我们识别一个ip地址中的网络位与主机位。即网络掩码中1的个数就是ip地址中网络号的位数,0的个数就是ip地址中主机号的位数。 

IP地址寻址

网络层协议以及IPv4编址_第10张图片

  • 网络号用于表示主机所在的网络,类似于“XX省XX市XX区XX小区”的作用。
    • 主机号用于表示网络号所定义的网络范围内某个特定的主机接口,类似于门牌号“XX栋XX 号”的作用。
  • 网络寻址:
    • 二层网络寻址:可直接通过IP地址,找到对应的主机接口。

    • 三层网络寻址:利用网关转发来自不同网段之间的数据包

  • 网关:
    • 报文转发过程中,首先需要确定转发路径以及通往目的网段的接口。如果目的主机与源主机不在同一网段,报文需要先转发到网关,然后通过网关将报文转发到目的网段。
    • 网关是指接收并处理本地网段主机发送的报文并转发到目的网段的设备。为实现此功能,网关必须知道目的网段的路由。网关设备上连接本地网段的接口地址即为该网段的网关地址。

IP地址分类(有类编址)

网络层协议以及IPv4编址_第11张图片

  • 为了方便IP地址的管理及组网,IP地址分成五类:
    • A、B、C、D、E类的类别字段分别是二进制数0、10、110、1110、1111,通过网络号 码字段的前几个比特就可以判断IP地址属于哪一类,这是区分各类地址最简单的方法。
    • A、B、C三类地址是单播IP地址 (除一些特殊地址外),只有这三类地址才能分配给主机 接口使用。
    • D类地址属于组播IP地址。
    • E类地址专门用于特殊的实验目的。
  • A、B、C类地址比较:
    • 使用A类地址的网络称为A类网络;使用B类地址的网络称为B类网络;使用C类地址的网络称为C类网络。
    • A类网络的网络号为8 bit,个数很少,但所允许的主机接口的个数很多;首位恒定为0, 地址空间为:0.0.0.0~127.255.255.255。
    • B类网络的网络号为16 bit,介于A类和C类网络之间;首两位恒定为10,地址空间为: 128.0.0.0~191.255.255.255。
    • C类网络的网络号为24 bit,个数很多,但所允许的主机接口的个数就很少;首三位恒定为110,地址空间为:192.0.0.0~223.255.255.255。
  • 注:
    • 主机 (Host),通常指路由器和计算机的统称。并且常把主机的某个接口的IP地址简称 为主机IP地址。
    • 组播地址:组播能实现一对多传递消息。

IP地址类型

网络层协议以及IPv4编址_第12张图片

  • 网络地址
    • 网络号为X,主机号的每个比特都为0。
    • 不能分配给具体的主机接口使用。
  • 广播地址 ▫ 网络号为X,主机号的每个比特都为1。
    • 不能分配给具体的主机接口使用。
  • 可用地址
    • 又称主机地址,可用分配给具体的主机接口使用。
  • 一个网段可用地址数量计算:
    • 一个网段的主机位为n位,则IP地址数为:2ⁿ,可用IP地址数为:2ⁿ-2 (减去网络地址和广播地址)。

 

 

你可能感兴趣的:(网络,ipv)