bit、进制、位、时钟(窗口)、OSI七层网络模型、协议、各种码

news2025/1/13 9:29:28

1.bit与进制  (个人理解,具体电路是非常复杂的)

物理层数据流,bit表示物理层数据传输单位,

一个电路当中,通过通断来表示数字1和0

两个电路要通讯,至少要两根线,一根作为电势参照,一根或者多根作为高低电势判断

以两根举例,他一次只能传输一个信号,所以系统间通讯是二进制,如果是N根(包括参考电线),那么系统间通讯是2^(N-1)进制,(3根  4进制   , 4根  8进制,  5根   16进制。。。。。)

网线是8根,实际有效是四根(不包括参考电线),所以网络传输是16进制(范围:0-F)

2.进制与位

计算机系统存储、运行、计算(寄存器、内存等)都是用的二进制,所以数据接受过来之后,要进行进制转换,比如16进制 的 C 转换为二进制 是  11000 , 原本16进制只要一位就能表示,转换之后需要5位表示。位就是数字再该进制下表示所需要的长度。

注:进制越大,1bit传输的数据越多,因为1bit指的就是1位

3.bit与时钟 (窗口)  (个人理解)

时钟是一个振荡器,cpu去处理数据只能是再周期内完成,一个周期只能处理一个指令,但是系统有很多线程、进程、应用程序,不可能cpu只处理A程序,完了之后再去处理B程序,这样会导致很多阻塞,所以cpu是一个周期内处理一下这个,下过周期处理另外一个。。。。

这样会有问题,假设两个系统通讯,A系统要发送给B系统,但是某个时刻A系统发送了数据过去,B系统在处理别的,这样会丢失数据,所以有了窗口概念,也就是B会有一个缓存区,缓存B系统一个周期或者多个周期间接收到的数据,等B开始处理这边数据的时候就从窗口缓存中读取处理,然后清空或者清理部分缓存出来。

(tcp协议发起建立链接之后,服务端回复ack会带窗口大小等信息,防止客户端一直不停的发消息)

4.OSI七层网络架构:

物理层、链路层、网络层、传输层、会话层、表现层、引用层

上面讲了物理层,链路层就是我数据包从A发送到B,期间有很多网卡,链路就是网卡间数据传输(物理地址)比如 我电脑连了wifi,我发数据到百度,先是我这边通过网线把数据给到交换机,然后路由器再把数据给到上一层网络,层层上传一直到百度服务器。物理地址:A->B ->C->D->百度的物理地址(有冲突域、广播域,这里不说了)

网络层:ip协议,有IPV4 \ IPV6  一般是IPV4 ,他是数据包从一个ip(主机)到指定的ip(主机),不同局域网有相同的ip,为了确定网络位置,有了网络位置、主机位置、子网掩码

如果N台电脑全部用集线器链接起来,分配ip是有限的,所以要网络分层,然后有了子网、掩码、寻址。比如 192.168啥的都是内网用  127.0.0.1啥的都是本地回环地址  (具体ip段用作什么可以自行百度),然后为了广播快就有了掩码,把同一层网络的主机,根据ip掩码进行广播(网络位置)

比如某一层有五个主机  43.120.4.1、43.120.5.1、43.120.8.1,那么,五个主机的掩码可以为 255.255.255.0也就是只要前面三段来判断网络位置  43.120.4 、  43.120.5、  43.120.8

比如这一层来了个数据包要去 43.120.5.14这个ip的,他会判断是那些网络位置,这里就是43.120.5这个网络位置,然后他就只会给43.120.5这个下面的主机进行广播。

如果你把43.120.8.1的掩码改成了255.255.0.0,那么他的网络位置就是43.120,也会进行广播

大概是这样,不过数字可能有问题,他是二进制的,掩码是要连续的1111和000两部分组成

比如 11111111.11111111.11111111.00000000 或者11111111.11111111.11111000.00000000

然后他去判断网络位置也是通过上面主机的ip二进制和掩码进行截取(&逻辑)

注:baidu.com是不能传输的,所以要进行dns去查询这个域名对应的ip然后封装数据包

传输层:协议一般是TCP\UDP(具体端口到端口的数据传输)

是端口对端口的,基于网络层协议,UDP是不稳定的,他不会占用端口一直等回复的,TCP是要等回复的ACK (所以会有DOS攻击) 半链接攻击是发送SYN,然后服务器发送SYN+ACK包(服务等待)然后我这边不发ACK包故意让服务器等,让他占资源 ;全链接攻击是服务器发了SYN+ACK包之后,我回复ACK包(服务器会进入接收数据状态),然后不发数据也不发FIN包。伪造攻击是别人TCP正常沟通中,我伪造客户端ip,发送rest包(前提是要能拿到客户最新的序列号,然后+1发过去,一般要处于网络中间位置截获),让服务器清空正常的窗口数据。

DDOS攻击就是一堆肉鸡一起对某个服务器同时发起DOS攻击

会话层:系统给其他系统或用户开的一个会话窗口(session,服务要保存会话状态、身份认证)

 HTTP\HTTPS协议  HTTP数据是可以抓的,明文的,HTTPS是在TCP和HTTP之间加了一层SSL/TSL协议,对数据加密,他是服务器生成公钥、私钥和一段明文,然后将明文HASH(报文)再私钥加密生成密文(签名),然后把签名、公钥、明文交给CA机构签发证书(包括生效、失效等信息)。浏览器访问https链接会下载安装证书 ,然后校验签名:明文HASH(报文)  然后  公钥解密签名得到“报文”,比对两个HASH报文是否一致,一致就说明服务器是信任的,然后客户端也要生成秘钥(对称加密的)然后通过公钥加密发给服务端,服务端拿到 “对称加密秘钥”的密文 之后用私钥解密出 对称加密秘钥 ,然后双方使用对称加密秘钥进行通讯

表现层:(具体的内容了,有不同表示形式,就有了不同协议,比如html是超文本协议、doc是文本、excel表格、exe可执行文件、zip压缩包等)

浏览器自己根据http头拿到格式进行内容解析显示出来就是表现层

应用层:(系统间的状态、协议等)

前端服务、微服务之间、以及项目服务与数据库之间的交流协议等等。

注:不同应用间数据交流用到的协议层数未必都要七层,比如多台计算机用集线器链接,只需要物理层就可以了(鼠标、键盘、网卡等),主机到主机(局域网内,通过交换机连接)只需要物理层+链路层就可以了

个人理解AI: 就是为了能和支持不同层协议系统进行沟通,比如:AI和网站沟通就要充当浏览器等,和DOC文档沟通,就要把自己当作个文件,输出相关内容给doc应用程序,保存doc的修改等;要和浏览器沟通,就要充当网站;最终是与人沟通,就要充当人,就要会发声、语义解析等

原码、反码、补码、移码  (对于二进制数据而言的) 校验码

原码:原本的数字表示 比如    0 1100011  负数是    1  1100011   (第一位是符号位)

反码:正数是他本身,负数是除了符号位,其他取反  比如  0 1100011       1  0011100(其他位和符号位异或运算)

补码: 正数补码是他自己,负数的补码是反码+1

校验码:校验数据包的正确性,以及纠错,有奇偶校验、海明校验、循环冗余校验(CRC ) 这里不细说了;

为啥要反码:因为计算机只有加法器,减一个数就相当于加该数的负数  结果再取反。

补码待会说

原理:负数的反码是(最高数-他)  比如(八位数,除去符号位是七位)  

0001100  取反就是  1111111-0001100 = 1110011

然后加上被减数(带符号位) 就是  被减数(符号位0)+(最高数-减数)(符号位1)

注:符号位在第八位,这里定义的最高数是七位的最高数(所以加符号位也就是最高数+1)

相当于 

结果 = 被减数+最高数-减数+最高数+1

= (最高数+最高数+1)+(被减数 - 减数)

注:(最高数+最高数+1) 相当于是(11111111八位) 最高数+1 是(10000000)八位  再加个最高数就是(11111111八位) 所以多加一就会进一位到第九位(高于八位会舍去),

所以,当被减数 - 减数 >= 1 的时候

会近一位到第九位,舍去(相当于减去了一个(100000000 九位)),也就是(高位数+1)*2 

高位数加1 是 (10000000 八位)左移一位相当于是乘以2

此时:

结果 = (最高数+最高数+1)+(被减数 - 减数)-(高位数+1)*2 

=最高数+最高数+1+被减数-减数   -   2*最高数   -  2

=被减数 - 减数 -1

他是正数,且符号位正好是0 ,取反码就是他自己,这里多减了1,所以才有补码(反码+1)

当被减数 - 减数 <1 的时候取反逻辑:

不会进位到第九位,

此时:

结果=(最高数+最高数+1)+(被减数 - 减数)

= 最高数+最高数+1 +被减数-减数

由于 被减数 - 减数<1 也就是 0 或者负数,这时候没有进位,最高位是1(符号位)

表示他是负数,

然后取反:也就是最高数(七位) - 结果(不带符号位的),然后补上符号位

结果不带符号位也就是(减去了 10000000)最后补上符号位也就是(加上了10000000)

也就是= 最高数 - (最高数+最高数+1+被减数-减数 - (最高数 + 1))+最高数+1

= 最高数 - (最高数+被减数-减数)+最高数+1

= 减数 - 被减数 + 最高数+1

其中(最高数+1)是符号位 ,减数-被减数  负数取了相反数  正好

补码会不会影响这里呢,不会,因为减数取补码+1,然后最终结果是负数取相反数+1

也就是减1再加了1,正好。

然后byte为啥是 -128 到 127 ,因为反码逻辑下,负数表示是  -127 到 -0 ,正数 是 +0 到 127

然后0重复表示了,

然后补码是:比如 -1的补码是  11111111(原码10000001 反码11111110)

 -2的补码是  11111110(原码 10000010 反码11111101)

依次类推,补码是-1  原码 +1   

   一直到  -1*(2^8-1)反码能表示的极限(相当于int的-127) 10000001(原码11111111 反码 10000000)

在-1的时候,反码是不能减了,他符号位不能动的,但是补码还可以-1,此时是

-1*2^8  (相当于int的-128) 10000000(原码 100000000 九位了,表示不了,反码也就没了)

因此规定 int的-128没有原码和反码,只有补码,记做1000000......(原本是-0的反码)

移码

用于小数表示,科学计数法

比如 十进制 31.415926 的科学计数法是   3.1415926*10^1 (底数是 0-10之间的数(不包括0和10))

这里的底数是3.1415926   指数是 1

二进制表示: 比如  111.00101  科学计数法是  1.1100101*2^2 (底数是0到2之间的数)

底数是1.1100101   指数是 2

由于二进制底数的整数部分只能是1,所以在存储的时候 只要记录符号、小数部分和指数就可以

float是32位  符号一位  指数位8位 23位尾数

由于指数也有负数,这里没有用补码形式表示,用的移码,也就是有个偏移量 127

原本范围是 0 到 2^9-1  

现在都减去127,就成了   -127   到 2^9 - 128 范围

比如  -3.125   表示二进制是  -11.001(整数短除法,小数乘法去换算)

  科学计数法是  -1.1001*2     尾数是   1001  指数 是 1  符号位是 1

指数的移码是  1   对应的原码要+127  = 128 = 2^7  对应二进制 (10000000八位)

所以 他的表示是   1 10000000 10010000000000(后面一堆0不写了)

duble是64位   1个符号位  11位指数位  52位尾数位

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

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

相关文章

浓眉大眼的Apple开源OpenELM模型;IDM-VTON试衣抱抱脸免费使用;先进的语音技术,能够轻松克隆任何人的声音

✨ 1: openelm OpenELM是苹果机器学习研究团队发布的高效开源语言模型家族 OpenELM是苹果机器学习研究团队开发的一种高效的语言模型&#xff0c;旨在推动开放研究、确保结果的可信赖性、允许对数据和模型偏见以及潜在风险进行调查。其特色在于采用了一种分层缩放策略&#x…

定时器介绍

定时器简介 一、周期定时功能二、PWM功能三、脉冲捕获四、事件计数五、扩展触发功能 一、周期定时功能 定时器的时钟为所选时钟源LRC、OSC、HRC、PLL通过定时器内的预分频器TMRDIV分频得到。 二、PWM功能 包括向上、下、中央计数方式&#xff0c;以向上计数为例计数和引脚产生…

使用excel文件生成sql脚本

目录 1、excel文件脚本变量2、公式示例 前言&#xff1a;在系统使用初期有一些基础数据需要从excel中导入到数据库中&#xff0c;直接导入的话可能有些字段用不上&#xff0c;所以就弄一个excel生成sql的导入脚本&#xff0c;这样可以将需要的数据填到指定的列即可生成sql。 1、…

前端路由的实现原理

当谈到前端路由时&#xff0c;指的是在前端应用中管理页面导航和URL的机制。前端路由使得单页应用&#xff08;Single-Page Application&#xff0c;SPA&#xff09;能够在用户与应用交互时动态地加载不同的视图&#xff0c;而无需每次都重新加载整个页面。 在前端开发中&…

【VTKExamples::Meshes】第十八期 OBBDicer

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例OBBDicer,并解析接口vtkOBBDicer,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO 1. …

AT7456E 贴片TSSOP-28 新版本 OSD字符叠加芯片

AT7456E OSD&#xff08;On-Screen Display&#xff09;叠加芯片的应用领域相当广泛&#xff0c;主要用于在视频信号上传递附加信息。根据您提供的信息[2]&#xff0c;以下是AT7456E的一些典型应用领域&#xff1a; 1.无人机&#xff1a;用于在无人机的视频传输中叠加关键信息…

NIKKE胜利女神妮姬1.5周年(PC)怎么下载一键下载安装教程一看就会

NIKKE胜利女神妮姬1.5周年(PC)怎么下载&#xff1f;一键下载安装教程一看就会 近日一款新型FPS游戏NIKKE引起了游戏爱好者们的热议&#xff0c;这款游戏是由Shift Up公司开发的一款二次元风格美少女射击类RPG游戏。玩家可以通过抽卡获取不同的角色&#xff0c;并通过主线支线关…

windows下git提交修改文件名大小写提交无效问题

windows系统不区分大小写&#xff0c;以及git提交忽略大小写&#xff0c;git仓库已存在文件A.js&#xff0c;本地修改a.js一般是没有提交记录的&#xff0c;需要手动copy一份出来A.js&#xff0c;再删除A.js文件提交仓库删除后&#xff0c;再提交修改后的a.js文件。 windows决…

Next.js 14 App Router引入 farmer-motion 初始化异常解决,顺带学点知识

前言 farmer-motion 是一个非常好用的动画库&#xff0c;当然用来做组件切换和路由切换过渡更不在话下。 记录一下&#xff0c;Next.js 14 App Router 下引入初始化异常的解决姿势&#xff0c;顺带扯一下 next.js 的知识点&#xff1b; 问题 过渡组件代码 我们拿 farmer-m…

SAP DMS修改文档操作简介

修改DMS文档的事物代码是—CV02N,同样的删除、审批都是用的CV02N对文档进行操作 1、文档的审批,根据我们后台对文档版本的配置通过CV02N对这个文档状态的一个变更 当审批后系统就会显示绿灯,如下图 2、文档的标记删除 我们在CV02N的界面中直接点击删除标记即可。 点击后…

Error opening file a bytes-like object is required,not ‘NoneType‘

错误显示&#xff0c;打开的是一个无效路径的文件 查看json文件内容&#xff0c;索引的路径与json文件保存的路径不同 方法&#xff1a;使用python脚本统一修改json文件路径 import json import os import argparse import cv2 from tqdm import tqdm import numpy as np impo…

算法设计优化——有序向量二分查找算法与Fibonacci查找算法

文章目录 0.概述1.语义定义2. 二分查找&#xff08;版本A&#xff09;2.1 原理2.2 实现2.3 复杂度2.4 查找长度 3.Fibonacci查找3.1 改进思路3.2 黄金分割3.3 实现3.4 复杂度分析3.5 平均查找长度 4. 二分查找&#xff08;版本B&#xff09;4.1 改进思路4.2 实现4.3 性能4.4 进…

基于CANoe从零创建以太网诊断工程(2)—— TCP/IP Stack 配置的三种选项

&#x1f345; 我是蚂蚁小兵&#xff0c;专注于车载诊断领域&#xff0c;尤其擅长于对CANoe工具的使用&#x1f345; 寻找组织 &#xff0c;答疑解惑&#xff0c;摸鱼聊天&#xff0c;博客源码&#xff0c;点击加入&#x1f449;【相亲相爱一家人】&#x1f345; 玩转CANoe&…

手撕netty源码(二)- 初始化ServerBootstrap

文章目录 前言一、ServerBootstrap 的创建和初始化1.1 创建1.2 初始化group1.3 初始化channel1.3 初始化option和attr1.4 初始化handler 和 childHandler 总结 前言 processOn文档跳转 接上一篇&#xff1a;手撕netty源码&#xff08;一&#xff09;- NioEventLoopGroup 本篇讲…

uni-app app和h5的通信

uni-app一套代码同时打包安卓、iOS、h5,有一些需要app与h5的交互通信,目前做到了这块的业务,记录如下&#xff1a; 1.去declould官网,找到uni_webview.js下载链接,将uni_webview.js文件下载到本地&#xff0c;修改uni_webview.js内部配置,将uni修改为webUni,修改好的文件已放到…

SpringBoot中Bean的创建过程及扩展操作点 @by_TWJ

目录 1. 类含义2. Bean创建过程 - 流程图3. 例子3.1. 可变属性注入到实体中3.2. 模拟Bean创建的例子 1. 类含义 BeanDefinition - 类定义&#xff0c;为Bean创建提供一些定义类的信息。实现类如下&#xff1a; RootBeanDefinition - 类定义信息&#xff0c;包含有父子关系的Be…

智慧健康旅居养老产业,做智慧旅居养老服务的公司

随着社会的进步和科技的飞速发展&#xff0c;传统的养老模式已经无法满足 现代老年人的多元化 需求。智慧健康旅居养老产业应运而生&#xff0c;成为了一种新型的养老模式&#xff0c;旨在为老年人提供更加舒适、便捷、安全的养老生活。随着社会的进步和人口老龄化趋势的加剧&a…

五一劳动节活动策划案怎么写?

分享一个五一劳动节活动策划万能模板&#xff0c;直接照着写就好。 一、活动主题&#xff1a; 五一户外露营Party 二、活动时间&#xff1a; 五一节当天&#xff0c;上午点至下午点 三、活动地点&#xff1a; 城市郊外的公园或大型绿地 四、参与人员&#xff1a; 公司员…

自动化测试超详细总结

简介 软件测试是软件开发过程中一个必不可少的环节。传统的软件测试方式通常是手动测试&#xff0c;即由专业的测试人员通过手动操作软件应用程序来验证其功能和性能。然而&#xff0c;这种方式存在许多缺点&#xff0c;例如时间耗费、测试结果不稳定、测试覆盖率不够高等。 为…

Pandas 2.2 中文官方教程和指南(二十·二)

通过组进行迭代 有了 GroupBy 对象&#xff0c;通过分组数据进行迭代非常自然&#xff0c;类似于itertools.groupby()的操作&#xff1a; In [74]: grouped df.groupby(A)In [75]: for name, group in grouped:....: print(name)....: print(group)....: barA B…