【计算机网络】网络层IP协议

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介: 【计算机网络】网络层IP协议

一、认识IP协议

IP协议是Internet Protocol(互联网协议)的简称,它是一种网络层的协议。IP协议的主要作用是在互联网中传输数据包(也称为IP数据包),它定义了数据包在互联网上如何寻址、路由和传输的方式。


IP协议是一种面向无连接的协议,不保证数据包的可靠传输,也不保证数据包的传输顺序。因此,IP协议一般与传输层的协议(如TCP协议)一起使用,以保证数据包的可靠传输和有序性。


IP协议还定义了IP地址的格式和分配方式。IP地址是一个32位的二进制数,通常用点分十进制表示法来表示。在互联网中,每个设备都必须拥有唯一的IP地址,这样才能与互联网相通。


IP协议是互联网中最基本的协议之一,它为互联网上的数据通信提供了基础的支持。

二、IP协议头部格式

IP协议头部格式如下:

各协议字段说明:


  • 版本:占4位,协议版本号,通常为4,表示IPv4。
  • 首部长度:占4位,IP协议头部长度,即头部中有多少个32位字节,通常为5个。
  • 服务类型:占8位,用于标记数据包的优先级、延迟、可靠等。其中3位优先权字段(已经弃用),4位TOS字段和1位保留字段。4位TOS字段分别表示:最小延时、最大吞吐量、最高可靠性、最小成本。这四者之间相互冲突,只能选择一个。对于SSH和Telnet这样的程序,最小延时比较重要;对于FTP这样的程序,最大吞吐量比较重要。
  • 总长度:占16位,表示整个IP数据包的长度,包括头部和数据部分。
  • 标识:占16位,用于唯一标识一个 IP 数据包的片段。如果IP数据包在数据链路层被分片,那么每一个片段中的标识相同。
  • 标志:占3位,第一位保留;第二位为 1 表示禁止分片,为 0 则允许分片;第三位表示分片的情况,如果为 0 表示后面还有分片,为 1 则表示当前是最后一个分片。
  • 片偏移:占13位,用于指示当前分片在原始数据包中的偏移量。实际偏移的字节数就是片偏移量乘以 8 得到的。因此,除了最后一个报文外,其他报文的长度必须是 8 的整数倍。
  • 生存时间(Time To Live,TTL):占8位,表示数据包到达目的地的最大跳数。一般是64,每次经过一个路由,TTL的值减 1 ,一直减到 0 还没有到达,那么该数据包就会被丢弃。该字段主要是用来防止出现路由循环。
  • 协议:占8位,表示数据包的上层协议类型,如TCP、UDP、ICMP等。
  • 首部校验和:占16位,用于检测头部在传输过程中出现的错误。
  • 源地址:源IP地址。
  • 目的地址:目的IP地址。
  • 可选字段:可选字段,用于扩展头部,通常不使用。
  • 填充:填充字段,用于保证头部长度位 32 位的整数倍。

三、IP地址划分

1. IP地址分类

IP地址分为两个部分:网络号和主机号

  • 网络号:保证互相连接的两个网段具有不同的标识。
  • 主机号:同一个网段内,主机之间有相同的网络号,但主机号不同,以便区分不同的主机。

如下图:

不同的子网其实就是把网络号相同的主机放到一起。如果在子网中新增一台主机,则该主机的网络号与这个子网的网络号一致,但是主机号必须保证和该子网中的其他主机不同。

在刚开始设计互联网络时,为了便于寻址以及层次化构造网络,IP地址根据网络号划分出五种IP类型:A类地址、B类地址、C类地址、D类地址和E类地址。如下图所示:

  1. A类地址:以0开头,第一个字节(8位)用于网络地址,后面三个字节(24位)用于主机地址。它的网络号可以表示1~126之间的数字,它的默认子网掩码为255.0.0.0。
  2. B类地址:以10开头,前两个字节(16位)用于网络地址,后面两个字节(16位)用于主机地址。它的网络号可以表示128~191之间的数字,它的默认子网掩码为255.255.0.0。
  3. C类地址:以110开头,前三个字节(24位)用于网络地址,后面一个字节(8位)用于主机地址。它的网络号可以表示192~223之间的数字,它的默认子网掩码为255.255.255.0。
  4. D类地址:以1110开头,用于多播地址(multicast addresses),不用于单个主机或网络。
  5. E类地址:以1111开头,保留地址,不分配给主机或网络使用。

其各自的范围如下:


A类:0.0.0.0 到 127.255.255.255

B类:128.0.0.0 到 191.255.255.255

C类:192.0.0.0 到 223.255.255.255

D类:224.0.0.0 到 239.255.255.255

E类:240.0.0.0 到 247.255.255.255

2. 子网划分

随着互联网的飞速发展,这种划分方案的局限性很快显现出来,大多数组织都申请B类网络地址,导致B类地址很快就分配完了,而A类却浪费了大量地址:

  • 例如,申请了一个B类地址,理论上一个子网内能允许6万5千多个主机。A类地址的子网内的主机数更多,然而实际网络架设中,不会存在一个子网内有这么多的情况,因此大量的IP地址都被浪费掉了。

针对这种情况提出了新的划分方案,称为CIDR(Classless Interdomain Routing,无类别域间路由)。


CIDR是一种用于分配IP地址的方法,与传统的IP地址划分方式不同,CIDR将IP地址划分为一个个的子网,每个子网的大小可以根据需要灵活调整。CIDR可以在不改变网络地址和主机地址划分的基础上,更好地利用IP地址空间,避免浪费IP地址,提高IP地址的使用效率。

利用CIDR划分子网的步骤如下:

  1. 确定需要划分的IP地址范围,例如:192.168.0.0~192.168.0.255。
  2. 根据需要分配的子网数量,确定网络前缀长度。例如,如果需要将该地址范围分为4个子网,则网络前缀长度为26位(2的2次方等于4,需要2个二进制位来表示4个子网)。
  3. 将IP地址范围划分为多个子网,每个子网的大小由网络前缀长度确定。
  4. 为每个子网分配一个独立的网络地址和主机地址范围。

例如,将192.168.0.0/24划分为4个子网,每个子网大小相同,即每个子网有64个IP地址。根据CIDR表示法,网络前缀长度为26位,子网划分如下所示:


  • 子网1:192.168.0.0/26,网络地址为192.168.0.0,广播地址为192.168.0.63。
  • 子网2:192.168.0.64/26,网络地址为192.168.0.64,广播地址为192.168.0.127。
  • 子网3:192.168.0.128/26,网络地址为192.168.0.128,广播地址为192.168.0.191。
  • 子网4:192.168.0.192/26,网络地址为192.168.0.192,广播地址为192.168.0.255。

CIDR IP子网划分可以更好地利用IP地址空间,并提供更灵活的子网划分方式。它也更容易管理,因为每个子网都有一个独立的网络地址和主机地址范围,这使得网络管理更加简单和高效。

四、IP地址数量危机

1. IP地址的数量限制

我们知道,IP地址(IPv4)是一个4字节32位的正整数。那么一共只有 2^32 次方个IP地址,大概是43亿左右。而TCP/IP协议规定,每个主机都需要有一个IP地址,这意味着,一共只有43亿台主机能接入网络吗?

实际上,由于一些特殊的IP地址的存在,数量远不足43亿。另外 IP 地址并非是按照主机台数来配置的,而是每一个网卡都需要配置一个或多个IP地址。


CIDR在一定程度上缓解了IP地址不够用的问题(提高了利用率、减少了浪费,但是IP地址的绝对上限并没有增加),但仍然不够用。这时候有三种方式来解决:


  • 动态分配IP地址:只给接入网络的设备分配IP地址。因此同一个MAC地址的设备,每次接入互联网,得到的IP地址不一定是相同的。
  • NAT技术:网络地址转换。
  • IPv6::IPv6并不是IPv4的简单升级版。这是互不相干的两个协议,彼此并不兼容。IPv6 用 16 字节 128 位来表示一个 IP 地址,但是目前还没有普及。

2. NAT技术

网络地址转换(NAT)是一种网络协议,用于在私有网络和公共网络之间转换IP地址。它通常用于家庭、小型办公室或企业网络,以便在一个公共IP地址下运行多个私有IP地址。


NAT技术可以隐藏内部网络的真实IP地址,从而增加了网络安全性。它可以防止来自互联网的未经请求的数据包进入内部网络,并且可以使内部网络中的主机更难受到攻击。


在NAT中,路由器会分配一个公共IP地址给内部网络中的每一个主机,并在必要时将数据包从公共IP地址转换到内部主机的私有IP地址。这使得内部网络中的多个主机可以共享单个公共IP地址,从而减少了IP地址的使用量。


然而,NAT技术也存在一些限制,例如它可能会影响某些应用程序的性能,特别是需要建立点对点连接的应用程序,例如视频会议或P2P文件共享。

五、私网IP和公网IP

如果一个组织内部组建局域网,IP地址只用于局域网内的通信,而不直接连到因特网上。理论上使用任意的IP地址都可以,但是RFC 1918规定了用于组建局域网的私有IP地址:

  • 10.*,前8位是网络号,共 16,777,216 个地址。
  • 172.16.* 到 172.31.* ,前12位是网络号,共 1,048,576 个地址。
  • 192.168.*,前16 位是网络号,共 65,536 个地址。

包含在以上范围中的IP地址,都作为私有IP,其余的则称为全局IP(或公网IP)。

如下图所示:

  • 一个路由器可以配置两个IP地址,一个是 WAN 口 IP ,一个是 LAN 口 IP (子网IP)。
  • 路由器 LAN 口连接的主机,都从属于当前这个路由器的子网中。
  • 不同的路由器,子网IP其实都是一样的(通常都是 192.168.1.1)。子网内的主机 IP 地址不能重复,但是子网之间的 IP 地址可以重复。
  • 每一个家用路由器,其实又作为运营商路由器的子网中的一个节点。这样的运营商路由器可能会有很多级,最外层的运营商路由器,WAN口 IP 就是一个公网IP了。
  • 子网内的主机需要和外网进行通信时,路由器将 IP 首部中的 IP 地址进行替换(替换成 WAN 口 IP)。这样逐级替换,最终数据包中的IP地址成为一个公网 IP 。 这种技术就是 NAT(Network Address Translation,网络地址转换)。

六、路由

1. 认识路由

路由是将网络数据包从一个网络节点传递到另一个网络节点的过程。在网络中,路由器是负责路由数据包的设备。当一个数据包进入路由器时,路由器会根据其目标IP地址来确定数据包应该转发到哪个网络节点。


在路由的过程中,路由器需要查找路由表以确定数据包应该转发到哪个节点。路由表是一个数据结构,它包含了网络中的所有节点和它们之间的联系。当一个数据包到达路由器时,路由器会将其目标IP地址与路由表中的地址进行匹配,以便找到下一个节点的地址。

那么如何判定当前这个数据包该发送到哪里呢? 这个就依靠每个节点内部维护一个路由表:

  • 路由表可以通过route命令查看。
  • 如果目的IP命中了路由表,就直接转发即可。
  • 路由表中的最后一行,主要由下一跳地址和发送接口两部分组成,当目的地址与路由表中其它行都不匹配时,就按缺省路由条目规定的接口发送到下一跳地址。

假设某主机上的网络接口配置和路由表如下:

  • 这台主机有两个网络接口,一个网络接口连到192.168.10.0/24网络,另一个网络接口连到192.168.56.0/24网络。
  • 路由表的 Destination 是目的网络地址,Genmask 是子网掩码,Gateway 是下一跳地址,Iface 是发送接口,Flags 中的 U 标志表示此条目有效(可以禁用某些条目),G 标志表示此条目的下一跳地址是某个路由器的地址,没有G标志的条目表示目的网络地址是与本机接口直接相连的网络,不必经路由器转发。

2. 路由表生成算法

路由表是用于将IP地址映射到网络路径的数据结构,路由表生成算法用于确定路由表中的网络路径。常见的路由表生成算法包括以下几种:

  1. 静态路由:管理员手动配置的路由,它们不会自动更新或更改。静态路由比较容易实现,但需要管理员手动配置,并且不适用于复杂的网络环境。
  2. RIP(Routing Information Protocol):是一种距离向量路由协议,使用跳数作为距离指标,每个路由器将其邻居的路由表传递给其它路由器,以便每个路由器都能获得整个网络的路由信息。
  3. OSPF(Open Shortest Path First):是一种链路状态路由协议,每个路由器将其连接到的所有路由器和网络的信息发送给其它路由器,以便每个路由器都能计算出整个网络的最短路径。
  4. BGP(Border Gateway Protocol):是一种路径向量路由协议,用于在互联网上交换路由信息。它使用AS路径作为路由选择的标准,每个AS(自治系统)都将其拥有的网络告知其它AS,以便确定全局路由。


这些算法都有其优点和局限性,网络管理员需要根据网络拓扑、带宽、延迟等因素来选择适合的路由表生成算法。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
15天前
|
负载均衡 网络协议 算法
|
6天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
33 3
|
8天前
|
网络协议 网络安全 数据安全/隐私保护
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
27 4
|
9天前
|
网络虚拟化
生成树协议(STP)及其演进版本RSTP和MSTP,旨在解决网络中的环路问题,提高网络的可靠性和稳定性
生成树协议(STP)及其演进版本RSTP和MSTP,旨在解决网络中的环路问题,提高网络的可靠性和稳定性。本文介绍了这三种协议的原理、特点及区别,并提供了思科和华为设备的命令示例,帮助读者更好地理解和应用这些协议。
26 4
|
10天前
|
网络协议 定位技术 网络架构
IP 路由:网络世界的导航仪
IP 路由:网络世界的导航仪
23 3
|
17天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
6天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第39天】在数字化时代,网络安全和信息安全成为了我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,帮助读者更好地了解网络安全的重要性,并提供一些实用的技巧和方法来保护自己的信息安全。
19 2
|
7天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第38天】本文将探讨网络安全与信息安全的重要性,包括网络安全漏洞、加密技术和安全意识等方面。我们将通过代码示例和实际操作来展示如何保护网络和信息安全。无论你是个人用户还是企业,都需要了解这些知识以保护自己的网络安全和信息安全。
|
6天前
|
存储 安全 网络安全
云计算与网络安全:探索云服务中的信息安全策略
【10月更文挑战第39天】随着云计算的飞速发展,越来越多的企业和个人将数据和服务迁移到云端。然而,随之而来的网络安全问题也日益突出。本文将从云计算的基本概念出发,深入探讨在云服务中如何实施有效的网络安全和信息安全措施。我们将分析云服务模型(IaaS, PaaS, SaaS)的安全特性,并讨论如何在这些平台上部署安全策略。文章还将涉及最新的网络安全技术和实践,旨在为读者提供一套全面的云计算安全解决方案。
|
6天前
|
存储 安全 网络安全
网络安全与信息安全:漏洞、加密技术与安全意识的交织
【10月更文挑战第39天】在数字化时代,网络安全与信息安全成为保护个人隐私和组织资产的重要屏障。本文将探讨网络安全中的常见漏洞、加密技术的应用以及提升安全意识的重要性。通过具体案例分析,我们将深入了解网络攻击的手段和防御策略,同时提供实用建议,以增强读者对网络安全的认识和防护能力。