Network
计算机网络协议详解
传输媒体
- 导引型传输媒体:同轴电缆、双绞线、光纤、电力线
- 非引导型:无线电波、微波、红外线、可见光
透明传输:数据链路层对上层交付的传输数据没有任何的限制,即无论上层数据是什么都不会影响传输,就好像数据链路层不存在一样。
- 面向字节的物理链路使用字节填充的方法实现
透明传输
- 面向比特的物理链路使用比特填充的方法实现
透明传输
数据链路层
误码是不可避免的,但是如果能保证发送方发送什么,接收方就能收到什么,就称为可靠传输。
封装成帧、差错检测、可靠传输是数据链路层中最重要的问题
- 封装成帧:数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧
- 差错检测:
- 奇偶校验:在待发送数据后面添加一位奇偶校验位,使整个数据(包括所添加的校验位在内)中“1”的个数为奇数(奇校验)或偶数(偶校验)。
- 循环冗余校验(
CRC
)
循环冗余校验具有很好的检错能力,虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用鱼数据链路层。在计算机网络中通常采用检错重传方式来纠正传输中的差错,或者仅仅丢弃检测到差错的帧
可靠传输的基本概念
- 一般情况下,有线链路的误码率比较低,为了减小开销,一般不要求向上层提供可靠传输服务。如果出现了误码,可靠传输的问题由上层处理。
- 无线链路容易收到干扰,误码率比较高,因此要求数据链路层必须向上提供可靠传输服务。
- 可靠传输的概念不仅局限于数据链路层,其他各层均可选择可靠传输,但是可靠传输的实现比较复杂,开销也比较大,是否使用可靠传输取决于应用需求。
- TCP向其上提供面向连接的可靠传输服务,UDP向其上提供无连接、不可靠传输服务,IP向其上层提供无连接、不可靠传输服务,802.11无线局域网要求数据链路层实现可靠传输,以太网不要求数据链路层实现可靠传输。
可靠传输实现的基本原理
- 停止等待协议SW
问题:
点对点协议(PPP)
点对点协议是目前使用最广泛的点对点数据链路层协议。主要由以下三部分组成
- 对各种协议数据报的封装方法(封装成帧)
- 链路控制协议LCP 用于建立、配置以及测试数据链路层的连接
- 一套网络控制协议NCPs 其中的每一个协议支持不同的网络层协议。
网络层
实现网络互连
- 网络层寻址问题
- 路由选择问题
IPv4
- 分类编址:IPv4被分为A B C三类
- 划分子网:将IPv4地址的网络号和子网号所占位置用比特1表示,剩余用比特0表示,将IPv4地址与其子网掩码进行逻辑与运算即可得到IPv4所在的子网的网络位置
- 无分类编址(CIDR):
CIDR采用“斜线记法
”,或称CIDR记法,即在IPv4地址后面加上一个斜线“/”,在斜线后面写上网络前缀所占的比特数量
《极客时间》 透视http协议学习笔记
HTTP/1.0是一份参考文档
,并不具有实际的约束力,相当于一个备忘录
- 增加了 HEAD、POST 等新方法;
- 增加了响应状态码,标记可能的错误原因;
- 引入了协议版本号概念;
- 引入了 HTTP Header(头部)的概念,让 HTTP 处理请求和响应更加灵活;
- 传输的数据不再仅限于文本。
HTTP/1.1是对HTTP/1.0的小幅度修正,是一个真正的标准,而不是可有可无的参考文档。
- 增加了 PUT、DELETE 等新的方法;
- 增加了缓存管理和控制;
- 明确了连接管理,允许持久连接;
- 允许响应数据分块(chunked),利于传输大文件;
- 强制要求 Host 头,让互联网主机托管成为可能。
HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范”
HTTP
1、如何理解HTTP是无状态的
无状态是指每一次的HTTP请求都是独立的,互相之间没有关联,这次的HTTP请求不会影响到下一次,服务器不会记住你是谁。
HTTPS流程
SSL/TLS+HTTP
公私钥->数字证书->加密->非对称加密->对称加密
- 客户端发起HTTPS请求,连接到服务器的443端口
- 服务器要有一套数字证书(包括公钥、证书颁发日期、失效日期等)
- 服务器将自己的数字证书发给客户端(公钥在证书里面,私钥自己保存)
- 客户端收到证书之后会检查证书合法性,如果证书验证通过,会生成一个随机秘钥。
- 客户端用服务器发送的公钥将这串随机秘钥加密,发回给服务端
- 服务端利用自己的私钥进行非对称解密,得到这串秘钥
- 之后客户端服务端通信都采用这串秘钥进行对称加密解密
协议分层
HTTP2和HTTP1.1区别
- 二进制
- 多路复用
- 头部压缩
- 服务端推送