网络层(IP)

基本概念

在这里插入图片描述

  • 子网和局域网是一个概念
  • 主机: 配有 IP 地址, 也能进行路由控制的设备;
  • 路由器: 即配有 IP 地址, 又能进行路由控制;
  • 节点: 路由器和主机的统称。

背景

  1. 两主机并不是直接连接的,路径选择问题?为什么? 由网络层(IP)解决
  2. 怎么把数据交给路由器,怎么办? 这是局域网通信的问题,两主机是直连的,在同一个子网中,由数据链路层解决

深入理解IP

  • 公网IP在全球具有唯一性。
  • IP,比如 192.168.72.1,这是点分十进制的
  • IP地址 = 目的网络 + 目的主机号

重谈TCP和UDP

  • IP解决的核心问题是主机距离变长
    在这里插入图片描述

网络层报头

在这里插入图片描述

  • 4位首部长度:跟TCP报头中的一样
  • 16位总长度:报文的大小

  • 如何解包?封包?
    解包:固定的20字节,然后根据4位首部长度+16为总长度来解包
    封包:根据格式封包就可以了

  • 8位协议:表示上层协议类型(UDP,TCP…)

  • 如何分用?
    根据8位协议,就可以知道交给上层的哪个协议。


  • TTL(生存时间):报文的生存时间,每经过一个路由器都会 - -,可以防止报文在环路中一直滞留,占用资源的情况。

网段划分

  • 是什么?为什么?怎么办?

是什么?

  • 有了目的IP是不够的,网路是被** 精心设计 (子网划分)**的
    被谁设计的? 网路服务提供商

在这里插入图片描述

  • 路由器有两个IP,路由器的主机号大都为1
  • 子网是有网络号的(比如xxx.xxx.xxx.0)
    在这里插入图片描述
  • 子网内的IP地址,都是从哪里来的?谁给的?
    路由器有构建子网的能力
  • IP = 目标网络号+目标主机号
  • IP报文被转发:
    1. 根据目标网络,将报文转发到目标网络
    2. 转发到目标网络后,将报文在内网进行转发

为什么?

在这里插入图片描述

  • 主机A将数据发送给主机B,但如何找到主机B?
  1. 线性遍历全球的主机,效率很低
  2. 主机A知道主机B的IP,将主机B的IP与主机A的网络号进行比较不相等,将数据交给路由器,路由器根据报文中目的IP查路由表,确定了主机B的网络,将报文交给相应的路由器,最后进行内网转发交给主机B。
  • 第二种方式效率高—>本质是查找—>本质是淘汰(淘汰效率高)
  • 在进入目标子网之前,不关心主机号—>报文在进行转发过程中,在进入目标网络之前,路由器只关心网络号,之后就是内网转发
  • 在进行路上路由时,路由的基本单位是网络
  • 总结,根据上面知道了为什么? 支持网络建设,提高了淘汰率。

怎么办?

  • 以前划分网络号和主机号的方式
    在这里插入图片描述

子网掩码

  • 新的划分方案CIDR(Classless Interdomain Routing)

在这里插入图片描述

IP 地址和子网掩码还有一种更简洁的表示方法,例如 140.252.20.68/24,
表示 IP 地址为140.252.20.68, 子网掩码的高 24 位是 1,也就是 
255.255.255.0

特殊IP

  • 将 IP 地址中的主机地址全部设为 0, 就成为了网络号, 代表这个局域网;
  • 将 IP 地址中的主机地址全部设为 1, 就成为了广播地址, 用于给同一个链路中
    相互连接的所有主机发送数据包;
  • 127.*的 IP 地址用于本机环回(loop back)测试,通常是 127.0.0.1
    在这里插入图片描述

IP地址不够用

  • 随着网络的发展,更多的设备需要入网,IP不够用:
    1. 动态分配 IP 地址: 只给接入网络的设备分配 IP 地址. 因此同一个 MAC 地址的设备, 每次接入互联网中, 得到的 IP 地址不一定是相同的;
    2. NAT 技术(后面会重点介绍);
    3. IPv6: IPv6 并不是 IPv4 的简单升级版. 这是互不相干的两个协议, 彼此并不兼容; IPv6 用 16 字节 128 位来表示一个 IP 地址; 但是目前 IPv6 还没有普及;

公网IP和私有IP

  • 网络可以分为局域网和公网

  • 私有IP(只能用来组建局域网,私有IP不能出现在公网中)

    1. 10.*,前 8 位是网络号,共 16,777,216 个地址
    2. 172.16.到 172.31.,前 12 位是网络号,共 1,048,576 个地址
    3. 192.168.*,前 16 位是网络号,共 65,536 个地址
  • 公网IP不能重复

  • 在网络架设时,在内网,公网,在统一采用各自的子网掩码的方式,进行网络建设。

在这里插入图片描述

运营商

基本网络情况

  • 申请IP,无论公网,内网,网络建设工作—>由运营商来做

  • 家庭路由器有构建子网的功能

  • 局域网—>不仅我们自己在做,运营商也在做

  • 路由器:有家庭的,也有企业的
    在这里插入图片描述

  • 路由器有两个IP:LAN口IP(对内),WAN口IP(对外)
    在这里插入图片描述

  • 家庭路由器出去的报文到想到达公网,需要先到运营商构建的一个更大的子网中。

  • 为什么交钱给运营商?
    我们的报文必须经过运营商的转发才能到达公网。
    运营商可以因为你欠费不让你入公网
    访问非法目标地址,会被拦截

  • 科技上网的本质就是骗过运营商,不让运营商识别出来。

内网–>公网

在这里插入图片描述

  • 如果目的IP不在该子网中,会向上交付(交付给更大的子网)。

公网–>内网?(数据链路层会讲)


NAT技术

  • NAT技术为什么缓解了IP不足的问题?
    单独切分了一部分IP,只用它来做内网,这样IP地址就可以重复利用了。

全球网络

在这里插入图片描述

  • 公网就是对全球公网IP进行划分的过程
  • 在路由表条目中找不到目的网路号时,就会将报文交给缺省路由

路由

  • 路由器,一定尽可能帮助我们
    1. 配置默认路由
    2. 怎么走
    3. 到达入口路由器—>之后就是根据目标主机进行内网转发
      以上都是根据目标网络进行路由
  • 路由表信息,查看路由表信息的指令是 route
  • 路由表的信息有路由表生成算法来维护
    在这里插入图片描述

  • IP报文的转发过程本质就是进行各个子网之间的转发
  • IP解决的核心问题:路径选择,淘汰其他子网
    1. 根据目的网络进行路由
    2. 内网转发

分片和组装

  • 为什么不把滑动窗口的数据打成一个报文呢?而是一个又一个的段报文?
    规定:数据链路层单次发送的数据帧不能超过MTU(1500)
    在这里插入图片描述

  • IP报文太长,IP报文会分片—>网络层自己和对方分别进行分片和组装

  • 分片好不好?

    1. 分片和组装,上层传输层不关心
    2. 分片为更多的报文,任意一个丢包,组装就是不完整的—>分片之后丢包的概率增加,所以分片不能作为网络发送的主流
  • 如何不分片?
    传输层不能发过大的报文,所以滑动窗口的数据会被分为一段一段的数据


如果分片,如何分片?

在这里插入图片描述
16 位标识(id): 唯一的标识主机发送的报文. 如果 IP 报文在数据链路层被分片
了, 那么每一个片里面的这个 id 都是相同的.
3 位标志字段: 第一位保留(保留的意思是现在不用, 但是还没想好说不定以后要
用到). 第二位置为 1 表示禁止分片, 这时候如果报文长度超过 MTU, IP 模块就会丢弃报文. 第三位表示**“更多分片”**, 如果分片了的话, 最后一个分片置为 0, 其他是 1. 类
似于一个结束标记.
13 位分片偏移(framegament offset): 是分片相对于原始 IP 报文开始处的偏移. 其实就是在表示当前分片在原报文中处在哪个位置. 实际偏移的字节数是这个值 除以 8 得到的. 因此, 除了最后一个报文之外(之前如果都是 8 的整数倍,最后一片的偏移量也一定是 8 的整数倍), 其他报文的长度必须是 8 的整数倍(否则报文就不连续了).

注意:片偏移(13 位)表示本片数据在它所属的原始数据报数据区中的偏移量**(以 8 字节为单位)**

在这里插入图片描述

  • 如何判断是否是分片
    在这里插入图片描述
  • 是否将分片收全?
    在这里插入图片描述
  • 如何组装?
    组装,就说明了已经收全了,根据片偏移量就可以了。

  • 如何分片?
  1. 对IP报文的有效载荷进行分片
  2. 片偏移量(必须是8的整数倍)是数据相对于有效载荷的偏移量
  3. 分片之后,每一片就是一个IP报文
    在这里插入图片描述
  • 分片和组装不一定只有在通信两端才会进行,在网络中也有可能进行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/71852.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JMeter性能问题

性能测试中TPS上不去的几种原因 性能测试中TPS上不去的几种原因_tps一直上不去-CSDN博客 网络带宽 连接池 垃圾回收机制 压测脚本 通信连接机制 数据库配置 硬件资源 压测机 业务逻辑 系统架构 CPU过高什么原因 性能问题分析-CPU偏高 - 西瓜汁拌面 - 博客园 US C…

创建型模式 - 建造者模式 (Builder Pattern)

创建型模式 - 建造者模式 (Builder Pattern) 建造者模式是一种创建型设计模式,它将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 需求描述 在游戏开发中,创建一个复杂的游戏角色,角色具有多种属性&…

代码随想录第二十天|二叉树part08--669.修建二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树

刷题小记: 上期学习了二叉搜索树的插入和删除操作,这次学习如何按区间修剪二叉搜索树。还有两题,关于借助二叉搜索树的有序特性进行转换。 669.修剪二叉搜索树(669.修剪二叉搜索树) 题目分析: 给定一个…

Fisher信息矩阵(Fisher Information Matrix,简称FIM)

Fisher信息矩阵简介 Fisher信息矩阵(Fisher Information Matrix,简称FIM)是统计学和信息理论中的一个重要概念,广泛应用于参数估计、统计推断和机器学习领域。它以统计学家罗纳德费希尔(Ronald Fisher)的名…

【初阶数据结构】链表的柔光之美

目录 一、为什么需要链表? 二、链表与数组的对比 三、链表节点定义 四、链表基本操作 1. 创建链表 2. 插入节点 头插法(时间复杂度O(1)) 尾插法(时间复杂度O(n)) 3. 删除节点 4. 遍历链表 五、进阶操作 1. 反…

《论湖仓一体架构及其应用》审题技巧 - 系统架构设计师

软考论文写作框架 一、考点概述 “湖仓一体架构及其应用”这一论题,主要考察了考生对现代数据管理系统中湖仓一体架构的理解、应用及问题解决能力。随着5G、大数据、人工智能、物联网等技术的快速发展,企业数据的管理需求正发生深刻变化。传统的数据管…

MybatisPlus-扩展功能-枚举处理器

在Mybatis里有一个叫TypeHandler的类型处理器,我们常见的PO当中的这些成员变量的数据类型,它都有对应的处理器,因此它就能自动实现这些Java数据类型与数据库类型的相互转换。 它里面还有一个叫EnumOrdinalTypeHandler的枚举处理器&#xff0…

北京大学第二弹《DeepSeek提示词工程和落地场景》

大家好,我是吾鳴。 之前给大家分享过北京大学出品的DeepSeek教程《DeepSeek与AIGC应用》,今天吾鳴发现北京大学又出第二版教程了,教程的名称叫做《DeepSeek提示词工程和落地场景》,在此分享给大家。文末有完整版PDF下载地址。 教程…

deepseek自动化代码生成

使用流程 效果第一步:注册生成各种大模型的API第二步:注册成功后生成API第三步:下载vscode在vscode中下载agent,这里推荐使用cline 第四步:安装完成后,设置模型信息第一步选择API provider: Ope…

322.零钱兑换

class Solution(object):def coinChange(self, coins, amount):""":type coins: List[int]:type amount: int:rtype: int"""n len(coins) dp [float(inf)]*(amount 1) # 初始值为正无穷大dp[0] 0 # 一定要初始化为0if amount 0:return 0 …

ARM Cortex-M处理器中的MSP和PSP

在ARM Cortex-M系列处理器中,MSP(主堆栈指针)和PSP(进程堆栈指针)是两种不同的堆栈指针,主要用于实现堆栈隔离和提升系统可靠性。以下是它们的核心区别和应用场景: 1. 基本定义 MSP(…

交换机与路由器连接方式

交换机和路由器连接的三种主要方式如下: 一、直连连接 这是最简单直接的连接方式。通过一根网线将交换机的一个端口与路由器的一个LAN端口相连。这种连接方式适用于小型网络,其中交换机负责局域网内部的数据交换,而路由器则负责将内部网络连接…

Python代码片段-Excel导入到MongoDB

有一次遇到一个需求,需要把Excel的数据导入到MongoDB中,表面上感觉就是导入数据很简单,但实际操作后,发现是比较麻烦的一个事情,一般图形化的工具对于MongoDB而言,导入选项都是json的,根本没有E…

axios几种请求类型的格式

Axios 是一个基于 Promise 的 HTTP 客户端,广泛用于浏览器和 Node.js 中发送 HTTP 请求。它支持多种请求格式,包括 GET、POST、PUT、DELETE 等。也叫RESTful 目录 一、axios几种请求类型的格式 1、get请求 2、post请求 3、put请求 4、delete请求 二…

手写系列——MoE网络

参考: MOE原理解释及从零实现一个MOE(专家混合模型)_moe代码-CSDN博客 MoE环游记:1、从几何意义出发 - 科学空间|Scientific Spaces 深度学习之图像分类(二十八)-- Sparse-MLP(MoE)网络详解_sparse moe…

Linux的基础指令和环境部署,项目部署实战(下)

目录 上一篇:Linxu的基础指令和环境部署,项目部署实战(上)-CSDN博客 1. 搭建Java部署环境 1.1 apt apt常用命令 列出所有的软件包 更新软件包数据库 安装软件包 移除软件包 1.2 JDK 1.2.1. 更新 1.2.2. 安装openjdk&am…

【蓝桥杯】第十五届省赛大学真题组真题解析

【蓝桥杯】第十五届省赛大学真题组真题解析 一、智能停车系统 1、知识点 (1)flex-wrap 控制子元素的换行方式 属性值有: no-wrap不换行wrap伸缩容器不够则自动往下换行wrap-reverse伸缩容器不够则自动往上换行 (2&#xff0…

flink operator v1.10对接华为云对象存储OBS

1 概述 flink operator及其flink集群,默认不直接支持华为云OBS,需要在这些java程序的插件目录放一个jar包,以及修改flink配置后,才能支持集成华为云OBS。 相关链接参考: https://support.huaweicloud.com/bestpracti…

免费PDF工具

Smallpdf.com - A Free Solution to all your PDF Problems Smallpdf - the platform that makes it super easy to convert and edit all your PDF files. Solving all your PDF problems in one place - and yes, free. https://smallpdf.com/#rappSmallpdf.com-解决您所有PD…

去中心化技术P2P框架

中心化网络与去中心化网络 1. 中心化网络 在传统的中心化网络中,所有客户端都通过一个中心服务器进行通信。这种网络拓扑结构通常是一个星型结构,其中服务器作为中心节点,每个客户端只能与服务器通信。如果客户端之间需要通信,必须…