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

news2024/9/20 16:36:15

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

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

网络发展史

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

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

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

国内在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.coloradmin.cn/o/1398891.html

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

相关文章

实现分布式锁

背景 分布式锁是一种用于协调分布式系统中多个节点之间并发访问共享资源的机制。在分布式系统中,由于存在多个节点同时访问共享资源的可能性,需要使用分布式锁来保证数据的一致性和正确性。 今天要实现的是分布式场景中的互斥类型的锁。 下面时分布…

免费使用IntelliJ IDEA的7种方式(2024 最新版)

大家好,我是小黑,今天要和大家分享的是如何免费使用 IntelliJ IDEA。我们都知道,作为一名程序员,拥有一个高效的开发工具是至关重要的。IntelliJ IDEA 无疑是市面上最受欢迎的开发工具之一。但是,获取授权的成本有时会…

MySQL 索引(下)

🎉欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克🍹 ✨博客主页:小小恶斯法克的博客 🎈该系列文章专栏:重拾MySQL-进阶篇 🍹文章作者技术和水平很有限,如果文中出现…

leetcode下一个更大的元素---1暴力---2单调栈

1.题目&#xff1a; nums1 中数字 x 的 下一个更大元素 是指 x 在 nums2 中对应位置 右侧 的 第一个 比 x 大的元素。 给你两个 没有重复元素 的数组 nums1 和 nums2 &#xff0c;下标从 0 开始计数&#xff0c;其中nums1 是 nums2 的子集。 对于每个 0 < i < nums1.l…

STL中的map

概述 std::map 是一个模板类&#xff0c;定义在头文件 <map> 中&#xff1a; template<class Key,class T,class Compare std::less<Key>,class Allocator std::allocator<std::pair<const Key, T>> > class map;std::map 是一种有序关联容器…

考研C语言刷编程题篇之分支循环结构基础篇(一)

目录 第一题 第二题 方法一&#xff1a;要循环两次&#xff0c;一次求阶乘&#xff0c;一次求和。 注意&#xff1a;在求和时&#xff0c;如果不将sum每次求和的初始值置为1&#xff0c;那么求和就会重复。 方法二&#xff1a; 第三题 方法一&#xff1a;用数组遍历的思想…

redis-exporter grafana面板配置

一、前言 关于使用tensuns自带的grafana监控模板&#xff0c;监控redis-exporter接口会有一些数据丢失的问题&#xff0c;需要自行修改一下grafana模板的json 二、修改模板 redis grafana模板id&#xff1a;17507 主要是针对cpu使用率和内存使用率做一个说明&#xff0c;因为…

mac 中vscode设置root启动

1. 找到你的vscode app&#xff0c;点击鼠标右键------->选项----->在访达中显示 2. 终端中输入以下命令&#xff0c;不要点回车&#xff0c;不要点回车&#xff0c;输入一个空格 sudo chflags uchg 3. 然后将你的程序拖到终端&#xff0c;会自动…

智能光栅光片显微成像技术的LabVIEW解决方案

智能光栅光片显微成像技术的LabVIEW解决方案 在生物医学研究中&#xff0c;高效的成像技术对于捕捉细胞内罕见和复杂事件至关重要。智能光栅光片显微技术&#xff08;smartLLSM&#xff09;的出现&#xff0c;代表了LabVIEW软件在高端成像领域的革命性应用&#xff0c;这项技术…

Mac M1 Parallels CentOS7.9 Deploy Typecho

一、创建名称空间 kubectl create ns prod二、创建PV & PVC vim local-pv1.yamlapiVersion: v1 kind: PersistentVolume metadata:name: local-pv-1 spec:capacity:storage: 1GiaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RetainstorageClassName: loca…

Selenium WebDriver与RC的差异

什么是Selenium WebDriver&#xff1f; Selenium WebDriver 是用于测试Web应用程序的API的开源集合。Selenium WebDriver工具&#xff0c;它还允许执行跨浏览器测试。 WebDriver还能够使用编程语言在创建测试脚本时使用。现在可以使用条件运算就像If-Then-Else或Switch-Case。…

Centos 7 单机部署 consul

一、下载安装 参考官网文档 Install | Consul | HashiCorp Developer 进入Centos 执行下面命令 sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo sudo yum -y install consul 这种方法安装完成…

linux下vsc的自动切换输入法解决方案

前言 个人使用的是Linux开发加上vsc编辑器&#xff0c;这两个东西一加中国开发者大致上就消失不见了&#xff0c;眼馋idea那个Smartinput很久了&#xff0c;赶上放假了&#xff0c;有空搞搞&#xff0c;如果后期有心情会做的通用点 安装 商店搜索SmartInputLinux安装 使用…

STM32标准库开发—MPU6050详细介绍

MPU6050简介 3轴IMU即只有3轴陀螺仪的IMU&#xff0c;其因为只有一个3轴陀螺仪&#xff0c;所以只能感知载体roll&#xff08;滚转&#xff09;、pitch&#xff08;俯仰&#xff09;、yawl&#xff08;偏航&#xff09;共3个自由度的姿态信息。 6轴IMU在3轴IMU的基础上加装了3轴…

Unity之射线检测

不知道大家有没有玩过红色警戒 —— 一款即时战略游戏&#xff0c;和罪恶都市一样小编小学的时候就开始玩了&#xff0c;这款游戏控制单位角色移动是通过鼠标的点击来实现。 同样的操作方法还有英雄联盟等很多游戏&#xff0c;那本篇文章小编就通过简单小实例来讲解这种操作在U…

[ComfyUI进阶教程] lcm+Lora+Controlnet工作流工作流

这是一个使用了LCMlora加载器CN&#xff08;depthtile&#xff09;的工作流。 工作流特性&#xff1a; LCM lora加载器&#xff0c;加快生成图片的时间。 配置了3个lora加载器&#xff0c;用来进行人物和风格设定。 提示词编辑器&#xff0c;预制了默认的动态提示词。 使用了…

linux第一个小程序 --- 进度条【简洁】

行缓冲区的概念 结果&#xff1a;先输入hello world然后休眠三秒后结束 当去掉’\n“ 后&#xff0c;结果就变成了先休眠三秒&#xff0c;然后打印hello world后结束。 该现象就证明了缓冲区的存在。 当缓冲区中遇到’‘\n’或者缓冲区被写满后才会被打印出来&#xff0c;在第…

【设计模式】腾讯二面:自动贩卖机/音频播放器使用了什么设计模式?

状态模式是什么&#xff1f; 状态模式&#xff0c;也被称作状态对象模式&#xff0c;是一种行为设计模式。 当一个对象的内在状态改变时&#xff0c;允许改变其行为&#xff0c;这个对象看起来像是改变了其类。 它让对象在其内部状态改变时改变自己的行为。外部调用者无需了…

(蓝桥杯每日一题)love

问题描述 马上就要到七夕情人节了&#xff0c;小蓝在这天想要心爱得男神表白&#xff0c;于是她写下了一个长度为n仅由小写字母组成的字符串。 她想要使这个字符串有 1314个 love 子序列但是马虎的小蓝却忘记了当前已经有多少个子序列为 love。 请你帮小蓝计算出当前字符串有多…

Rustdesk 中VP8 / VP9 / AV1 是什么?

环境&#xff1a; Rustdesk1.1.9 VP8 / VP9 / AV1 问题描述&#xff1a; VP8 / VP9 / AV1 是什么&#xff1f; 解决方案&#xff1a; 1.VP8、VP9和AV1是视频编解码器&#xff0c;用于压缩和解压缩视频数据。它们是由Google和Alliance for Open Media&#xff08;AOM&#…