网络原理,网络通信以及网络协议

​​​​💓 博客主页:从零开始的-CodeNinja之路

⏩ 收录专栏:网络原理,网络通信以及网络协议

🎉欢迎大家点赞👍评论📝收藏⭐文章

文章目录

  • 网络原理
      • 概念
      • 网络通信
      • 局域网LAN
      • 广域网WAN
  • 网络通信
      • IP地址
      • 端口号
  • 网络协议
      • 概念
      • 五元组
      • TCP/IP协议五层模型
      • 网络设备分层
      • 封装和分⽤

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

网络原理

概念

随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同工作来完
成业务,就有了网络互连。
网络互连:将多台计算机连接在⼀起,完成数据共享。
根据网络互连的规模不同,可以划分为局域网和广域网。

网络通信

本质是⽹络数据传输,即计算机之间通过网络来传输数据.

局域网LAN

局域网,即Local Area Network,简称LAN。Local即标识了局域网是本地,局部组建的⼀种私有网络。
局域网内的主机之间能方便的进行网络通信,又称为内网;局域网和局域网之间在没有连接的情况
下,是无法通信的。

广域网WAN

⼴域网,即Wide Area Network,简称WAN。
通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网。⼴域网内部
的局域网都属于其子网。

网络通信

网络互连的目的是进行网络通信,也即是网络数据传输,更具体⼀点,是网络主机中的不同进程间,
基于⽹络传输数据。
那么,在组建的网络中,如何判断到底是从哪台主机,将数据传输到那台主机呢?这就需要使用IP地
址来标识。

IP地址

主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主
机的网络地址
IP地址的格式:IP地址是⼀个32位的二进制数,通常被分割为4个“8位⼆进制数”(也就是4个字节),如:
01100100.00000100.00000101.00000110。
通常用“点分十进制”的方式来表示,即a.b.c.d的形式(a,b,c,d都是0~255之间的十进制整数)。
如:100.4.5.6

端口号

在网络通信中,IP地址⽤于标识主机⽹络地址,端口号可以标识主机中发送数据、接收数据的进程。
简单说:端⼝号用于定位主机中的进程
端口号的格式:是0~65535范围的数字,在网络通信中,进程可以通过绑定⼀个端口号,来发送及接收网络数据.

网络协议

概念

协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵
从的⼀组约定、规则。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能
相互通信交流。
协议(protocol)最终体现为在网络上传输的数据包的格式

五元组

在TCP/IP协议中,用五元组来标识⼀个网络通信:

  1. 源IP:标识源主机
  2. 源端口号:标识源主机中该次通信发送数据的进程
  3. 目的IP:标识目的主机
  4. 目的端口号:标识目的主机中该次通信接收数据的进程
  5. 协议号:标识发送进程和接收进程双方约定的数据格式
    在这里插入图片描述

TCP/IP协议五层模型

TCP/IP是⼀组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP通讯协议采用了5层的层级结构,每⼀层都呼叫它的下⼀层所提供的网络来完成自己的需求。

  1. 应⽤层:负责应用程序间沟通(简单来说就是客户在网络上购物),如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层。

  2. 传输层:负责两台主机之间的数据传输(关注发货的起点和终点)。如传输控制协议(TCP),能够确保数据可靠的从源主机发 送到目标主机。

  3. ⽹络层:负责地址管理和路由选择(发货起点到终点的路线规划)。例如在IP协议中,通过IP地址来标识⼀台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路。路由器(Router)工作在网路层。

  4. 数据链路层:负责设备之间的数据帧的传送和识别(发货途中相邻两地的货物运输方式)。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网,无线LAN等标准。交换机(Switch)工作在数据链路层。

  5. 物理层:负责光/电信号的传递方式(通信过程中的基础设施-纯硬件)。现在以太网通用的网线(双绞线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层。
    在这里插入图片描述

网络设备分层

  • 对于⼀台主机,它的操作系统内核实现了从传输层到物理层的内容,也即是TCP/IP五层模型的下四
    层;
  • 对于⼀台路由器,它实现了从网络层到物理层,也即是TCP/IP五层模型的下三层;
  • 对于⼀台交换机,它实现了从数据链路层到物理层,也即是TCP/IP五层模型的下两层;
  • 对于集线器,它只实现了物理层

注意我们这⾥说的是传统意义上的交换机和路由器,也称为二层交换机(工作在TCP/IP五层模型的下
两层)、三层路由器(⼯作在TCP/IP五层模型的下三层)。
随着现在网络设备技术的不断发展,也出现了很多3层或4层交换机,4层路由器。我们以下说的⽹络设
备都是传统意义上的交换机和路由器。
在这里插入图片描述

封装和分⽤

• 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报
(datagram),在链路层叫做帧(frame)。
• 应用层数据通过协议栈发到网络上时,每层协议都要加上⼀个数据首部(header),称为封装
(Encapsulation)。
• 首部信息中包含了⼀些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息。
• 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的"上
层协议字段"将数据交给对应的上层协议处理。
在这里插入图片描述
在这里插入图片描述

如果觉得文章不错,期待你的一键三连哦,你个鼓励是我创作的动力之源,让我们一起加油,顶峰相见!!!💓 💓 💓

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【GitHub项目推荐--GPT开源项目】【转载】

Auto-GPT Auto-GPT 是一个实验性的开源项目,基于 GPT-4。你给出 Auto-GPT 一个的任务,它不会立即输出答案,而会先自己通过多轮对话来琢磨、验证、决策,从而自己找出一条达成目标的路,整个过程完全不需要人类插手&…

LeetCode:376.摆动序列

个人主页:仍有未知等待探索-CSDN博客 专题分栏:算法_仍有未知等待探索的博客-CSDN博客 题目链接:376. 摆动序列 - 力扣(LeetCode) 一、题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称…

【CANoe使用大全】——离线回放数据

🙋‍♂️【CANoe使用大全】系列💁‍♂️点击跳转 文章目录 1.概述2.Offline3.综述 1.概述 本章主要介绍数据的离线回放操作 2.Offline 导入需要加载的文件 导入完成效果: 点击开关便可进行数据回放 3.综述 Offline回放主要配合Trace和…

夏目友人帐 第五季 2016.10.04

夏目友人帐 第五季 2016.10.04 第1话:一如既往的样子 / 変わらぬ姿第2话:恶作剧之雨 / 悪戯な雨第3话:除妖人寄来的信 / 祓い屋からの手纸第4话:连锁的背后 / 连锁の阴第5话:不可结缘 / 结んではいけない第6话&#xf…

java eazyexcel 实现excel的动态多级联动下拉列表(2)使用MATCH+OFFSET函数

原理 同样是将数据源放到一个新建的隐藏的sheet中,第一行是第一个列表的数据,第二行是每一个有下级菜单的菜单,他下面的行就是他下级菜单的每一值使用MATCH函数从第二行找到上级菜单对应的列根据OFFSET函数从2中获取的列,取得下级…

python基础3

7.5 range range 可以生成数字供 for 循环遍历 , 它可以传递三个参数,分别表示 起始、结束和步长。 8. 数据类型高级 8.1 字符串高级 字符串的常见操作包括: 获取长度 :len len 函数可以获取字符串的长度。 查找内容 :find 查找指定内容在字符…

大创项目推荐 题目: 基于深度学习的疲劳驾驶检测 深度学习

文章目录 0 前言1 课题背景2 实现目标3 当前市面上疲劳驾驶检测的方法4 相关数据集5 基于头部姿态的驾驶疲劳检测5.1 如何确定疲劳状态5.2 算法步骤5.3 打瞌睡判断 6 基于CNN与SVM的疲劳检测方法6.1 网络结构6.2 疲劳图像分类训练6.3 训练结果 7 最后 0 前言 🔥 优…

【智能家居】6、语音控制及网络控制代码实现

一、语音控制 1、指令结构体编写 这个结构体定义了一个命令输入的模型。在这个模型中,包含以下几个部分: cmdName:一个长度为128的字符串,用于存储命令名称。dvicesName:一个长度为128的字符串,用于存储设备名称。cmd:一个长度为32的字符串,用于存储具体的命令。Init:…

数据结构-线性表

文章目录 数据结构—线性表1.线性表的定义和基本操作线性表的定义线性表的特点线性表的基本操作 2.线性表的顺序存储和链式存储表示顺序存储链式存储单链表循环链表双向链表 数据结构—线性表 1.线性表的定义和基本操作 线性表的定义 定义:线性表是具有相同数据类…

GPT-SoVITS 测试

开箱直用版(使用 AutoDL) step1 打开地址 https://www.codewithgpu.com/i/RVC-Boss/GPT-SoVITS/GPT-SoVITS-Official 选择 AutoDL创建实例,选择 3080ti 机器 step2 创建好实例之后,进入命令行,输入命令 echo {}>…

LC weekly-game 382

ExScorecomplete extentmean12char op20717/719(解答错误,迭代条件写错)按长度枚举30523/537(超时,弱智题已AC)枚举40 有用的是Ex2和Ex4 Experience each problem can be submitted infinitely with negligible punishment timesome cases of the problem is hidden.each ke…

Vue3探索编辑部——关于Pinia(1)

目录 什么是Pinia? Vue3中的Pinia 创建项目 数据准备和引入Pinia 使用Pinia 采用action修改数据 总结 什么是Pinia? Pinia是Vue3的专属的状态管理工具,什么是状态呢?其实我们可以把状态理解为数据,或者一个业务…

INFINI Labs 产品更新 | 统一版本号 1.22.0

INFINI Labs 产品又更新啦~,包括 Console,Gateway,Loadgen,Agent 1.22.0。为了避免版本不同带来的困扰,以后发布均统一版本号,此次版本重点修复历史遗留 Bug 、优化内存占用等。以下是本次更新的详细说明。…

Python中Numba库装饰器

一、运行速度是Python天生的短板 1.1 编译型语言:C 对于编译型语言,开发完成以后需要将所有的源代码都转换成可执行程序,比如 Windows 下的.exe文件,可执行程序里面包含的就是机器码。只要我们拥有可执行程序,就可以随…

通讯录小项目(上)

Start And Stick 通讯录的实现有很多种方式,今天我们将用结构体实现简单的通讯录项目功能。包括通讯录的增、删、查、改等功能。 思路: 此次代码文件分别为: 文件名用途sqlist.h用于函数和结构体的声明sqlist.c用于函数的实现test.c用于通讯…

【JaveWeb教程】(38)SpringBootWeb案例之《智能学习辅助系统》的详细实现步骤与代码示例(11)过滤器Filter讲解

目录 SpringBootWeb案例10 过滤器Filter2.4 过滤器Filter2.4.1 快速入门2.4.2 Filter详解2.4.2.1 执行流程2.4.2.2 拦截路径2.4.2.3 过滤器链 2.4.3 登录校验-Filter2.4.3.1 分析2.4.3.2 具体流程2.4.3.3 代码实现 SpringBootWeb案例10 过滤器Filter 2.4 过滤器Filter 刚才通…

VBA技术资料MF111:将表对象转换为正常范围

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。我的教程一共九套,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到…

大数据期望最大化(EM)算法:从理论到实战全解析

文章目录 大数据期望最大化(EM)算法:从理论到实战全解析一、引言概率模型与隐变量极大似然估计(MLE)Jensen不等式 二、基础数学原理条件概率与联合概率似然函数Kullback-Leibler散度贝叶斯推断 三、EM算法的核心思想期…

【JAVA】提交任务时,线程池队列已满,这时会发生什么

🍎个人博客:个人主页 🏆个人专栏:JAVA ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 抛出异常: 阻塞等待: 丢弃任务: 调整线程池参数: 使用拒绝策略: 结…

数字图像处理(实践篇)二十七 Python-OpenCV 滑动条的使用

目录 1 涉及的函数 2 实践 1 涉及的函数 ⒈ setWindowProperty()用于设置GUI应用程序的属性 cv2.setWindowProperty(windowsName, prop_id, prop_value) 参数: ①