网络编程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.多问多答   比如远程控制桌面

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

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

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

相关文章

【Github搭建网站】零基础零成本搭建个人Web网站~

Github网站:https://github.com/ 这是我个人搭建的网站:https://xf2001.github.io/xf/ 大家可以搭建完后发评论区看看!!! 搭建教程:https://www.bilibili.com/video/BV1xc41147Vb/?spm_id_from333.999.0.0…

CentOS安装Flume

CentOS安装Flume 一、简介二、安装1、下载2、解压3、创建配置文件4、启动flume agent5、验证 一、简介 Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data. It has a simple and flexi…

jquery动态引入js和css

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

计算机导论06-人机交互

文章目录 人机交互基础人机交互概述人机交互及其发展人机交互方式人机界面 新型人机交互技术显示屏技术跟踪与识别&#xff08;技术&#xff09;脑-机接口 多媒体技术多媒体技术基础多媒体的概念多媒体技术及其特性多媒体技术的应用多媒体技术发展趋势 多媒体应用技术文字&…

MySQL进阶篇:索引(概述,结构,分类,语法,SQL性能分析,索引使用,设计原则)

目录 1.索引概述2.索引结构1.B树&#xff08;多路平衡查找树&#xff09;2.B树3.Hash1.特点2.存储引擎支持 4.选择B树作为InnoDB存储引擎索引结构的原因 3.索引分类1.聚集索引选取规则2.回表查询 4.索引语法1.创建索引2.查看索引3.删除索引 5.SQL性能分析1.SQL执行频率2.慢查询…

某马头条——day06

自媒体文章上下架 使用消息队列在自媒体下架时通知文章微服务。 kafka概述 kafka环境搭建 docker pull zookeeper:3.4.14 docker run -d --name zookeeper -p 2181:2181 zookeeper:3.4.14 安装kafka docker pull wurstmeister/kafka:2.12-2.3.1 docker run -d --name kafka…

后台管理系统: spu管理模块

spu管理模块业务 spu 可以理解为类 例如 people类【spu】 sku可以理解为实例 例如&#xff1a;小明 18 男 spu跟sku可以理解为类跟多个实例的关系 spu管理模块静态 <template><div><el-card style"margin: 20px 0px"><CategorySelect get…

ARM安装与项目结构

1. 安装环境 参考E:\peixunQianrushi\arm\ziliao\FS4412新版&#xff08;学生资料&#xff09;\环境相关资料 这边建议全部默认路径 安装注意事项&#xff1a; 1、在接下来的安装过程中&#xff0c;对于使用win10、win8的操作系统的用户&#xff0c;所有的安装请均以管理员身份…

POKT Network (POKT) :进军百亿美元市场规模的人工智能推理市场

POKT Network&#xff08;又称 Pocket Network&#xff09;是一个去中心化的物理基础设施网络&#xff08;DePIN&#xff09;&#xff0c;它能够协调并激励对任何开放数据源的访问&#xff0c;最初专注于向应用程序和服务提供商提供区块链数据。 自 2020 年主网上线以来&#x…

【GitHub项目推荐--推荐 5 个炫炫炫的可视化项目】【转载】

数据可视化就是将抽象的数据通过视觉的方式进行展示&#xff0c;能让用户直观的看到数据中蕴含的信息和规律。 本篇文章&#xff0c;整理了 5 个可视化开源项目&#xff0c;其中包括可视化制作低代码平台、大屏可视化、地图可视化、热图、图标可视化等等。 00. 数据大屏可视化…

Rust基础语法1

所有权转移&#xff0c;Rust中没有垃圾收集器&#xff0c;使用所有权规则确保内存安全&#xff0c;所有权规则如下&#xff1a; 1、每个值在Rust中都有一个被称为其所有者&#xff08;owner&#xff09;的变量&#xff0c;值在任何时候只能有一个所有者。 2、当所有者离开作用域…

WordPress微信一键关注免认证登录插件

插件介绍 WordPress微信免认证快捷登录插件&#xff1a;订阅号也能一键通行 这款WordPress插件专为个人用户打造&#xff0c;无需繁琐的服务号申请与认证流程。即使您只有未认证的订阅号&#xff0c;也能轻松实现关注公众号后一键登录网站的功能&#xff01; 配置步骤简单明…

【接上篇】二、Flask学习之CSS(下篇)

上篇&#xff1a;二、Flask学习之CSS 3.8hover hover是用来美化鼠标悬停的效果的&#xff0c;当鼠标停放在某个区域&#xff0c;就会执行对应的hover操作。可以操作本标签的内容&#xff0c;也可以操作本标签下某一个标签的内容 3.9after <!DOCTYPE html> <html l…

Unity3d C#实现场景编辑/运行模式下3D模型XYZ轴混合一键排序功能(含源码工程)

前言 在部分场景搭建中需要整齐摆放一些物品&#xff08;如仓库中的货堆、货架等&#xff09;&#xff0c;因为有交互的操作在单个模型上&#xff0c;每次总是手动拖动模型操作起来也是繁琐和劳累。 在这背景下&#xff0c;我编写了一个在运行或者编辑状态下都可以进行一键排序…

JS-元素尺寸与位置

通过js的方式&#xff0c;得到元素在页面中的位置 获取宽高 元素.offsetWidth 元素.offsetHeight 1&#xff09;获取元素的自身宽高、包括元素自身设置的宽高paddingborder 2&#xff09;获取出来的是数值&#xff0c;方便计算 3&#xff09;注意&#xff1a;获取的是可视…

Python项目——搞怪小程序(PySide6+Pyinstaller)

1、介绍 使用python编写一个小程序&#xff0c;回答你是猪吗。 点击“是”提交&#xff0c;弹窗并退出。 点击“不是”提交&#xff0c;等待5秒&#xff0c;重新选择。 并且隐藏了关闭按钮。 2、实现 新建一个项目。 2.1、设计UI 使用Qt designer设计一个UI界面&#xff0c…

C#,入门教程(20)——列表(List)的基础知识

上一篇&#xff1a; C#&#xff0c;入门教程(19)——循环语句&#xff08;for&#xff0c;while&#xff0c;foreach&#xff09;的基础知识https://blog.csdn.net/beijinghorn/article/details/124060844 List顾名思义就是数据列表&#xff0c;区别于数据数组&#xff08;arr…

WGAN损失函数解读

WGAN是Wasserstein GAN 解读

【大数据Hive】hive 行列转换使用详解

目录 一、前言 二、使用场景介绍 2.1 使用场景1 2.2 使用场景2 三、多行转多列 3.1 case when 函数 语法一 语法二 操作演示 3.2 多行转多列操作演示 四、多行转单列 4.1 concat函数 语法 4.2 concat_ws函数 语法 4.3 collect_list函数 语法 4.4 collect_set函…

dpwwn:02

靶场下载地址 https://download.vulnhub.com/dpwwn/dpwwn-02.zip 环境配置 当打开此虚拟机环境的时候&#xff0c;可能会出现&#xff1a;当前硬件版本不支持设备“sata”。然后启动失败的情况~ 解决办法参考&#xff1a;https://www.cnblogs.com/yaodun55/p/16434468.html …