网络层与网络层协议IP(一)

文章目录

网络层

网络层基本概念

  • 主机: 配有IP地址, 也要进行路由控制的设备;
  • 路由器: 既配有IP地址, 又能进行路由控制;
  • 节点: 主机和路由器的统称;

网络层主要协议

  • IP:互联网协议,是网络层无可争议的核心。它定义了数据包格式(IP数据报)和寻址方案。IP协议是无连接、不可靠的。
  • ICMP :互联网控制报文协议。用于传递网络控制信息和错误报告。是网络故障诊断的关键工具。常用工具:ping(使用ICMP回显请求/应答测试连通性)、traceroute(跟踪数据包路径)。
  • 路由协议内部网关协议 :在同一个自治系统内部使用,如RIP、OSPF。外部网关协议:在不同自治系统之间使用,最主要的就是BGP,它是"互联网的骨架协议",维护着全球网络可达性的路由表。
  • ARP地址解析协议。严格来说属于链路层 ,但它是IP层能工作的关键辅助。负责将IP地址解析为本地网络的MAC地址

网络层的关键设备:路由器

  • 核心功能路由选择分组转发
  • 工作流程: 1.收到一个数据包,2.提取目标IP地址 ,3.查询路由表 ,根据"最长前缀匹配"原则,决定数据包的下一跳地址出口接口,4.将数据包转发到下一跳。
  • 路由器连接不同的网络,是互联网得以互联的核心设备。

网络层的核心思想

通过全局统一的逻辑地址(IP),在由无数路由器构成的网状结构中,为每个数据包动态地、智能地找到一条通往目的地的路径,从而将全世界所有网络编织成一个单一的、虚拟的、巨大的通信平台------互联网

对比网络层与传输层

IP协议

IP 是 互联网协议 的简称,是作为数据在网络中可靠传输的基础而设计的,实现了设备间寻址路由 的关键功能。它提供了一种无连接的、尽力而为 的数据包传输服务。IP是互联网的基石。它的设计哲学是简洁高效,专注于完成核心任务,而将可靠性、顺序控制等复杂问题交由上层(主要是传输层的TCP)处理。

IP核心任务

IP协议主要解决两大根本问题:

  • 寻址 :如何唯一地标识互联网上数以亿计的设备
  • 路由与转发 :如何将一个数据包从源设备跨越多个网络,最终送到目标设备

IP协议头格式

  • 4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4
  • 4位头部长度 (header length): 单位是4字节, . 4位表示最大的数字是15, 因此IP头部最大长度是60字节.
  • 8位服务类型 (Type Of Service): 3位优先权字段(已经弃用), 4位TOS字段, 和1位保留字段(必须置为0). 4位TOS分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本. 这四者相互冲突, 只能选择⼀个. 对于ssh/telnet这样的应用程序, 最小延时比较重要; 对于ftp这样的程序, 最大吞吐量比较重要.
  • 16位总长度(total length): IP数据报整体占多少个字节
  • 16位标识 (id): 唯⼀的标识主机发送的报文. 如果IP报文在数据链路层被分片了, 那么每⼀片里面的这个id都是相同的.
  • 3位标志字段 : 第1位保留(保留的意思是现在不用, 但是还没想好说不定以后要用到). 第2位置为1表示禁止分片 , 这时候如果报文长度超过MTU, IP模块就会丢弃报文. 第3位表示"是否还有更多分片" , 如果分片了的话, 最后⼀个分片置为0, 其他是1. 类似于⼀个结束标记.
  • 13位分片偏移 (framegament offset): 是分片相对于原始IP报文开始处的偏移 . 其实就是在表示当前分片在原报文中处在哪个位置. 实际偏移的字节数是这个值 乘 8 得到的. 因此, 除了最后⼀个报文之外, 其他报文的长度必须是8的整数倍(否则报文就不连续了).
  • 8位生存时间 (Time To Live, TTL): 数据报到达目的地的最大报文跳数 . ⼀般是64. 每次经过⼀个路由, TTL = TTL - 1, ⼀直减到0还没到达, 那么就丢弃了. 这个字段主要是用来防止出现路由循环
  • 8位协议: 表示上层协议的类型
  • 16位头部校验和 : 使用CRC进行校验, 来鉴别头部是否损坏
  • 32位源地址和32位目标地址: 表示发送端和接收端.
  • 选项字段(不定长, 最多40字节):

网段划分

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

  • 网络号: 保证相互连接的两个网段具有不同的标识;
  • 主机号: 同⼀网段内, 主机之间具有相同的网络号, 但是必须有不同的主机号
  • 同一子网其实就是把网络号相同的主机放到⼀起.
  • 如果在子网中新增⼀台主机, 则这台主机的网络号和这个子网的网络号⼀致, 但是主机号必须不能和子网中的其他主机重复

通过合理设置主机号和网络号, 就可以保证在相互连接的网络中, 每台主机的IP地址都不相同

手动管理子网内的IP,非常麻烦

  • DHCP, 能够自动的给子网内新增主机节点分配IP地址, 避免了手动管理IP的不便.
  • ⼀般的路由器都带有DHCP功能. 因此路由器也可以看做⼀个DHCP服务器.

五类IP

过去提出一种划分网络号和主机号的方案:将所有的IP地址划分为五类

各类IP地址范围:

  • 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

五类IP的局限性

  • A类网络灾难:
  1. 一个A类网络(如10.0.0.0/8)拥有1677万个主机地址。
  2. 但现实中,没有任何一个组织需要如此庞大的单一网络。将这样一个网络分配给一个公司或大学,意味着超过99.9%的地址被闲置,无法被互联网其他部分使用。
  • C类网络不足:
  1. 一个C类网络(如192.168.1.0/24)只有254个主机地址。
  2. 对于需要300、500甚至上千台主机的中小型组织来说,一个C类网络不够用,申请多个C类网络又会导致管理复杂和路由条目增加。
  • B类网络的尴尬:
  1. 一个B类网络(如172.16.0.0/16)有6.5万个主机地址。
  2. 许多组织的主机规模在几百到几千台,申请一个B类网络会造成数万个地址的浪费。但由于没有介于B类和C类之间的选项,它们被迫申请B类网络,加剧了地址浪费。
  • 固定的网络边界:
  1. A类:前8位是网络位(掩码 255.0.0.0 或 /8)
  2. B类:前16位是网络位(掩码 255.255.0.0 或 /16)
  3. C类:前24位是网络位(掩码 255.255.255.0 或 /24)

这种分类方式完全无法适应不同组织的实际需求 。一个拥有2000台主机的组织必须使用一个浪费了6.3万个地址的B类网络,而无法自定义一个掩码长度更合适的网络(例如 /21,提供2046个地址)。

  • 不支持可变长子网划分
    在有类别时代,一个组织内部的所有子网必须使用相同的子网掩码。
  1. 例如,一个拥有B类地址172.16.0.0/16的公司,其总部可能需要500台主机,而每个小分支机构可能只需要50台。
  2. 在传统方式下,所有子网(包括总部和分支机构)都必须划分成相同大小的子网。为了满足总部500台主机的需求,所有子网都会变得很大,导致在分支机构中产生大量地址浪费。

这是导致IPv4地址提前耗尽的最主要原因。

为了克服上述所有局限性,互联网工程界引入了一系列革命性的技术和理念:

  1. 子网划分:在组织内部,允许将一个A/B/C类网络进一步划分为更小的子网,提高内部地址利用率。但这没有解决网络间的浪费问题。
  2. CIDR :最终的解决方案,实现无类别域间路由。完全废除A/B/C类的固定边界。任意前缀长度 :网络掩码可以是任意长度(/8到/30等),使用CIDR表示法(如 192.168.0.0/22)。路由聚合 :可以将多个连续的前缀(如4个/24)聚合成一个更短的前缀(如一个/22)进行通告,极大地压缩了全球路由表的规模。按需分配:ISP可以根据客户的实际需求,精确地分配一个合适大小的地址块(例如 /26, /27),从根本上解决了地址浪费问题。
  3. NAT:作为一种"缓兵之计",通过地址复用(一个公网IP供多个私网设备使用)极大地减缓了公有IPv4地址耗尽的速度。
  4. IPv6:从根源上解决问题,提供近乎无限的地址空间

网段划分的核心:子网掩码

子网掩码用来明确区分一个IP地址中,哪部分是"网络标识",哪部分是"主机标识"。

  • 格式:与IP地址相同,32位二进制,由连续的1和连续的0组成。
  • 表示法1. 点分十进制:255.255.255.0,2. CIDR前缀长度(更常用):/24 (表示前24位是网络位)
  • 关键规则 :子网掩码中的 1 对应的IP地址部分就是网络位 。子网掩码中的 0 对应的IP地址部分就是主机位
  • 例如 :192.168.1.100/24
    IP地址 : 11000000.10101000.00000001.01100100
    子网掩码 /24 : 11111111.11111111.11111111.00000000 (即 255.255.255.0)
    结论:前24位(192.168.1)是网络号,后8位(.100)是主机号。所有192.168.1.x(x从1到254)的设备都在同一个网段,可以直接通信。

如何进行网段划分

相关推荐
lcreek2 小时前
Linux 信号机制详解:从硬件异常到安全编程实践
linux·系统编程
南 阳2 小时前
Python从入门到精通day10
linux·windows·python
xdpcxq10292 小时前
Apache 详解 在 Ubuntu 24 中安装和配置 Apache
linux·ubuntu·apache
天上飞的粉红小猪2 小时前
Socket编程TCP
服务器·网络·tcp/ip
General_G2 小时前
irobot_benchmark的编译和使用
linux·中间件·机器人·ros2
zbtlink2 小时前
Wi-Fi 6路由器技术成熟度解析:它究竟“新”在哪里?
网络·智能路由器
独隅2 小时前
Linux 正则表达式 的简介
linux·mysql·正则表达式
chinesegf2 小时前
虚拟机ubuntu中磁盘满了 + 镜像损坏,如何解决
linux·运维·ubuntu
神秘剑客_CN2 小时前
deepin安装Bottles并运行win程序
linux