计算机网络——网络层(1)

news2024/11/17 9:26:25

计算机网络——网络层(1)

  • 小程一言
    • 专栏链接: [link](http://t.csdnimg.cn/ZUTXU)
  • 网络层:数据平面
    • 网络层概述
      • 核心功能
      • 协议
      • 总结
    • 路由器工作原理
      • 路由器的工作步骤
      • 总结
    • 网际协议
      • IPv4
      • 主要特点
      • 不足
      • IPv6
      • 主要特点
      • 现状
    • 通用转发和SDN
      • 通用转发
      • SDN(软件定义网络)
      • 总结

小程一言

我的计算机网络专栏,是自己在计算机网络学习过程中的学习笔记与心得,在参考相关教材,网络搜素的前提下,结合自己过去一段时间笔记整理,而推出的该专栏,整体架构是根据计算机网络自顶向下方法而整理的,包括各大高校教学都是以此顺序进行的。
面向群体:在学计网的在校大学生,工作后想要提升的各位伙伴,

专栏链接: link

在这里插入图片描述

网络层:数据平面

网络层概述

网络层是OSI(开放式系统互联)模型中的第三层,也是TCP/IP协议栈中的第三层。它主要负责在不同网络之间进行数据包的路由和转发,以实现数据的传输。网络层的主要作用是为不同的主机之间提供通信服务,确保数据能够从源主机传输到目标主机。

核心功能

  1. 寻址:寻址是指确定数据包的源和目标的地址,
  2. 路由:路由则是决定数据包从源到目标的路径。
  3. 网络层使用IP地址来进行寻址,通过路由选择算法来确定数据包的传输路径。

在这里插入图片描述

协议

  1. IP协议:是网络层的核心协议,负责将数据包从源主机传输到目标主机
  2. ICMP协议: 用于在网络中进行错误报告和诊断。

总结

网络层是整个网络通信中非常重要的一部分,它负责在不同的网络之间进行数据传输和路由选择,为上层协议提供可靠的通信服务。

路由器工作原理

路由器是一种网络设备,用于在不同的网络之间转发数据包,它是网络层的设备,主要负责网络层的路由功能。

路由器的工作步骤

  1. 数据包接收:路由器接收来自不同网络的数据包,每个数据包包含了目标主机的IP地址以及数据内容。
  2. 数据包分析:路由器根据数据包中的目标IP地址,使用路由表来确定数据包应该被发送到哪个接口。
  3. 转发数据包:一旦确定了数据包的出口接口,路由器就会将数据包发送到相应的网络中。
  4. 更新路由表:路由器会不断地更新自己的路由表,以确保能够选择最佳的路径来转发数据包。这些更新可以通过路由协议(如OSPF、BGP等)来实现。
  5. 网络地址转换(NAT):在一些情况下,路由器还可能执行网络地址转换(NAT)的功能,将内部网络的私有IP地址转换成公共IP地址,以实现内部网络和外部网络的通信。

总结

路由器的工作原理就是根据数据包中的目标IP地址,选择最佳的路径来转发数据包,同时不断地更新自己的路由表,以确保网络中的数据能够快速、准确地传输。

在这里插入图片描述

网际协议

IPv4

因特网协议的第四个版本,是互联网上最常用的网络层协议之一。IPv4使用32位地址,通常以点分十进制表示,例如192.168.1.1。IPv4地址被用于标识网络上的设备,每个设备都必须拥有唯一的IPv4地址。

主要特点

  1. 地址分配:IPv4地址被分为五个类别,分别是A、B、C、D和E类地址。其中A、B、C类地址用于主机地址分配,D类地址用于多播,E类地址保留未分配。由于IPv4地址空间有限,随着互联网的发展,IPv4地址已经非常稀缺。
  2. 数据包格式:IPv4数据包由首部和数据两部分组成。首部包含了版本号、头部长度、服务类型、总长度、标识、标志、片偏移、生存时间、协议、首部校验和、源IP地址和目的IP地址等字段。
  3. 路由选择:IPv4协议使用路由选择算法来决定数据包的传输路径,路由选择算法可以根据目的IP地址和路由表来选择最佳的路径。
  4. 无连接性:IPv4是一种无连接协议,数据包在传输过程中不会维护连接状态,每个数据包都是独立传输的。

不足

尽管IPv4在互联网发展中发挥了重要作用,但由于IPv4地址空间有限,导致了IPv4地址枯竭的问题。因此,IPv6(Internet Protocol version 6)作为IPv4的替代方案,已经逐渐被广泛采用,以解决IPv4地址空间不足的问题。IPv6采用128位地址,大大扩展了地址空间,同时还具有其他一些改进和增强的特性。
**
**

IPv6

IPv6(Internet Protocol version 6)是因特网协议的第六个版本,是IPv4的后继版本,旨在解决IPv4地址空间有限的问题。IPv6采用128位地址,通常以冒号分隔的八组十六进制数字表示,例如2001:0db8:85a3:0000:0000:8a2e:0370:7334。IPv6地址空间的巨大扩展使得它能够为未来的互联网发展提供足够的地址资源。

在这里插入图片描述

主要特点

  1. 大地址空间:IPv6采用128位地址,相比IPv4的32位地址空间大大扩展,提供了约3.4x10^38个地址,以满足未来互联网设备的需求。
  2. 简化的首部:IPv6的数据包首部相对于IPv4来说更加简化,减少了一些不常用的字段,提高了数据包的处理效率。
  3. 自动地址配置:IPv6支持自动地址配置,设备可以通过IPv6的无状态地址自动配置(SLAAC)或者动态主机配置协议(DHCPv6)来获取IPv6地址。
  4. 安全性增强:IPv6在设计上考虑了安全性,支持IPsec协议的一些特性,提供了更好的数据传输安全性。
  5. 改进的多播和任播:IPv6对多播和任播的支持有所改进,提供更加灵活和高效的多播和任播机制。

现状

IPv6在技术上提供了许多改进和增强,但由于IPv4网络的广泛应用和IPv6的推广进程较为缓慢,目前仍然存在IPv4和IPv6共存的情况。然而,随着互联网设备的不断增加和IPv4地址资源的枯竭,IPv6的部署和应用将逐渐成为未来互联网发展的主流趋势。

通用转发和SDN

通用转发

网络设备根据预先配置的路由信息和转发表来进行数据包的转发。在通用转发中,网络设备根据静态的路由表来确定数据包的转发路径,这些路由信息通常是管理员手动配置的,因此网络的配置和管理相对较为繁琐。通用转发的转发决策是基于设备本身的硬件和软件,缺乏智能化和动态化的特点,因此在面对复杂的网络环境和流量管理时可能表现不佳。

SDN(软件定义网络)

是一种新型的网络架构,它将网络控制平面和数据转发平面分离。在SDN中,网络的控制逻辑被集中到一个中心化的控制器中,通过控制器对网络进行统一的管理和控制。SDN可以实现灵活的网络配置和动态的流量控制,管理员可以通过控制器进行网络配置和流量管理,而不需要逐个配置每个网络设备。这种集中式的控制架构使得SDN网络更加灵活、可管理性更高,并且能够更好地适应网络的变化和需求。

总结

通用转发是传统的网络转发方式,静态的路由表和转发表由设备本身管理,缺乏灵活性和智能化;而SDN则是一种新型的网络架构,通过集中式的控制器对网络进行统一的管理和控制,可以实现灵活的网络配置和动态的流量控制,提高了网络的灵活性和可管理性。因此,SDN相比通用转发具有更大的优势和应用前景。

在这里插入图片描述

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

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

相关文章

《WebKit技术内幕》学习之十三(3):移动WebKit

3 其他机制 3.1 新渲染机制 为了移动领域更好的用户体验,渲染机制所做的改进主要是提升渲染性能来增加响应的速度,甚至不惜牺牲一些跟规范定义的行为不一致的地方。在这一小节中主要介绍三个方面的技术,其一是Tiled Backing Store&#x…

【LLM】FuseLLM:大模型融合trick-知识融合LLMs

前言 传统的模型融合方法分为集成的方法和权重合并的方法,这两种方法在以往的NLP的比赛中非常常见,是一种提分手段。然而,上述两种方法都需要预训练或者微调相应的模型。在大模型场景下,对每个源模型都进行初始化成本太高&#x…

是用原生js创建红包雨效果

需求: 创建红包雨 答案: // 红包雨代码 开始 // 添加遮罩层 const addOverlay () > {const overlay document.createElement(div);overlay.className overlay;overlay.style.position fixed;overlay.style.top 0;overlay.style.left 0;overlay.style.width 100%;o…

华为机考入门python3--(0)测试题1-句子平均重量

分类:字符串 知识点: 获取输入 input().strip().split(" ") 拼接列表 " ".join(list) 输出指定位数的浮点数 print("%.2f" % value) len() 函数对于很多内置的数据类型都适用,它返回对象的元素个数或长度。…

Qt6入门教程 11:父子对象关系

在上一篇中的纯手写部分,不管是创建菜单、工具栏还是状态栏,我们new完之后都未显式的调用delete进行销毁,这样难道不会有内存泄漏么? QMenuBar *menuBar new QMenuBar(this); QToolBar *toolBar new QToolBar(this); QStatusBa…

yolov8上使用gpu教程

yolov8上使用gpu教程 安装Cuda和Cudnnyolov8上使用gpu 安装Cuda和Cudnn 1.查看支持的cuda版本,并去官网下载。 nvidia-smi2.网址:https://developer.nvidia.com/cuda-toolkit-archive 3.安装细节 安装的前提基础是,有vs的C环境。我电脑有…

GBASE南大通用Connection 构造函数

GBASE南大通用分享  重载列表 1) 初始化一个新的 GBaseConnection 类实例。 GBaseConnection() 2) 当给定连接字符串的时候初始化一个新的 GBaseConnection 类实例。 GBaseConnection(string)  注释 当创建一个新的 GBaseConnection 实例的时候,其属性设…

DataStream API(源算子)

目录 源算子 1,从集合中读取数据 2,从文件读取数据 3,从 Socket 读取数据 4,从 Kafka 读取数据 5,自定义源算子 6,Flink 支持的数据类型 6.1 Flink 支持多种数据类型,包括但不限于&…

动态SQL:MyBatis强大的特性之一

一般来说,一个程序的服务器可以部署多个,但是数据库却只能有一个。这么多服务器,如果每天都要给数据库海量的操作数据,数据库的压力就会非常大。 所以为了减轻数据库的压力,我们可以把一些查询数据库的语句简化&#…

在Rust中编写自定义Error

前言 之前我们聊过&#xff0c;Result<T, E> 类型可以方便地用于错误传导&#xff0c;Result<T, E>是模板类型&#xff0c;实例化后可以是各种类型&#xff0c;但 Rust 要求传导的 Result 中的 E 是相同类型的&#xff0c;或者能够自动转化为相同类型。比如&#…

单例模式-C#实现

该实例基于WPF实现&#xff0c;直接上代码&#xff0c;下面为三层架构的代码。 一 Model using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace 设计模式练习.Model.单例模式 {//单例模式的实现in…

el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)

elementplus 的 el-checkbox 官方代码中的多选框组实例如下&#xff1a; 上方代码中选中哪个选项就会往 checkList 数组中加入选项的 label 值&#xff0c;如果需要实现展示的值与选中的值不一样要怎么实现呢&#xff1f; 解决方法 el-checkbox组件中存在插槽&#xff0c;只需…

【Linux】 开始使用 gcc 吧!!!

Linux 1 认识gcc2 背景知识3 gcc 怎样完成 &#xff1f;3.1 预处理预处理^条件编译 3.2 编译3.3 汇编3.4 链接 4 函数库5 gcc 基本选项Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读下一篇文章见&#xff01;&#xff01;&#xff01; 1 认识gcc 我们在windows环…

02.领域驱动设计:了解领域、子域、核心域、通用域、支撑域、通用语言和限界上下文

目录 概要 1、领域 2、子领域 建立领域模型步骤&#xff1a; 3、核心域 4、通用域 5、支撑域 6、思考题 7、通用语言 8、限界上下文 限界上下文和微服务的关系 9、总结 限界上下文在微服务设计中的作用和意义是什么 概要 领域驱动设计&#xff08;DDD&#xff09;…

Web09--jQuery基础

1、jQuery概述 1.1 什么是jQuery jQuery是一款优秀的JavaScript的轻量级框架之一&#xff0c;封装了DOM操作、事件绑定、ajax等功能。特别值得一提的是基于jQuery平台的插件非常丰富&#xff0c;大多数前端业务场景都有其封装好的工具可直接使用。 jQuery下载和版本介绍 官…

qml中访问控件内部的子项

如何访问Repeater类型内部的子项、Row等布局类型内部的子项以及ListView内部的子项等。。。 1、测试代码 import QtQuick 2.0 import QtQuick.Controls 2.12 import QtQuick.Window 2.12 import QtQuick.Layouts 1.3 import QtQml 2.12Window {id: windowobjectName: "m…

彩色图像处理之彩色图像分割的python实现——数字图像处理

原理 彩色图像分割是图像处理领域的一个重要技术&#xff0c;它旨在将一幅彩色图像划分为多个区域或对象。其基本原理包括以下几个方面&#xff1a; 像素特征的提取&#xff1a;彩色图像分割首先涉及到像素级的特征提取。在彩色图像中&#xff0c;常用的特征包括颜色、纹理和…

Javadoc的讲解使用

概述&#xff1a;JavaDoc 是用于生成 Java 代码文档的工具。通过编写 JavaDoc 注释&#xff0c;可以为代码中的类、接口、方法、字段等元素添加文档注释&#xff0c;这些注释将被 JavaDoc 工具解析并生成相应的 HTML 文档。 目录 讲解 使用 结果 讲解 下面是一些关于 Java…

常用通信总线学习——RS232与RS485

RS232概述 RS-232标准接口&#xff08;又称EIA RS-232&#xff09;是常用的串行通信接口标准之一&#xff0c;它是由美国电子工业协会(Electronic Industry Association&#xff0c;EIA)联合贝尔系统公司、调制解调器厂家及计算机终端生产厂家于1970年共同制定&#xff0c;其全…

RocketMQ源码阅读-七-高可用

RocketMQ源码阅读-七-高可用 概述NameServer高可用Broker注册到NameServerProducer、Consumer 访问 Namesrv Broker高可用Broker主从配置Master、Slave通信组件Master与Slave的通信协议Slave节点逻辑Master节点逻辑Master_SYNC模式Producer发消息Consumer消费消息 总结 本篇分析…