概述
物理层
链路层
概述
封装成帧:帧 是链路层数据基本单位,首尾加上标记用以识别
透明传输
差错检验
差错检测
奇偶校验码
循环冗余校验码 CRC
MTU 最大传输单元
以太网协议
MAC 地址:每一个设备都拥有唯一的 MAC 地址
以太网协议:结合 MAC,进行 相邻设备 数据传输
以太网的作用
以太网协议
这个目的地址/源地 址就是:发送设备 和 接收设备 的 mac 地址。
6代表的是:mac地 址48bit,对应6个字节 ,一个字节8bit.
路由器怎么判断发给 B 还是 C?结合:路由器 mac 地址表.
路由器不知道目标设备接口怎么办?通过广播手机信息
网络层
IP协议
虚拟互联网络:理解 IP 的基础
IP 和 MAC 的对比,IP 的特点
两者都是网络设备的唯一性标志:
( 1)MAC是链路层的,ip是网络层的;
( 2)MAC和设备绑定,永久不变!
ip可能会随着网络环境的改变而改变!
IP 数据报格式
IP 协议转发流程(IP 协议工作过程)
转发中的 “逐跳”
路由表介绍
IP协议转发流程
ARP 协议 & RARP 协议
ARP 协议:IP —-> MAC
RARP 协议:IP <—- MAC
IP 地址子网划分
IP 地址特点
分类的 IP 地址
子网划分方式
子网掩码
无分类编址 CIDR
网络地址转换 NAT 技术
ICMP协议
应用:Ping
应用:Traceroute
网络层路由
内部网关路由协议:RIP
Dijkstra (迪杰斯特拉)算法
内部网关路由协议:OSPF
内部网关路由协议:BGP
传输层
传输层简介
传输层是 用户层面的最底层.
面向通信的最高层.
传输层是 端 对 端 的通信.
网路层:虚拟的网络.
传输层:进程与进程间的通信.
进程通过port来识别一个进程.
port 0~65535,占 16 比特位.
UDP
1 UDP 是什么?
用户数据报协议(User Datagram Protocol)。
学习 UDP 协议数据所在的位置:IP 数据报中。
什么是数据报:业务层传过来的完整数据。
UDP不对数据进行其他处理,直接封装。所以UDP长度由data长度决定.
2 UDP 协议格式
图中,这四部分组成 UDP 数据报的 首部.
端口号:作为进程互相识别的标志.
校验和:依旧用来检测传输过程是或否有错.
3 UDP 协议特点
无连接(不理解)
不可靠(无太多保护机制)
面向报文(TCP就不面向报文)
无拥塞控制
首部开销小(共 16 * 4 = 64 bit,即 8 byte)
TCP
一、TCP协议详解
1. 是什么
Transmission Control Protocal 传输控制协议
同样位于 IP 数据报
2. 特点
面向连接(UDP是面向报文。?怎么感觉和下面有点矛盾???)
点对点通信
可靠(UDP不可靠)
可以全双工通信
面向字节流:字节流,也是字节序列,TCP会把数据拆成一段一段的字节流
字节流和数据报什么区别?
字节流是流入进程或者流出进程的字节序列;
传输层的数据由业务层传递下来,一块一块的;但是TCP这里不把它当作完 整的数据,而是“按照字节处理”,所以TCP会取出数据的一部分传输,剩下的 由下一段TCP传输
==> TCP可能对数据进行 合并 或者 分拆,便于更好的传输!
3. TCP 协议格式
(1)序号 + 确认号(各32位)
配合确定 分段的字节流.(之前提到TCP会把数据分段)
(2)数据偏移
协议存在 可选的TCP选项(不定长),所以需要专门记录 真正的数据相对报文起始的偏移.
(3)TCP标记
URG = 1时,启动 紧急指针(协议中的).
(4)窗口
(5)紧急指针
(6)可选项
二、可靠传输
可靠传输 基本原理:停止等待协议
1 是什么?
乙方发送后,一直等待另一方的确认.
2 有什么差错?
没发出 + 没收到 + 超时
==> 启动 “超时重传”
3 怎么判断超时?
利用“超时定时器”。每发送一次,就设置一个。
(4大定时器之一)
4 评价
可靠:利用 “超时重传”.
抵消:需要 “等待”.
可靠传输 基本原理:连续 ARQ 协议
在连续等待基础上完善,不再单个发送,而是批量传输.
实现方式:滑动窗口 + 累计确认.
TCP 协议的可靠传输
基于ARQ
滑动窗口以“字节”为单位.
如果确认发送了,窗口后移.
如果出现不连续的发送失败信息,那就“选择重传”!
信息放入 TCP头部的可选部分 !
三、流量控制
1 目的:发送方发送速率别太快了.
2 手段:ARQ的核心——滑动窗口 来控制!
3 通过窗口大小,控制发送速率.
处理不了这么多数据时,应当告诉发送方 rwnd = 0,即:“别发了”.
4 发送方一直等待 rwnd 恢复.
接收方转移至等待发送方发数据.
==> 窗口扩大的命令发送失败时,造成 死锁!
==> 使用 “坚持定时器”
四、拥塞控制
1 何时?
网络需求 > 可用资源.
2 特点
流量控制:点对点 通信量的控制.
拥塞控制:整个网络,全局性的.
==> 因此,难以完全解决.
3 两个可用算法
慢启动 + 拥塞避免
五、TCP 三次握手
1 TCP 标记
2 三次握手流程
3 为什么3次?2次不行吗?
为了防止 已失效的连接请求报文 传递给对方,从而引发错误.
什么是 “已失效的连接请求报文” ?
因为一些原因,先发的请求发慢了,反而重发的先被接收,先发的就失效了.
六、TCP 四次挥手
1 过程
① FIN = 1,发送方 —-> 接收方:发送方表示你该断开了.
② ACK = 1,接收方 —->发送方:接收方表示我知道要断开了,但是我数据还没发完,再等等.
③ FIN = 1,接收方 —->发送方:接收方表示我数据发完了,断开吧.
④ ACK = 1,发送方 —-> 接收方:发送方表示我现在就断开.
2 关于第二次挥手和第三次挥手,以及之间的那段
第二次挥手完,接收方进入“关闭等待”,但是接收方还可发 数据!
因为 [发送方提出的释放连接],只是代表发送方完成了发送! 但是 [接收方还不一定完成] 对所有发送方请求的回复。
因此,接收 方只能说是“知道需要关闭了”,现继续处理自己的请求。
当接收方处理完自己所有请求后,就会发起 第三次挥手!
==> 第二次挥手,接收方说:“我知道要释放了”.
第三次挥手,接收方说:“我能够释放了”.
3 等待计时器
释放发起方,在第四次挥手时右“等待计时器”.
等待计时器之后,才进入关闭状态!
4 MSL
什么是MSL:最长报文段寿命,一般为 2min.
有什么用?
功能1:第四次挥手失效时,接收方时间超过 2MSL 还没发送方返回的信息时,
==> 接收方重发第三次,等待第四次回收
功能2:确保当前连接所有报文过期.
应用层
DNS 详解
什么是DNS?DNS有什么用?
1 什么是DNS ?
域:网络段.
名:IP对应的名.
2 DNS的作用
我们通过 IP+Port 指定服务.。但是这里就有一个问题: 当我所需的服务很多时,且没有什么规律,我怎么记录这些 IP 和 端口?
==> DNS域名系统.
域名详解
域名由点、字母和数字组成 。
点分割不同的域 。
域名可以分为顶级域、二级域、三级域。顶级域一般是国际通用的.,我们一般都是分到三级域。
域名服务器
DHCP 协议详解
DHCP 是什么?
我们拿着手机,笔记本经常移动,但是我们好像从来没有去更改过ip地址?
==> DHCP帮我们KO了.
不同的设备使用了DHCP以后,不 需要自己配置 ip 地址了。
DHCP 的作用?
刚接入的设备,是怎么得到自己的IP地址的呢?
HTTP 协议详解
HTTP 工作结构
HTTPS 协议详解
为什么需要HTTPS?
HTTP是明文传输的,需要对安全提出更高的要求。
HTTPS 协议格式?
加密模式
1 对称加密 / 非对称加密
了解 https 如何工作以前,先对加密模式有个简单的认识.
==>【对称加密】【非对称加密】
对称加密: 密钥 加密 和 解密 用的“密钥”是 一致.
非对称加密: 加密 和 解密 的“密钥” 不一致.
2 加密过程简介
了解一下加密过程,这里我们假设:A是加密用的,B是解密用的.
① 假如这里,密钥老师自己自己保存,公钥老师发给大家。
② 此时同学想给老师发加密信息,那么就是用公钥加密,形成密文.
③ 老师收到密钥,使用私钥解锁,得到数据.
(注意,使用公钥加密了,就不能使用公钥解密.)
数字证书
可信任组织:针对“客户端和服务端”来说的 ,双方都认为它安全时,才是可信任的。
特定对象:既可以是人,也可 以是服务器,还可以是组织.
如果是[服务]的对象名称, 那就必须包含域名和对象的公开密钥 .
==> 证书中,有公开密钥!
SSL
1 什么是 SSL?
这俩说的就是:
数据不泄露;
传输的时候不被篡改.
应用层的数据经过 SSL 的话,给传输层的就是加密的数据.
(了解了这个就可以进一步学习https的过程)
2 SSL握手过程
第 1 步:
客户端生成 随机数1 ,联通 协议版本 和 加密算法 ,明文 发送给服务端.
第 2 步:服务端进行回应。
生成 随机数2,确认加密算法,提供数字证书(证书中有公钥).
经过这一步就可以确定加密算法了. 密钥扔未确定,数字证书发回了客户端
(第二步结束,CS 双方也都收到了这两个随机数)
第 3 步:
确认证书是否有效 ;生成 随机数3 ;使用服务器的公钥加密随机数3。
( 这里的 公钥 取自服务端返回的 数字证书. )
( 完成上面3步,客户端把数据返回服务端.。至此,CS 双方都有了3个随机数.)
第 4 步:
根据 随机数 1、2、3 和 相同的算法 生成 对称秘钥 .
双方使用 对称秘钥 进行加密通信。
随机数 123 在 第3步 双端确认. 算法在 第2步 双方确认.
==> 密钥分别生成,没有经过传输,保证了安全性.
小结:
https 同时用到了之前提到的 “两种加密方式” 以及 “数字证书”。
==> 确认 随机数123 阶段 就是 非对称的;
生成密钥 段是 对称的.