网络编程01 常见名词的一些解释

本文将讲解网络编程的一些常见名词以及含义

在这之前让我们先唠一唠网络的产生吧,其实网络的产生也拯救了全世界

网络发展史

网络的产生是在美苏争霸的期间,实际上双方都持有核武器,希望把对方搞垮的同时不希望自己和对方两败俱伤.

希望破坏对方的核武器发射,这就涉及到三个方面,第一是核武器的发射井,其太过偏僻不方便破坏,第二是双方的军事基地,实力太过强大不好破坏,第三就是切断发射器与核弹之间的联系

因此矛头就产生了,此时互联网给出了一个解决方案:采用多冗余的设计,来防止破坏,含义就是发射井和发射器之间添加多条联系路线,这样可以确保不被完全切断通讯.

国内在2000年开始,互联网才开始起步

2002-2003年,网吧便开始兴起,这也让更多人接触到了电脑

2007年,网络开始普及,这也是乔布斯发布初代iphone的时候,意味着移动互联网已经具备一定的规模

2011-2012年 苹果4开始发布,一代肾机,甚至有人卖肾买手机,智能手机的浪潮一下子就席卷而来了

2012年后持续了一段时间全民创业风,大把的资本涌入计算机领域,只要你有从创业的思路就可以去资本家那里"骗钱"

以后互联网就开始蓬勃发展到今天,已经出现了很多互联网的企业,阿里,字节,腾讯,出现了互联网的繁荣景象...

近两年经济萧条但是互联网却仍然有这么高的诱惑力,所以加油吧朋友们.

1.局域网 vs 广域网

第一个概念就开始聊聊局域网和广域网的概念以及区别,其实像早期的联机游戏都只能在同一个wifi下进行局域网简称LAN,即表示本地的私有组建的网络,搭建方式如下

1.可以通过直接用一根网线连接两个电脑

2.通过集线器组建

3.通过交换机组建

和上图类似,一个交换机有多个网口(24/48网口的最为常见)

4.基于路由器和交换机组建

可以用路由器接交换机再接主机,类似于树状结构

广域网可以包括东南西北的分公司的机器,将这些机器使用专线连接起来

全球范围的互联网也是广域网的一个子集

2.IP地址

类似于生活中收快递的地址,IP地址描述了一台网络设备在网络上的位置

计算机用点分十进制来描述这个数字,本质上是一个32位的数字,也就是4个字节,把每个字节以.号分隔开,例:192.168.0.1 这就是一个ip地址 取值范围是0-255

3.端口号

描述主机还是那个是哪个应用在使用主机,也就是IP地址能确定主机的网络地址,而端口号可以确定是用的是QQ还是微信,不同的应用的端口号不通用,比如MySQL的端口号是3306..

4.协议

网络上最常用的就是传输数据,这是网络上比较核心的一个概念.协议本质上就是一种通信过程中的约定.发送方和接收方要约定好数据的形式与格式,才能确保两者之间的通信能够正确进行

协议是一种约定,确保不同厂商生产的设备之间可以相互配合

两个设备想要进行相互通信,就需要源IP和目的IP源端口号和目的端口号和协议号

网络通信中,需要涉及很多的细节,如果用一个协议来约定好方方面面的内容的话,这个协议未免显得过于臃肿.所以需要进行协议的

5.协议分层

由于上面的问题我们也就开始对协议进行了拆分,一共拆分成了七层协议,这样更方便协议中的相互配合,将功能相似的协议方到同一个协议层中,下层协议为上层协议提供服务,上层协议调用下层协议的功能.且只有相邻的协议之间可以进行通信.(和公司一样,很忌跨层汇报)

优点:

1.上层协议直接使用下层协议即可,无需了解下层协议如何实现的(相当于下层协议把细节已经封装好了)

2.某一层的协议进行替换之后对于其它层的没有影响(代码实现不同,功能是相似的,直接调用即可)

常见的两个网络模型

OSI七层网络模型(理想的网络模型)

TCP/IP网络模型(现实中使用)

OSI七层模型

分层名称           功能                          举例

应用层     针对特定应用的协议              文件传输用文件传输协议,邮件发送用邮件发送协议

表示层     设备固有数据格式和网络标准格式的转换                  接受不同的形式的数据转换成

网络标准格式

  

会话层      负责建立和断开通信                                什么时候开始和断开连接

传输层     负责两个节点之间的数据传输                       是否会有数据丢失

网络层     地址管理和路由选择                                     路线的选择(通过那个路由完成传递信息)

数据链路层                互连设备之间传送和识别数据帧                 数据帧和比特流之间的转换                       

物理层      以0101的电压来表示连接器和网线的规格

TCP/IP协议

所谓的五层模型就是将上面的三层合为一层应用层,如果是四层模型就再去掉物理层

其中包含很多协议

应用层:简单电子邮件传输STMP,文件出书协议FTP等

传输层:负责主机之间的数据传输,如TCP协议

网络层:负责地址管理和路由选择 如IP协议

数据链路层:负责数据帧之间的传送和识别

物理层:负责光电信号的传递

网络设备所在分层

主机  - 操作系统内核实现了网络层到物理层之间的内容,也就是下四层之间的内容

路由器 - 网络层

交换机  - 数据链路层

集线器 - 物理层

注:真实世界中的路由器和交换机其实也会有对方的功能

7.封装与分用

封装(贴标签)就是和取快递送快递一样,假设我想发一条信息给我的好朋友,这时候信息就会通过各种协议封装打包快递,传送到好朋友的家里,打开之后就可以看到我发送的数据了

下面简述A用QQ给B发送hello的时候B是如何收到信息的

1.通过应用层QQ的协议发送一个约定格式给下一层

假设约定格式为(发送方QQ;接收方QQ,时间,内容)

2.此时传输层就会接收到上方格式的数据包,假设使用UDP协议传输,此时数据包变为

UDP报头,发送方QQ;接收方QQ,时间,内容

3.再次传输给网络层

网络层会根据IP协议给原有的数据包在加上一个IP报头

IP报头,UDP报头,发送方QQ;接收方QQ,时间,内容

4.传输给数据链路层

这里的核心协议是一趟网

我们会将原来的数据包转化为以太网数据帧,也就是在头尾就加上帧操作

以太网帧头,IP报头,UDP报头,发送方QQ;接收方QQ,时间,内容,以太网帧尾

5.最后传输给物理层 硬件设备

这时候硬件设备会将这样的数据帧转化为0101的二进制数据,如光信号,高低电压等进行发送

随后B进行接收的时候就是上述操作的反操作,逐步取下标签也就得到了A发送的信息

8.客户端与服务器

网络编程中发起请求的一方我们称之为客户端,接受处理请求的一方称之为服务器

一个程序在不同的场景不同的视角之下可能扮演着不同的绝俗,可能是服务器也可能是客户端

客户端给服务器发送的数据称之为请求

客户端给服务器发生的数据称之为响应

服务器和客户端之间的交互也是有很多种模式的

1.一问一答  比如网站

2.一问多答  比如下载任务

3.多问一答   比如上传任务

4.多问多答   比如远程控制桌面

我们使用键盘和鼠标对远程电脑进行控制,其实就是发送一个一个的请求,接受到的画面其实就是响应

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

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

相关文章

【Vue】vue项目中Uncaught runtime errors:怎样关闭

vue项目中Uncaught runtime errors:怎样关闭 一、背景描述二、报错原因三、解决方案3.1 只显示错误信息不全屏覆盖3.2 取消全屏覆盖 四、参考资料 一、背景描述 项目本来运行的好好,换了个新的浏览器,新的Chrome浏览器版本号是116.0.5845.97&#xff08…

【Linux】Linux进程间通信(四)

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:Linux 🎯长路漫漫浩浩,万事皆有期待 上一篇博客:【Linux】…

flask分页宏增加更多参数

背景:我正在开发一个博客,核心的两个model是文章和文章类别。 现在想要实现的功能是:点击一个文章类别,以分页的形式显示这个文章类别下的所有文章,类似这种效果。 参考的书中分页宏只接受页数这一个参数,…

NLP论文阅读记录 - 2021 | WOS MAPGN:用于序列到序列预训练的掩码指针生成器网络

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.前提三.本文方法四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4.6 细粒度分析 五 总结思考 前言 MAPGN: MASKED POINTER-GENERATOR NETWORK FOR SEQUENCE-TO-SEQUENCE…

python常用库

常见模块解析 1. math库 数学函数 函数返回值 ( 描述 )abs(x)返回数字的绝对值&#xff0c;如abs(-10) 返回 10ceil(x)返回数字的上入整数&#xff0c;如math.ceil(4.1) 返回 5cmp(x, y)如果 x < y 返回 -1, 如果 x y 返回 0, 如果 x > y 返回 1。 **Python 3 已废弃…

Pandas.DataFrame.groupby() 数据分组(数据透视、分类汇总) 详解 含代码 含测试数据集 随Pandas版本持续更新

关于Pandas版本&#xff1a; 本文基于 pandas2.1.2 编写。 关于本文内容更新&#xff1a; 随着pandas的stable版本更迭&#xff0c;本文持续更新&#xff0c;不断完善补充。 Pandas稳定版更新及变动内容整合专题&#xff1a; Pandas稳定版更新及变动迭持续更新。 Pandas API参…

jquery动态引入js和css

直接上代码吧&#xff0c;但是有时候这个方法会失败&#xff0c;js文件里面的方法不生效&#xff0c;原因还在找 // 动态引入cssvar cssFileUrl index.css;$("head").append("<link>");css $("head").children(":last");css.a…

Codeforces Round 803 (Div. 2) E. PermutationForces II(思维题 位置序列)

题目 给定长为n(n<2e5)的两个序列a和b&#xff0c; a为n的一个排列&#xff0c; b也为n的一个排列&#xff0c;但有一些位置被-1替换了&#xff0c;保证没被替换的位置在[1,n]之间且两两不同 你有一个距离最大限制s&#xff0c;你可以执行n次操作&#xff0c; 第i次操作…

【现代密码学基础】详解完美安全与不可区分安全

目录 一. 介绍 二. 不可区分性试验 三. 不可区分性与完美安全 四. 例题 五. 小结 一. 介绍 敌手完美不可区分&#xff0c;英文写做perfect adversarial indistinguishability&#xff0c;其中adversarial经常被省略不写&#xff0c;在密码学的论文中经常被简称为IND安全。…

视频增强修复Topaz Video AI

Topaz Video AI是一款强大的视频增强软件&#xff0c;利用人工智能技术对数千个视频进行训练&#xff0c;结合多个输入视频的帧信息来提高素材的分辨率。该软件可将视频的分辨率提高到最高8K&#xff0c;并保持真实的细节和运动一致性。同时&#xff0c;它还能自动修复视频中的…

Linux系统CPU持续飙高,如何排查?

一、检查CPU使用率 首先在Linux系统中检查CPU使用率。可以通过在命令行中输入top或htop命令来查看当前系统中各个进程的CPU使用率。如果CPU使用率大于80%&#xff0c;则可以考虑进行排查。 $ top 二、检查系统负载 另外可以使用uptime命令来查看系统的平均负载情况。 $ upti…

DiffMIC:融合局部和全局分析,基于扩散模型的医学图像分类方法

DiffMIC&#xff1a;基于扩散模型的医学图像分类方法 DiffMIC的核心思想糖尿病视网膜病变分级 网络结构去噪扩散模型&#xff1a;提升特征清晰度双粒度条件引导&#xff08;DCG&#xff09;&#xff1a;融合局部和全局分析条件特定的最大均值差异&#xff08;MMD&#xff09;正…

【Java】JDBC练习

JDBC练习 环境准备 -- 删除tb_brand表 drop table if exists tb_brand; -- 创建tb_brand表 create table tb_brand (-- id 主键id int primary key auto_increment,-- 品牌名称brand_name varchar(20),-- 企业名称company_name varchar(20),-- 排序字段ordered …

C++设计模式之 模板方法模式

【声明】本题目来源于卡码网&#xff08;题目页面 (kamacoder.com)&#xff09; 【提示&#xff1a;如果不想看文字介绍&#xff0c;可以直接跳转到C编码部分】 【设计模式大纲】 【简介】 --什么是模板方法模式&#xff08;第18种设计模式&#xff09; 模板方法模式&#xff0…

《Linux高性能服务器编程》笔记02

Linux高性能服务器编程 参考 Linux高性能服务器编程源码: https://github.com/raichen/LinuxServerCodes 豆瓣: Linux高性能服务器编程 文章目录 Linux高性能服务器编程第06章 高级I/O函数6.1 pipe函数6.2 dup函数和dup2函数6.3 readv 函数和writev 函数6.4 sendfile 函数6.…

基于SSM的KTV包厢管理系统(有报告)。Javaee项目,ssm项目。

演示视频&#xff1a; 基于SSM的KTV包厢管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过…

软件测试|sqlalchemy一对一关系详解

简介 SQLAlchemy 是一个强大的 Python ORM&#xff08;对象关系映射&#xff09;库&#xff0c;它允许我们将数据库表映射到 Python 对象&#xff0c;并提供了丰富的关系模型来处理不同类型的关系&#xff0c;包括一对一关系。在本文中&#xff0c;我们将深入探讨 SQLAlchemy …

后台管理系统: 数据可视化基础

数据可视化简单理解&#xff0c;就是将数据转换成易于人员辨识和理解的视觉表现形式&#xff0c;如各种 2D 图表、3D 图表、地图、矢量图等等。 例如Excel等等 canvas <canvas> 标签只是图形容器&#xff0c;相当于一个画布&#xff0c;canvas 元素本身是没有绘图能力…

算法常用思路总结

思路 1. 求数组中最大最小值思路代码 2. 计算阶乘思路&#xff1a;代码&#xff1a; 3. 得到数字的每一位思路代码 4. 计算时间类型5. 最大公约数、最小公倍数6. 循环数组的思想题目&#xff1a;猴子选大王代码 补充经典例题1. 复试四则运算题目内容题解 2. 数列求和题目内容题…

安防监控系统EasyCVR平台用户调用设备参数,信息不返回是什么原因?

安防视频监控系统EasyCVR视频综合管理平台&#xff0c;采用了开放式的网络结构&#xff0c;平台能在复杂的网络环境中&#xff08;专网、局域网、广域网、VPN、公网等&#xff09;将前端海量的设备进行统一集中接入与视频汇聚管理&#xff0c;平台支持设备通过4G、5G、WIFI、有…