数据传输方式

网络数据传输过程分析

家住魔仙堡 提交于 2020-03-30 21:32:19
在现在的生活中,我们已离不开网络了,但网络是如何传输的呢?我们并不知道。下面是我的一些理解,有不对的地方,还请大家指出,我们共同学习。 首先我们要明白我们要明白什么是IP,什么是物理地址,什么是网关。下面由我通俗地解释一下,IP是可变的,它只是代表了你所在的网络区域,并不能代表就是这台计算机。而物理地址却是不可变的,也就是说,在网络底层的物理传输过程中,是通过物理地址来识别主机的,它一般也是全球唯一的。形象的说,物理地址就如同我们身份证上的身份证号码,具有全球唯一性。物理地址与IP地址的区别,形象举个例子,例如你要到某一学校寻找一个同学,你知道他的名字,也知道他的长相,你首先依据他名字先找到他的班级,再依据他的相貌找到他。这里的名字就相当IP地址(可变),长相就物相当于物理地址(不可变)。我们上网所输入的网址其实也是一个IP地址。网关,网关又称网间连接器、协议转换器。网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。可通俗的说网关是路由器。可在计算机命令窗口输入ipconfig/all,寻找自己IP地址,物理地址。说了这么久,还没开始,现在终于开始了。 网络的传输以下主要说到这些层,应用层,传输层,网络层,数据链路层。要想具体了解其他层,以下有链接。应用层直接和 应用程序 接口并提供常见的网络应用服务。接着是传输层,在了解传输层的时候

计算机网络介绍(一)

 ̄綄美尐妖づ 提交于 2020-03-14 15:19:49
分层的网络结构     相互通信的计算机必须高度协调才能够进行通信,仅仅一条线路是不可能的   为了处理这些 复杂的网络 问题,早在最初的阿帕网中,就 提出 了 分层的方法   分层将 庞大复杂的问题 ,转换成 若干个局部较小的问题 ,较小的问题就更加易于研究分析。    比如,唐僧取经,西天路途遥远,如果整体的看待出行问题,势必非常复杂   如果将整条路拆分为多个小段,这一段适合坐船,那一段适合骑马,这样就能够更好地解决问题    通过分层,各层之间相互独立,整体功能进行分解,每层实现独立功能   灵活型好,易于实现和维护, 当一层发生变化,不会影响另一层 ,只要他们之间的 协作接口不变   其实就是软件 开发中的解耦   关于通信协议的分层,有下面三种形式   其实 只有中间的TCP、IP是有用的   OSI理论虽然很完备,但是没有赶上互联网的发展,而且实现过于复杂   TCP/IP协议才是真正使用的协议    TCP/IP层次结构 TCP/IP分层介绍   如上图所示,现有的TCP、IP协议是分层次的。   在分层体系结构中,各层之间是完全独立的,某一层并不需要知道他的下一层是如何实现的,而仅仅是需要知道下层提供的服务   由于每一层都只是实现一种相对独立的功能,因而可以 将一个难以处理的复杂问题分解为若干个小问题。 应用层   应用层是体系结构中的最高层

数据传输通信协议总结

断了今生、忘了曾经 提交于 2020-03-12 02:13:53
在数据传输时,总是存在丢包、分包、误包的情况。针对这一问题,则必须引进一套数据通信协议,来保证数据的完整性与准确性。 通常,针对 丢包、误包问题 都会采用 数据长度 和 校验码 比对的方式来判断一包数据的准确性。针对 分包问题 ,则采用 报文头、报文尾 的方式(即采用某两个特定的值作为一包的数据开始和结尾的标志),但采用这种方法来标记要保证数据中不会有与报文头、尾相同的字符,这便又涉及到了 数据转义 。 如下为自己总结的一个简单的数据通信协议,可用于串口、网络等通信,供大家参考。 一、数据传输格式 位置 长度(Byte) 定义 说明 0 1 报文头 报文头,固定值0x5B,即字符’[’ 1 2 数据长度 数据体的长度( 传输的数据实际长度 ) 3 X 数据体 传输的数据 3+X 1 校验位 XOR从数据长度到数据体的异或值 4+X 1 报文尾 报文结束,固定值0x5D,即字符’]’ 二、报文转义 除报文头和报文尾外,其它数据域出现 0x5B 、 0x5C 或 0x5D 时,进行如下报文转义 (0x5C 后面只能跟 0x00 、 0x01 、 0x02 ,其它值为非法 ) 转义前 转义后 0x5B 0x5C + 0x01 0x5C 0x5C + 0x00 0x5D 0x5C + 0x02 三、数据处理流程 发送数据前处理流程:数据体->计算数据体长度->计算校验位->数据转义-

【计算机网络高分笔记】第三章:数据链路层

无人久伴 提交于 2020-03-02 22:20:39
【计算机网络高分笔记】第三章:数据链路层 标签(空格分隔):【计算机网络】 第三章:数据链路层 第三章:数据链路层 3.1 数据链路层的功能 3.2 组帧 3.3 差错控制 3.3.1 检错编码 3.3.2 纠错编码 3.4 流量控制与可靠传输机制 3.4.1 流量控制 3.4.2 可靠传输机制 3.4.3 滑动窗口机制 3.4.4 停止-等待协议 3.4.5 后退N帧(GBN)协议 3.4.6 选择重传(SR)协议 3.4.7 发送缓存和接受缓存 我的微信公众号 大纲要求: 数据链路层功能 组帧 差错控制 检错编码 纠错编码 流量控制与可靠传输 流量控制、可靠传输与滑动窗口机制 停止-等待协议 后退 N 帧(GBN)协议 选择重传(SR)协议 介质访问控制 信道划分介质访问控制:频分多路复用、时分多路复用、波分多路复用、码分多路复用的概念和基本原理。 随机访问介质访问控制:ALOHA 协议、CSMA 协议、CSMA/CD 协议、CSMA/CA 协议 轮询访问介质访问控制:令牌传递协议 局域网 局域网的基本概念与体系结构 以太网与 IEEE 802.3 IEEE 802.11 令牌环网的基本原理 广域网 广域网的基本概念 PPP HDLC协议 数据链路层设备 网桥的概念和基本原理 局域网交换机及其工作原理 考点和要点分析 核心考点: 流量控制与可靠传输机制、CSMA/CD原理

前端contentType数据传输格式与ajax技术

夙愿已清 提交于 2020-02-05 05:08:59
前端数据格式contentType参数 前后端传输数据的编码格式 1.urlencoded(form表单与ajax默认的数据提交编码格式) 数据格式 name='jason'&password='123' django后端识别到urlencoded数据格式将其处理封装到了request.POST 2.formdata 传输文件 支持传普通键值对也可以传文件 普通键值还是处理放到request.POST中 文件数据处理放到request.FILES中 3.application/json(ajax支持) JSON.stringify({'name':'jason'}) django后端对于json格式的数据不做任何处理,就将原生的二进制数据存在request.body中,让你自己手动处理 先解码再反序列化 局部刷新之ajax 异步提交(github注册示例) 局部刷新 四个基本参数 url:'', # 控制数据提交的地址,不写默认往当前位置提交 type:'get', # 控制的是数据的提交方式 get,post,。。。 data:{'name':'jason'} # 提交的数据 success:function(data){ # 做局部刷新的操作 alert(data) } $('#b1').click(function(){ $.ajax({ url:'', #

【转帖】HTTPS 详解一:附带最精美详尽的 HTTPS 原理图

孤街醉人 提交于 2020-01-25 00:50:01
HTTPS 详解一:附带最精美详尽的 HTTPS 原理图 https://segmentfault.com/a/1190000021494676 前言 作为一个有追求的程序员,了解行业发展趋势和扩充自己的计算机知识储备都是很有必要的,特别是一些计算机基础方面的内容,就比如本篇文章要讲的计算机网络方面的知识。本文将为大家详细梳理一下 HTTPS 的实现原理。 近年来,随着用户和互联网企业安全意识的提高和 HTTPS 成本的下降,HTTPS 已经越来越普及。很多互联网巨头也在力推 HTTPS,比如谷歌的 Chrome 浏览器在访问 HTTP 网站时会在地址栏显示不安全的提醒,微信要求所有的小程序必须使用 HTTPS 传输协议,苹果也要求所有在 App Store 上架的应用必须采用 HTTPS ,国内外的大部分主流网站也都已迁移至 HTTPS,可见 HTTPS 全面取代 HTTP 只是时间问题。 说了这么多,究竟什么是 HTTPS,它与 HTTP 相比有什么优缺点?其底层原理又是怎么实现的呢?下面就为你一一解答,先来看一下 HTTP 的弊端吧。 1、HTTP 的最大弊端——不安全 HTTP 之所以被 HTTPS 取代,最大的原因就是不安全,至于为什么不安全,看了下面这张图就一目了然了。 图1. HTTP数据传输过程 由图可见,HTTP 在传输数据的过程中,所有的数据都是明文传输

ABP理论学习之数据传输对象(DTO)

我是研究僧i 提交于 2020-01-24 14:45:02
返回总目录 本篇目录 为何需要DTO 领域层抽象 数据隐藏 序列化和懒加载问题 DTO惯例和验证 DTO和实体的自动映射 使用特性和扩展方法进行映射 帮助接口 DTO用于 应用层 和 展现层 间的数据传输。 展现层调用具有DTO参数的 应用服务 方法,然后应用服务使用领域对象来执行一些特定的业务逻辑,最后返回给展现层一个DTO。因此,展现层完全独立于领域层。在一个理想的分层应用中,展现层不直接和领域对象打交道(仓储,实体...)。 为何需要DTO 为每个应用服务方法创建一个DTO起初可能被看作是一项乏味而又耗时的事情。但如果正确地使用它,那么DTOs可能会拯救你应用。为啥呢? 领域层抽象 DTO为展现层抽象领域对象提供了一种有效方式。这样,层与层之间就正确分离了。即使你想完全分离展现层,仍然可以使用已存在的应用层和领域层。相反,只要领域服务的契约(方法签名和DTOs)保持不变,即使重写领域层,完全改变数据库模式,实体和ORM框架,也不需要在展现层做任何改变。 数据隐藏 试想你有一个User实体,包含Id,Name,EmailAddress和Password字段。如果UserAppService的GetAllUsers()方法返回一个List ,即使你没有在屏幕上显示它,那么任何人也都能看到所有user的密码。它不是涉及安全的,而是与数据隐藏相关的。应用服务都应该返回给展现层需要的

数据传输中的成帧

戏子无情 提交于 2020-01-16 04:02:12
什么是数据传输中的成帧 数据传输中的成帧 成帧技术是一种用来在一个比特流内分配或标记信道的技术,为电信提供选择基本的时隙结构和管理方式、错误隔离和分段传输协议的手段。两个计算机或设备之间的点到点的连接中包括一根电线,在这根电线中数据作为位流传输。但是,这些位必须被分成可辨别的信息块。分帧是数据链路层的功能。它使发送器接收器传输一组对有含义的位。以太网、令牌环网、帧中继以及其他数据链路层技术都有它们自己的帧结构。帧具有包含错误检查代码之类的信息的标题。 共有三种不同类型的分帧,每个都为发送器提供一种方法以告诉接收器数据块开始和结束的位置: 面向字节分帧 计算机数据通常是以字母、数字、字符存储的,这种字符是用8bit组合(1Byte)编码的。这种分帧类型使字节各不相同。在终端/大型机环境中使用的是更老样式的分帧。其中面向字节分帧的例子包括IBM的BISYNC协议。 面向位的分帧 这种分帧允许发送器同时传输一长串的位。IBM的SDLC (同步数据链路控制)和HDLC(高级数据链路控制)都是面向位协议的例子。大多数LAN都使用面向位的分帧。通常有最大的帧大小。例如,以太网的最大帧大小为l526Byte。帧的开始和结束是用特殊的位序列来标识的(对于HDLC,是01111110)。如果没有传输数据,将连续传输相同的序列以便终端系统保持同步化。 基于时钟的分帧 在基于时钟的系统中

EDMA - DMA QDMA 完美总结

本秂侑毒 提交于 2020-01-05 09:03:35
EDMA - DMA QDMA -------------------------------- 做个参考,和6487/8 的EDMA3的user guide有点区别. ------------------------------------ EDMA概要 ①EDMA数据传输有两种发起方式: ü CPU发起的EMDA数据传输(非同步方式):需要传输时,CPU设置ESR寄存器的相应位为1,从而触发一个EDMA事件的产生,事件对应的通道参数被送往地址硬件并且完成相应的处理,这种非同步方式的实时数据传输无需设定EER寄存器; ü 事件触发方式EDMA数据传输(同步方式):ER寄存器保存外设发送过来的事件,一旦CPU设置EER寄存器的相应位为1后,ER中的事件才会提交给事件编码器(Event Encoder),并且进一步引起相关的传输参数的发送给地址产生硬件;如果EER中对应于某事件的位没有置1,则ER寄存器中的事件将保留,一旦置1则触发EDMA的传输,这种特性可以应用到EDMA Chain传输,需要EER和CCER结合使用; ②EDMA每个通道是和特定的系统事件绑定的,如下表所示: ③EDMA Chain Transfer:一个通道传完继续传另一个通道; ④EDMA Link Tansfer:设定参数后,通道的数据传输传完,再载入这个通道的其他参数设定,再进行数据传输; (2

57 Django模型层3与数据传输与Ajax

混江龙づ霸主 提交于 2019-12-06 07:04:49
目录 一、orm查询优化 1.only与defer 2.select_related与prefatch_related 二、模型层choices参数 三、MTV与MVC模型 1.MVC 2.MTV 3.区别 四、Ajax简介 五、前后端传输数据编码格式 1. 不同的编码格式 2. 前端朝后端发送数据的请求方式 2.1 form表单发送数据编码格式 2.2 ajax发送数据的编码格式 六、序列化(drf会用到) 一、orm查询优化 能少走数据库就少走数据库。 1.only与defer only :取对象,对象中只包含主键和only括号里的属性。 only括号内放字段,查询结果是一个列表套一个个的数据对象。 这些数据对象通过点的方式取括号内的字段属性不会再查询数据库,直接就是对象获取属性。只需要查一次数据库就可以全取出。 不过only也可以点击括号内没有的字段,但是每点击一次就会重新走一次数据库查询,效率极低。 res = models.Book.objects.only('title') for i in res: print(i.title) # 走一次 for i in res: print(i.price) # 走11次,有几个对象走几次 defer :与only相反,排除括号内的字段。 defer与only是互为反操作。 defer括号内放什么字段