报文交换

MQTT协议(二)

醉酒当歌 提交于 2019-11-27 19:02:15
1. 长连接   互联网推送消息主要基于通信双方建立长连接,从而实现实时推送效果。普通的 socket连接对服务器的消耗太大,所以出现了类似MQTT这种轻量级、低消耗的协议来维护长连接。维护长连接需要采用心跳机制,客户端发送一个心跳数据包给服务器,服务器返回给客户端一个心跳应答,从而完成一次客户端-服务器握手,这个握手是让双方都知道他们之间的连接是没有断开的。如果超过一个时间阈值,客户端没有收到服务器的心跳应答,或者服务器没有收到客户端的心跳请求,那么表示通信双方连接已经不存在。对客户端来说,则断开与服务器的连接重新建立一个连接,对服务器来说只要断开这个连接即可。 2. MQTT通信过程 如上图所示,客户端 A连接到消息代理(message broker),消息代理返回确认消息。客户B发布消息温度25度,客户A订阅‘温度’,消息代理吧消息推给客户A,客户A发布温度20度,但客户B没有订阅,消息代理不推送。消息B又发布了温度38度,客户A就再次收到订阅的消息38度,最后客户端断开连接。以上过程包含如下: 1 CONNECT – 连接服务端:客户端到服务端的网络连接建立后, 客户端发送给服务端的第一个报文必须是CONNECT报文 2 CONNACK – 确认连接请求:服务端发送CONNACK报文响应从客户端收到的CONNECT报文。 服务端发送给客户端的第一个报文必须是CONNACK

DNS报文格式

不羁岁月 提交于 2019-11-27 19:01:09
原文链接地址: http://blog.chinaunix.net/uid-24875436-id-3088461.html DNS报文格式(借个图贴过来): 说明一下:并不是所有DNS报文都有以上各个部分的。图中标示的“12字节”为DNS首部,这部分肯定都会有,首部下面的是正文部分,其中查询问题部分也都会有。除此之外,回答、授权和额外信息部分是只出现在DNS应答报文中的,而这三部分又都采用资源记录(Recource Record)的相同格式,这个稍后会提到。下面逐个字段地分析DNS报文。 标识(2字节):这个字段网上的解释有点不清楚:“由客户程序设置并有服务器返回结果。”看了下实验室的程序和文档,原来这个字段可以看作是DNS报文的ID,对于相关联的请求报文和应答报文,这个字段是相同的,由此可以区分DNS应答报文是哪个请求报文的响应。 标志(2字节):这部分非常重要,需要逐比特分析。再借个图: QR(1比特):查询/响应的标志位,1为响应,0为查询。 opcode(4比特):定义查询或响应的类型(若为0则表示是标准的,若为1则是反向的,若为2则是服务器状态请求)。 AA(1比特):授权回答的标志位。该位在响应报文中有效,1表示名字服务器是权限服务器(关于权限服务器以后再讨论) TC(1比特):截断标志位。1表示响应已超过512字节并已被截断(依稀好像记得哪里提过这个截断和UDP有关

学习笔记4

余生长醉 提交于 2019-11-27 18:23:22
一 RAID 作用 提高IO能力 磁盘并行读写 提高耐用性 磁盘冗余来实现 RAID实现的方式 外接式磁盘阵列:通过扩展卡提供适配能力 内接式RAID:主板集成RAID控制器,安装OS前在BIOS里配置 软件RAID:通过OS实现 常用级别: RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD RAID-0: 读、写性能提升 可用空间:N*min(S1,S2,...) 无容错能力 最少磁盘数:2, 2+ RAID-1: 读性能提升、写性能略有下降 可用空间:1*min(S1,S2,...) 有冗余能力 最少磁盘数:2, 2N RAID-5: 读、写性能提升 可用空间:(N-1)*min(S1,S2,...) 有容错能力:允许最多1块磁盘损坏 最少磁盘数:3, 3+ RAID-10: 读、写性能提升 可用空间:N*min(S1,S2,...)/2 有容错能力:每组镜像最多只能坏一块 最少磁盘数:4, 4+ RAID-50 多块磁盘先实现RAID5,再组合成RAID0 JBOD:Just a Bunch Of Disks 功能:将多块磁盘的空间合并一个大的连续空间使用 可用空间:sum(S1,S2,...) 二 逻辑卷管理器LVM 逻辑卷:允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小 ,允许在多个物理设备间重新组织文件系统

LVS实现负载均衡

二次信任 提交于 2019-11-27 16:44:01
一、LVS 1、LVS是什么? LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台Web服务器,比如,轮询算法可以将外部的请求平均分发给后端的所有服务器,终端用户访问LVS调度器虽然会被转发到后端真实的服务器,但如果真实服务器连接的是相同的存储,提供的服务也是相同的服务,最终用户不管是访问哪台真实服务器,得到的服务内容都是一样的,整个集群对用户而言都是透明的。 LVS基于内核网络层工作,有着超强的并发处理能力,单台LVS可以承受上万的并发连接。LVS是基于4层的负载均衡软件,因此LVS在所有负载均衡软件中性能最强,稳定性最高,消耗CPU和内存少。LVS是工作在4层,所以它可以对应用层的所有协议作负载均衡,包括http、DNS、ftp等。 2、LVS分层及组成 LVS负载均衡分为3层: 第一层:负载调度器(load balancer/Director),它是整个集群的总代理,它在有两个网卡,一个网卡面对访问网站的客户端, 一个网卡面对整个集群的内部。负责将客户端的请求发送到一组服务器上执行,而客户也认为服务是来自这台主的。举个生动 的例子

网络运维常用理论知识概括

折月煮酒 提交于 2019-11-27 16:21:59
《Windows系统管理》 ################################################################### 什么是 BIOS?如何进入BIOS? BIOS基本输入输出系统,一般按DEL或F2进BIOS设置程序。 什么是虚拟机? 虚拟机运行在计算机上的一款软件程序,模拟计算机硬件功能为其他软件程序提供一个独立的计算机环境。 虚拟机运行模式? 1)寄居架构 作为应用软件安装在操作系统上 ,可以在此应用软件上安装多个操作系统 2)原生架构 虚拟机软件直接安装在计算机硬件上 虚拟机本身就是一个操作系统 IP地址作用、组成、分类? 1) 作用:用来标识一个节点的网络地址 2) 组成:网络位+主机位,32位,以4个十进制数来表示,之间用 . 隔开 3) 分类:  A 1 - 127 网+主+主+主  B 128 -191 网+网+主+主  C 192 -223 网+网+网+主  D 224 - 239 组播(多播)  E 240 - 254 科研 4)默认子网掩码  A 类 255.0.0.0  B类 255.255.0.0  C 类 255.255.255.0 备用配置专用IP地址? 169.254.0.1-169.254.255.254、子网掩码为255.255.0.0 私有地址范围: A类 10.0.0.1 ~ 10

【网络】TCP的三次握手与四次挥手以及面试相关的问题

邮差的信 提交于 2019-11-27 12:35:42
一、TCP的三次握手与四次挥手 1、三次握手 定义: 指建立一个TCP连接时,需要客户端和服务器总共发送3个包。建立连接的过程为三次握手 目的: 连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换TCP窗口大小信息。 可能触发三次握手的情况: 在socket编程中,客户端执行connect()时,将触发三次握手。 三次握手的作用: ①使得通讯双方都做好通讯准备; ②告诉对端本端通讯所选用的报文标识号; ③防止已失效的连接请求报文段又突然传递到了服务器,从而产生错误。 三次握手的过程: 2、四次挥手 关闭连接的过程为四次挥手,由于TCP的全双工的通讯,所以每个方向都必须单独进行关闭。 四次挥手的过程: 当一方完成他的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能继续发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。 问题: 1、三次握手,每一次都携带什么数据?为什么要给确认报文段中的ACK的值+1? seq是数据包本身的序列号;ack是期望对方继续发送的那个数据包的序列号。 2、为什么是三次握手?两次可以么?四次呢? 显然是不可以的。 ① 客户端发送SYN包A1,由于网络链路问题,到达时间滞后,因为客户端迟迟收不到服务器的响应,以为丢包,清理A1

TCP的拥塞控制

≡放荡痞女 提交于 2019-11-27 10:58:29
1.引言 计算机网络中的带宽、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。这种情况就叫做拥塞。 拥塞控制就是防止过多的数据注入网络中,这样可以使网络中的路由器或链路不致过载。 拥塞控制是一个全局性的过程,和流量控制不同,流量控制指点对点通信量的控制。 2.慢开始与拥塞避免 发送方维持一个叫做 拥塞窗口cwnd(congestion window) 的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口,另外考虑到接受方的接收能力,发送窗口可能小于拥塞窗口。 慢开始算法的思路就是,不要一开始就发送大量的数据,先探测一下网络的拥塞程度,也就是说由小到大逐渐增加拥塞窗口的大小。 这里用报文段的个数的拥塞窗口大小举例说明慢开始算法,实时拥塞窗口大小是以字节为单位的。如下图: 当然收到单个确认但此确认多个数据报的时候就加相应的数值。所以一次传输轮次之后拥塞窗口就加倍。这就是乘法增长,和后面的拥塞避免算法的加法增长比较。 为了防止cwnd增长过大引起网络拥塞,还需设置一个慢开始门限ssthresh状态变量。ssthresh的用法如下: 当cwnd<ssthresh时,使用慢开始算法。 当cwnd>ssthresh时,改用拥塞避免算法。 当cwnd

OSI七层模型

感情迁移 提交于 2019-11-27 08:36:44
网络编程初识 C/S B/S架构 C/S B/S架构 C: client端 B: browse 浏览器 S: server端 C/S架构: 基于客户端与服务端之间的通信 ​ QQ, 游戏,皮皮虾, 快手,抖音. ​ 优点: 个性化设置,响应速度快, ​ 缺点: 开发成本,维护成本高,占用空间,用户固定. B/S架构: 基于浏览器与服务端之间的通信 ​ 谷歌浏览器,360浏览器,火狐浏览器等等. ​ 优点: 开发维护成本低,占用空间相对低,用户不固定. ​ 缺点: 功能单一,没有个性化设置,响应速度相对慢一些. 网络通信原理 80年代,固定电话联系,(还没有推广普通话) 两台电话之间一堆物理连接介质连接. 拨号,锁定对方电话的位置. 由于当时没有统一普通话,所以你如果和河南,山西,广西,福建等朋友进行友好的沟通交流,你必须学当地的方言. 推广普通话,统一交流方式. 两台电话之间一堆物理连接介质连接. 拨号,锁定对方电话的位置. 统一交流方式. 全球范围内交流: 两台电话之间一堆物理连接介质连接. 拨号,锁定对方电话的位置. 统一交流方式.(英语) 话题转回互联网通信: ​ 我现在想和美国的一个girl联系.你如何利用计算机联系??? 两台计算机要有一堆物理连接介质连接. 找到对方计算机软件位置. 遵循一揽子互联网通信协议. osi七层协议 osi七层协议 应用层 表示层 会话层

超文本传输协议HTTP

冷暖自知 提交于 2019-11-27 08:31:48
HTTP协议定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网,以及服务器怎样将文档传送给浏览器。 从层次角度看,HTTP是面向事务的应用层协议,它是万维网上能够可靠的交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。 HTTP不仅可以传送完成超文本跳转所必须的信息,还可以传送任何可从互联网上得到的信息,如文本、超文本、声音和图像等。 1、万维网的工作过程 万维网的大致工作过程如下图所示: 每个万维网网点都有一个服务器进程,它不断地监听TCP的端口80, 以便发现是否有浏览器(即万维网客户)向它发出连接建立请求,一旦监听到连接建立请求并建立了TCP连接之后,浏览器就向万维网服务器发出浏览某个页面的请求,服务器接着就返回所请求的页面作为响应,最后,TCP连接就被释放了。在浏览器和服务器之间的请求和响应的交互,必须按照规定的格式和遵循一定的规则,这些格式和规则就是超文本传送协议HTTP。 HTTP规定在HTTP客户与HTTP服务器之间的每次交互,都由一个ASCII码串构成的请求和一个类似的通用互联网扩充,即“类MIME (多用途互联网邮件扩展)” 的响应组成。HTTP报文通常都使用TCP连接传送。 用户浏览页面的方法有两种,一种方法是在浏览器的地址窗口中键入所要找的页面的URL,另一种方法是在某一个页面中用鼠标点击一个可选部分

网络安全 与 加密算法

大兔子大兔子 提交于 2019-11-27 07:12:33
计算机中的网络安全 在本篇中介绍了以下几个方面: 机密性 密码学 对称加密算法(DES, 3DES, AES) 公开秘钥算法 RSA大素数的获取 完整性 散列函数(MD5, SHA-1, 并没有提及算法实现) 报文鉴别(MAC) 数字签名 端点鉴别 应用 SSL(TCP网络安全) 运行时安全 防火墙的基本知识 主要体现在以下几个方面: 机密性, 即发送的信息只有双方彼此能够解读,其他人以任何方式皆无法解读。 报文完整性, 即接收方需要能够验证,当前接收到的数据是完整的,没有被经过篡改的。机密性与完整性是相互独立的两个属性。 端点鉴别, 需要知道我收到的消息, 确确实实是来自于对方, 而不是恶意方伪装的。 运行性安全, 需要能够识别并阻拦恶意攻击。如 Dos攻击等, 其目的并非为了窃取信息,而是使得系统瘫痪, 无法运行。 机密性 首先来看机密性问题, 小明和小红之间发送的有效信息 不希望被第三方解读。 而实现这点的方式自然是, 加密, 加密,就需要相关的密码。 密码学 加密所要实现的根本目的是,将数据加密,除非拥有相关的秘钥,算法,才能够 也 必须能够 将数据恢复到 原始数据。 这里的原始数据被称作 明文 , 小明使用了 加密算法 加密其明文, 生成的文本为 密文 , 加密算法是公知的,而 秘钥 是私有的. 对称秘钥体系 凯撒密码 是一种简单的加密算法。 对于字母而言, 约定 用