路由

路由器/交换机/网关

北战南征 提交于 2020-01-10 11:18:33
非科班出身,路由 网关 交换机的区别一致很不明白,今天学习了解了一下,做各笔记。 交换机:传统的2层交换机处于7层网络架构的第二层即链路层,它连接网络设备(路由/交换机/防护墙)和终端设备(电脑/服务器/共享打印机),交换机是针对 共享工作模式() 的弱点而推出的。交换机拥有一条高带宽的背部总线和内部交换矩阵,局域网内的操作(共享打印机,文件服务器)提供高速端口切换连接分流控制(不是像路由转发,而是到制定端口)。不能隔离广播包。内部有ARP表(MAC与IP映射,不在表中的要进行广播) 路由器:处于7层架构的网络层,用于连接内网(私有IP+端口映射到统一公共IP)和外网,主要功能是路由寻址和转发(互通),连接不同的网络层,路由器的地址就是网关地址(所以也称为IP网关(是网关中的一种),在家庭或小型办公场合使用),可以进行ARP/动态IP/限速/拨号上网等复杂操作。可以隔离广播包。 网关:处理不同协议的转换但不能是透传传送。路由器,防护墙,服务器都可以充当网关进行内网和外网的控制。 中继器:连接2各网络设备并进行信号放大,如路由中继器,信号采集中继器(各种有线无线协议数据转统一的协议数据如MODBUS-TCP). IPCONFIG /ALL的私有IP与浏览器中输入IP的公网IP不同的原因:IPV4是32位,设计之初也没想到那么快就不够用,所以才有通过WAN

vue学习指南:第十三篇(详细) - Vue的 路由 第三篇 ( 路由的缓存 )

*爱你&永不变心* 提交于 2020-01-10 11:13:14
路由的缓存 路由缓存是 Vue组件优化的一个重要方法 为什么实现路由缓存?   为了 组件间 相互切换不会重复加载数据,影响用户体验,我们通常需要将组件的数组实现缓存,当我们点过来,在点的时候会再次发送 ajax,想让它发送之后把数据存起来。   我们需要,当我点击的时候直接出来 <keep-alive> <router-view></router-view> </keep-alive> 步骤一:路由的写法 { path:"/find/nan", name:"nan", component:Nan, meta:{ keepAlive:true } }, 为true 这个组件就缓存,为false 就不缓存 步骤i二:app.vue中   使用 <keep-alive></keep-alive> 标签将<router-view></router-view> 包裹起来。 keep-alive 是什么?   包裹动态组件时,会缓存不活动的组件实例,而不是销毁他们,他自身不会渲染一个 dom 元素 也不会出现在父组件中。 作者:晋飞翔 手机号(微信同步):17812718961 希望本篇文章 能给正在学习 前端的朋友 或 以及工作的朋友 带来收获 不喜勿喷 如有建议 多多提议 谢谢!!! 来源: https://www.cnblogs.com/jinfeixiang/p/12174779

Node.js 路由

徘徊边缘 提交于 2020-01-10 10:28:10
我们要为路由提供请求的URL和其他需要的GET及POST参数,随后路由需要根据这些数据来执行相应的代码。 因此,我们需要查看HTTP请求,从中提取出请求的URL以及GET/POST参数。这一功能应当属于路由还是服务器(甚至作为一个模块自身的功能)确实值得探讨,但这里暂定其为我们的HTTP服务器的功能。 我们需要的所有数据都会包含在request对象中,该对象作为onRequest()回调函数的第一个参数传递。但是为了解析这些数据,我们需要额外的Node.JS模块,它们分别是url和querystring模块。 url.parse(string).query | url.parse(string).pathname | | | | | ------ ------------------- http://localhost:8888/start?foo=bar&hello=world --- ----- | | | | querystring(string)["foo"] | | querystring(string)["hello"] 当然我们也可以用querystring模块来解析POST请求体中的参数,稍后会有演示。 现在我们来给onRequest()函数加上一些逻辑,用来找出浏览器请求的URL路径: var http = require("http"); var url =

分库分表?如何做到永不迁移数据和避免热点?

笑着哭i 提交于 2020-01-10 08:56:28
前言 中大型项目中,一旦遇到数据量比较大,小伙伴应该都知道就应该对数据进行拆分了。 有垂直和水平两种 。 垂直拆分比较简单,也就是本来一个数据库,数据量大之后,从业务角度进行拆分多个库。如下图,独立的拆分出订单库和用户库。 水平拆分的概念,是同一个业务数据量大之后,进行水平拆分。 上图中订单数据达到了4000万,我们也知道mysql单表存储量推荐是百万级,如果不进行处理,mysql单表数据太大,会导致性能变慢。使用方案可以参考数据进行水平拆分。把4000万数据拆分4张表或者更多。当然也可以分库,再分表;把压力从数据库层级分开。 分库分表方案 分库分表方案中有常用的方案,hash取模和range范围方案;分库分表方案最主要就是路由算法,把路由的key按照指定的算法进行路由存放。下边来介绍一下两个方案的特点。 hash取模方案 在我们设计系统之前,可以先预估一下大概这几年的订单量,如:4000万。每张表我们可以容纳1000万,也我们可以设计4张表进行存储。 那具体如何路由存储的呢?hash的方案就是对指定的路由key(如:id)对分表总数进行取模,上图中,id=12的订单,对4进行取模,也就是会得到0,那此订单会放到0表中。id=13的订单,取模得到为1,就会放到1表中。为什么对4取模,是因为分表总数是4。 优点: 订单数据可以均匀的放到那4张表中,这样此订单进行操作时

物联网MQTT 协议测试

谁说胖子不能爱 提交于 2020-01-10 05:36:40
MQTT测试 MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议。 它的设计思想是轻巧、开放、简单、规范,易于实现。 这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT)。 MQTT 服务器有多种,其中功能比较齐全的推荐有mosquitto,emqttd,Apache Apollo。其中安装mosquito过程中windows 存在各种异常,最后未搭建成功,改为选择emqttd 方式。 EMQTT 服务器搭建 1. 下载windows安装源页面 http://emqtt.com/downloads 2. 下载完成后解压,进入目录 \emqttd\bin 3. 分别命令执行,启动MQTT服务器 emqttd console emqttd install emqttd start 4. 启动浏览器访问网页 特别说明,在执行命令后,注意防火墙选择允许访问方式。三条命令运行完成后,会自动处于运行状态。保持当前窗口,然后启动浏览器访问 http://127.0.0.1:18083 (默认账户用户名:admin,密码public)服务器地址可修改,默认为本地回环ip地址127.0.0.1 客户端工具配置 客户端工具较多,下文主要介绍windows常见的MQTT.FX 和MQTTBox两种客户端,使用过程中二选一即可。

Node.js 路由

不问归期 提交于 2020-01-10 04:11:06
我们要为路由提供请求的URL和其他需要的GET及POST参数,随后路由需要根据这些数据来执行相应的代码。 因此,我们需要查看HTTP请求,从中提取出请求的URL以及GET/POST参数。这一功能应当属于路由还是服务器(甚至作为一个模块自身的功能)确实值得探讨,但这里暂定其为我们的HTTP服务器的功能。 我们需要的所有数据都会包含在request对象中,该对象作为onRequest()回调函数的第一个参数传递。但是为了解析这些数据,我们需要额外的Node.JS模块,它们分别是url和querystring模块。 url.parse(string).query | url.parse(string).pathname | | | | | ------ ------------------- http://localhost:8888/start?foo=bar&hello=world --- ----- | | | | querystring(string)["foo"] | | querystring(string)["hello"] 当然我们也可以用querystring模块来解析POST请求体中的参数,稍后会有演示。 现在我们来给onRequest()函数加上一些逻辑,用来找出浏览器请求的URL路径: var http = require("http"); var url =

spring-cloud-gateway

十年热恋 提交于 2020-01-10 00:10:21
Spring 官方最终还是按捺不住推出了自己的网关组件:Spring Cloud Gateway ,相比之前我们使用的 Zuul(1.x) 它有哪些优势呢?Zuul(1.x) 基于 Servlet,使用阻塞 API,它不支持任何长连接,如 WebSockets,Spring Cloud Gateway 使用非阻塞 API,支持 WebSockets,支持限流等新特性。 Spring Cloud Gateway Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。 Spring Cloud Gateway 作为 Spring Cloud 生态系统中的网关,目标是替代 Netflix Zuul,其不仅提供统一的路由方式,并且基于 Filter 链的方式提供了网关基本的功能,例如:安全,监控/指标,和限流。 相关概念: Route(路由):这是网关的基本构建块。它由一个 ID,一个目标 URI,一组断言和一组过滤器定义。如果断言为真,则路由匹配。 Predicate(断言):这是一个 Java 8 的 Predicate。输入类型是一个

局域网内和局域网间的通信(交换机和路由器)

血红的双手。 提交于 2020-01-09 23:18:49
1、交换机和路由器区别 交换机主要是用于组建局域网,而路由器则是负责让主机连接外网。 2、局域网间通信 例子1: 1. PC1与PC2通信时,在PC1电脑中,应用层产生数据交给传输层;传输层进行数据的分段,使数据的大小适合在网络上传递,根据应用层不同软件产生的数据,选择不同协议栈进行封装TCP或UDP,再进行不同服务端口号的封装(例:WWW 80 ,FTP 21),再传递给网络层;网络层在数据包头部进行封装源IP、目的IP,根据上层协议栈标识不同协议号,当IP包头封装TCP时协议号为6、UDP协议号为17,用来标识上层使用的协议,继续传递给数据链路层; 数据链路层在数据包头部进行帧的封装,封装源MAC、目的MAC,由于不知道目的MAC地址,会进行ARP的广播包,封装一个全F的类型字段为0X0806广播包,交付给物理层,物理层转换成电信号(bit流),发送到交换机; 2. 交换机接收后发现为ARP的广播包,进行其解封学习到PC1的MAC地址,继续封装并除接受端口以外的端口再次进行ARP的广播; 3. 路由器收到交换机发来的ARP广播,进行解封,查看到数据包中的类型字段为0X0806即ARP的广播包,进行回复,源MAC为路由(网关)的MAC,目的MAC为PC1的MAC,类型字段为0X0806,经过物理层将数据转换为电信号(bit流)发送给交换机; 4. 交换机收到后进行解封

如何评测一个软件工程师的计算机网络知识水平与网络编程技能水平?

旧巷老猫 提交于 2020-01-09 22:33:23
一、软件工程师必备的能力素质 一、具有良好的编程能力和算法基础。编程能力直接决定了项目开发的效率,软件工程师至少精通一门编程语言,熟悉基本语法、技术特点和API。 二、运用数据库和正则表达式的能力。正则表达式和数据库语言犹如两把利刃,两者结合、灵活运用可以减少代码编写量。 三、具有软件工程的概念。从项目需求分析开始到安装调试完毕,软件工程师必须清楚地理解和把握这些过程,并能胜任各种环节的具体工作。 四、培养对行业的认知。软件工程师要就市场论技术,强调面向对象的分析与设计能力。 五、软实力。除去专业技能,还要有一定的沟通交流能力、团队合作能力、学习能力,尤其是需要较强的英语阅读和写作能力。程序世界的主导语言是英文,编写程序开发文档和开发工具帮助文件离不开英文,了解业界的最新动向、阅读技术文章离不开英文,与编程高手交流、发布帮助请求同样离不开英文。 二、Linux下网络协议栈分析 应用层 应用层的各种网络应用程序基本上都是通过 Linux Socket 编程接口来和内核空间的网络协议栈通信的。Linux Socket 是从 BSD Socket 发展而来的,它是 Linux 操作系统的重要组成部分之一,它是网络应用程序的基础。从层次上来说,它位于应用层,是操作系统为应用程序员提供的 API,通过它,应用程序可以访问传输层协议。 socket 位于传输层协议之上

如何评测一个软件工程师的计算机网络知识水平与网络编程技能水平?

拜拜、爱过 提交于 2020-01-09 22:29:45
如何评测一个软件工程师的计算机网络知识水平与网络编程技能水平? 试题节选自历年计算机考研真题 一.选择题 1.在 OSI 参考模型中,自下而上第一个提供端到端服务的层次是___B___。 A.数据链路层 B.传输层 C.会话层 D.应用层 解析:考查 OSI 模型中传输层的功能。 传输层提供应用进程间的逻辑通信,即端到端的通信。而网络层提供点到点的逻辑通信。因此选 B。 2.数据链路层采用后退 N 帧(GBN)协议,发送方已经发送了编号为 0~7 的帧。当计时器超时时,若发送方 只收到 0、2、3 号帧的确认,则发送方需要重发的帧数是__C____。 A.2 B.3 C.4 D.5 解析:考查后退 N 帧协议的工作原理。 在后退 N 帧协议中,发送方可以连续发送若干个数据帧,如果收到接收方的确认帧则可以继续发送。 若某个帧出错,接收方只是简单的丢弃该帧及其后所有的后续帧,发送方超时后需重传该数据帧及其后 续的所有数据帧。这里要注意,连续 ARQ 协议中,接收方一般采用累积确认的方式,即接收方对按序到 达的最后一个分组发送确认,因此题目中收到 3 的确认帧就代表编号为 0、1、2、3 的帧已接收,而此时 发送方未收到 1 号帧的确认只能代表确认帧在返回的过程中丢失了,而不代表 1 号帧未到达接收方。因 此需要重传的帧为编号是 4、5、6、7 的帧。 3.主机甲与主机乙之间已建立一个