计算机网络 | 第三章 数据链路层
1. 基本概念
2. 封装成帧与透明传输
封装成帧就是加将数据加头加尾,相当于将数据打包
透明传输就是为了防止特殊的数据无法正常传输的的情况的发生,比如说在封装成帧的过程中出现数据中的某些标记符与开始/结束标记符恰巧重复等等情况
2.1 透明传输的应用
2.1.1 字符计数法
就是在帧的首部做计数,看看数据是否错误
缺点:如果在某一个帧内,标记位后面的某个字节的数据丢失,那么会影响后面的帧
比如3 1 1 和 4 2 2 2,如果前面的帧丢失变成 3 1,那么后面的4就会被补到前面变成 3 1 4导致错误
2.1.2 字符填充法
就是加头加尾分别标记开始结束,和零比特填充法(见下)对比,开始和结束的对应的字符不一样
但有可能出现数据内某段比特流数据正好与标记字段重复,从而导致误判断的情况
解决方法:添加转义字符
2.1.3 零比特填充法
2.1.4 违规编码法
因为曼彻斯特编码不使用高-高,低-低来表示,所以如果使用高-高,低-低来表示帧起始和终止就不会与数据冲突
3. 差错控制
3.1 差错是什么,从哪来的
数据链路层的差错检测的是比特的错误
3.2 为什么要在数据链 ...
计算机网络 | 第二章 物理层
1. 基本概念
2. 数据通信基本知识
2.1 一个数据通信例子
2.2 相关术语
2.3 三种通讯方式
名称
英文
定义
需要信道条数
单工通信
Simplex
只能一个发一个收
一条
半双工通信
half-duplex
都可以发或者收,但是同一时间只能进行一个
两条
全双工通信
duplex
都可以同时收发数据
两条
2.4 两种数据传输方式
传输方式
特点
串行传输
速度慢,省钱,适合远距离
并行传输
速度快,耗钱,适合近距离
2.5 码元(Symbol)
定义:码元是指用一个固定时长的信号波形(数字脉冲),代表离散数值的基本波形。当有多个离散状态时,成为M进制码元
一个码元可以携带多个比特的信息
个人理解:码元就是在网线上传输的一个个信号段。码元的不同进制就是用来表示不同的数值的
2.6 波特(Baud)
用来指一秒可以传输多少个码元
2.7 速率
分为码元传输速率和信息传输速率
信息传输速率就是b/s,就是我们平常说的网速
码元可以理解为几个比特的集合,所以信息传输速率(网速)=码元传输速率x码元所带信息量(多少比特 ...
计算机网络 | 第一章 概述
计算机网络概念
计算机网络是互连的、自治的计算机集合。
第一章 概念、组成、功能和分类
计算机网络的功能
1. 数据通信
连通性
2. 资源共享
硬件、软件、数据
3. 分布式处理
多台计算机各自承担统一工作任务的不同部分
4. 提高可靠性
替代机
5.负载均衡
计算机网路的组成
1. 组成部分
硬件
软件
协议
2. 工作方式
边缘部分
用户直接使用,例如主机、服务器,有C/S P2P方式
核心部分
为边缘部分服务,路由器、交换机、网络等。
3. 功能组成
通信子网
各种传输介质、通信设备、相应的网络协议组成,集线器、中继器(物理层),交换机、网桥(数据链路层),和路由器(网络层)组成,实现数据通信
资源子网
实现资源共享功能 的设备和软件的集合,主要是会话层、表示层和应用层。
计算机网络的分类
1.按分布范围分类
广域网WAN
交换技术
城域网MAN
局域网LAN
广播技术
个人区域网PAN
2. 按使用者分类
公用网
供应商提供公用网络,例如中国电信、联通、移动。
专用网
例如军事专用网,政府专用网。
...
React进阶 服务端渲染 Next | 学习笔记
Next简介
Next.js 是一个轻量级的 React 服务端渲染应用框架。有了它我们可以简单轻松的实现React的服务端渲染,从而加快首屏打开速度,也可以作SEO(收索引擎优化了)。在没有Next.js的时候,用React开发需要配置很多繁琐的参数,如Webpack配置,Router配置和服务器端配置等…。如果需要作SEO,要考虑的事情就更多了,怎么样服务端渲染和客户端渲染保持一致就是一件非常麻烦的事情,需要引入很多第三方库。但有了Next.js,这些问题都解决了,使开发人员可以将精力放在业务逻辑上,从繁琐的配置中解放出来。
Next.js简介和创建项目
Next.js 是一个轻量级的 React 服务端渲染应用框架。
用一个框架,就要知道它的优点(或者是解决了我们什么问题):
完善的React项目架构,搭建轻松。比如:Webpack配置,服务器启动,路由配置,缓存能力,这些在它内部已经完善的为我们搭建完成了。
自带数据同步策略,解决服务端渲染最大难点。把服务端渲染好的数据,拿到客户端重用,这个在没有框架的时候,是非常复杂和困难的。有了Next.js,它为我们提供了非常好的解 ...
Less 预处理器 | 学习笔记
Less
Less
Less是一种动态样式语言,属于CSS预处理器的范畴,它扩展了CSS语言,增加了变量、Mixin、函数等特性,使CSS更易维护和扩展
Less即可以在客户端上运行,也可以借助Node.js在服务端运行。
Less中文官网:http://lesscss.cn
bootstrap中的Less教程:http://www.bootcss.com/lesscss/
Less编译工具
koala官网:www.koala-app.com
Less中的注释
以//开头的注释,不会被编译到CSS文件中(给开发者看)
以/**/包裹的注释会被编译到CSS文件中(给用户看)
Less中的变量
用@来声明一个变量 : @pink:pink; @selector:#wrap
作为普通属性值来使用:直接使用@pink
作为选择器和属性名:@{selector}的形式
作为URL:@{url}
变量的延迟加载
块级作用域
先加载所有变量再给属性、属性名、选择器等赋值
Less中的嵌套规则
基本的嵌套规则
&的使用
使用&表示与父代码块同级(伪类 例如 ...
React进阶 React Hooks | 学习笔记
React Hooks
useState
useState是react自带的一个hook函数,它的作用是用来声明状态变量。
那我们从三个方面来看useState的用法,分别是声明、读取、使用(修改)。这三个方面掌握了,你基本也就会使用useState了.
先来看一下声明的方式,上节课的代码如下:
const [ count , setCount ] = useState(0);
这种方法是ES6语法中的数组解构,这样看起来代码变的简单易懂。现在ES6的语法已经在工作中频繁使用,所以如果你对ES6的语法还不熟悉,我觉的有必要拿出2天时间学习一下。 如果不写成数组解构,上边的语法要写成下面的三行:
let _useState = useState(0)let count = _useState[0]let setCount = _useState[1]
useState这个函数接收的参数是状态的初始值(Initial state),它返回一个数组,这个数组的第0位是当前的状态值,第1位是可以改变状态值的方法函数。 所以上面的代码的意思就是声明了一个状态变量为count,并把 ...
React进阶 状态管理 Redux| 学习笔记
Redux
JavaScript提供的一个可预测性(给一个固定的输入 必定等到一个结果)的状态容器
集中地管理react中多个组件的状态
redux是一个专门的状态管理库 (在vue中也可以使用 但是在react中会比较多)
需求场景:
1、某个组建的状态需要共享的时候
2、一个组件需要改变另一个组件状态的时候
3、组件中的状态需要在任何地方都可以拿到
三大原则:
1、单一数据源 整个react中的状态都会被统一管理到store
2、state是只读的 我们不能直接改变state 而是要通过触发redux中特定的方法进行修改
3、使用纯函数来执行修改操作:action来改变redux中的state
构建store
在src目录下建立store文件夹包含
Store.js
Reducer.js
Action.js
Store.js(使用redux-devtools中间件)
引入reducer
import {createStore} from "redux";import reducer from "./ ...
Git 版本控制工具 | 学习笔记
Git版本控制工具
各类版本控制工具
集中式(svn):
svn因为每次存的都是差异 需要的磁盘空间会相对小一点 可是回滚速度会很慢
优点:
代码存放在单一的服务器上便于项目的管理
缺点:
服务器宕机:员工写的代码无法实时更新到服务器得不到保障
服务器炸了:整个项目的历史记录都会丢失
分布式(git):
git每次存的都是项目的完整快照 需要的是硬盘空间会相对大一点
(Git团队对代码做了极致的压缩 最终需要的实际空间比svn大不了多少 可是Git的回滚速度极快)
基本控制命令
git --version查看当前git版本 git config --gobal user.name "自定义名称" git config --gobal user.email "自定义邮箱" git config --list 检查基础配置信息# gobal代表本用户可替换为system(本操作系统)或者不填(本项目)# 优先级 本项目>本用户>本操作系统
区域:
工作区:本地代码目录
暂存区:暂时存放 ...
Vue进阶 状态管理 Vuex
Vuex 状态管理
Vuex 是实现组件全局状态(数据)管理的一种机制,可以方便的实现组件之间数据的共享。
使用 Vuex 统一管理状态的好处
能够在 vuex 中集中管理共享的数据,易于开发和后期维护
能够高效地实现组件之间的数据共享,提高开发效率
存储在 vuex 中的数据都是响应式的,能够实时保持数据与页面的同步
基本使用
安装 vuex 依赖包
npm install vuex --save
导入 vuex 包
import Vuex from 'vuex'
Vue.use(Vuex)
创建 store 对象
const store = new Vuex.Store({ // state 中存放的就是全局共享的数据 state: { count: 0 }})
将 store 对象挂载到 vue 实例中
new Vue({ el: '#app', render: h => h(app), router, // 将创建的共享数据对象,挂载到 Vue 实例中 // 所有的组件,就可以 ...
摄影 | 春风十里
机身:SONY A7M2
镜头:SOMY 24-70GM
出镜:云歌
地点:南山创意园
点击可看大图