概述

物理层

链路层

概述

封装成帧:帧 是链路层数据基本单位,首尾加上标记用以识别

image.png

image.png

image.png

透明传输

差错检验

差错检测

奇偶校验码

循环冗余校验码 CRC

MTU 最大传输单元

image.png

image.png

image.png

以太网协议

MAC 地址:每一个设备都拥有唯一的 MAC 地址

image.png

image.png

以太网协议:结合 MAC,进行 相邻设备 数据传输

以太网的作用

image.png

以太网协议

这个目的地址/源地 址就是:发送设备 和 接收设备 的 mac 地址
6代表的是:mac地 址48bit,对应6个字节 ,一个字节8bit.

image.png

image.png

路由器怎么判断发给 B 还是 C?结合:路由器 mac 地址表.

image.png

路由器不知道目标设备接口怎么办?通过广播手机信息

image.png

image.png

网络层

IP协议

虚拟互联网络:理解 IP 的基础

image.png

image.png

IP 和 MAC 的对比,IP 的特点

两者都是网络设备的唯一性标志:
( 1)MAC是链路层的,ip是网络层的;
( 2)MAC和设备绑定,永久不变!
ip可能会随着网络环境的改变而改变!

image.png

image.png

IP 数据报格式

image.png

image.png
image.png

image.png

image.png
image.png

image.png
image.png

image.png

image.png

image.png

IP 协议转发流程(IP 协议工作过程)

转发中的 “逐跳”

image.png

image.png
image.png

image.png

路由表介绍

image.png

image.png

IP协议转发流程

image.png

image.png

image.png

image.png

image.png

image.png

image.png

ARP 协议 & RARP 协议

image.png
image.png
image.png

ARP 协议:IP —-> MAC

image.png

image.png

image.png

image.png

RARP 协议:IP <—- MAC

image.png

IP 地址子网划分

IP 地址特点

分类的 IP 地址

子网划分方式

子网掩码

无分类编址 CIDR

网络地址转换 NAT 技术

image.png

image.pngimage.png

image.png

image.png

image.png

image.png

image.png
image.png

image.png

ICMP协议

image.png

image.png

image.png
image.png

image.png

image.png

image.png

应用:Ping

image.png
image.png

应用:Traceroute

image.png

image.png

image.png

image.png

网络层路由

image.png
image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

内部网关路由协议:RIP

Dijkstra (迪杰斯特拉)算法

内部网关路由协议:OSPF

内部网关路由协议:BGP

传输层

传输层简介

传输层是 用户层面的最底层.
面向通信的最高层.
传输层是 端 对 端 的通信.

网路层:虚拟的网络.
传输层:进程与进程间的通信.
进程通过port来识别一个进程.
port 0~65535,占 16 比特位.

image.png

UDP

1 UDP 是什么?

用户数据报协议(User Datagram Protocol)

学习 UDP 协议数据所在的位置:IP 数据报中
什么是数据报:业务层传过来的完整数据
UDP不对数据进行其他处理,直接封装。所以UDP长度由data长度决定.

image.png

2 UDP 协议格式

图中,这四部分组成 UDP 数据报的 首部.
端口号:作为进程互相识别的标志.
校验和:依旧用来检测传输过程是或否有错.
image.png

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 协议格式

image.png

(1)序号 + 确认号(各32位)

配合确定 分段的字节流.(之前提到TCP会把数据分段)
image.png

image.png

(2)数据偏移

协议存在 可选的TCP选项(不定长),所以需要专门记录 真正的数据相对报文起始的偏移.

image.png

(3)TCP标记

URG = 1时,启动 紧急指针(协议中的).
image.png

(4)窗口

image.png

(5)紧急指针

image.png

(6)可选项

image.png
image.png

二、可靠传输

可靠传输 基本原理:停止等待协议

1 是什么?
乙方发送后,一直等待另一方的确认.

2 有什么差错?
没发出 + 没收到 + 超时
==> 启动 “超时重传

3 怎么判断超时?
利用“超时定时器”。每发送一次,就设置一个。
(4大定时器之一)

4 评价
可靠:利用 “超时重传”.
抵消:需要 “等待”.

可靠传输 基本原理:连续 ARQ 协议

在连续等待基础上完善,不再单个发送,而是批量传输.

实现方式:滑动窗口 + 累计确认.

image.png

TCP 协议的可靠传输

基于ARQ
滑动窗口以“字节”为单位.

如果确认发送了,窗口后移.
如果出现不连续发送失败信息,那就“选择重传”!
信息放入 TCP头部的可选部分

image.png

三、流量控制

1 目的:发送方发送速率别太快了.
2 手段:ARQ的核心——滑动窗口 来控制!

3 通过窗口大小,控制发送速率.
处理不了这么多数据时,应当告诉发送方 rwnd = 0,即:“别发了”.

image.png

4 发送方一直等待 rwnd 恢复.
接收方转移至等待发送方发数据.
==> 窗口扩大的命令发送失败时,造成 死锁
==> 使用 “坚持定时器
image.png

四、拥塞控制

1 何时?
网络需求 > 可用资源.

2 特点
流量控制:点对点 通信量的控制.
拥塞控制:整个网络,全局性的.
==> 因此,难以完全解决.

3 两个可用算法
慢启动 + 拥塞避免

image.png

五、TCP 三次握手

1 TCP 标记

image.png

2 三次握手流程

image.png

3 为什么3次?2次不行吗?

为了防止 已失效的连接请求报文 传递给对方,从而引发错误.

什么是 “已失效的连接请求报文” ?
因为一些原因,先发的请求发慢了,反而重发的先被接收,先发的就失效了.

image.png

六、TCP 四次挥手

1 过程

① FIN = 1,发送方 —-> 接收方:发送方表示你该断开了.
② ACK = 1,接收方 —->发送方:接收方表示我知道要断开了,但是我数据还没发完,再等等.
③ FIN = 1,接收方 —->发送方:接收方表示我数据发完了,断开吧.
④ ACK = 1,发送方 —-> 接收方:发送方表示我现在就断开.

image.png

2 关于第二次挥手和第三次挥手,以及之间的那段

第二次挥手完,接收方进入“关闭等待”,但是接收方还可发 数据!
因为 [发送方提出的释放连接],只是代表发送方完成了发送! 但是 [接收方还不一定完成] 对所有发送方请求的回复。
因此,接收 方只能说是“知道需要关闭了”,现继续处理自己的请求。
当接收方处理完自己所有请求后,就会发起 第三次挥手!
==> 第二次挥手,接收方说:“我知道要释放了”.
第三次挥手,接收方说:“我能够释放了”.

3 等待计时器

释放发起方,在第四次挥手时右“等待计时器”.
等待计时器之后,才进入关闭状态!
image.png

4 MSL

什么是MSL:最长报文段寿命,一般为 2min.

有什么用?
功能1:第四次挥手失效时,接收方时间超过 2MSL 还没发送方返回的信息时
==> 接收方重发第三次,等待第四次回收
功能2:确保当前连接所有报文过期.

应用层

DNS 详解

基于 UDP.

什么是DNS?DNS有什么用?

1 什么是DNS ?
域:网络段.
名:IP对应的名.

image.png

2 DNS的作用
我们通过 IP+Port 指定服务.。但是这里就有一个问题: 当我所需的服务很多时,且没有什么规律,我怎么记录这些 IP 和 端口
==> DNS域名系统.
image.png

域名详解

域名由点、字母和数字组成 。
点分割不同的域 。
域名可以分为顶级域、二级域、三级域。顶级域一般是国际通用的.,我们一般都是分到三级域。

image.png

域名服务器

image.png

DHCP 协议详解

DHCP 是什么?

我们拿着手机,笔记本经常移动,但是我们好像从来没有去更改过ip地址?
==> DHCP帮我们KO了.

不同的设备使用了DHCP以后,不 需要自己配置 ip 地址了。

DHCP 的作用?

image.png

刚接入的设备,是怎么得到自己的IP地址的呢?

image.png

HTTP 协议详解

HTTP 工作结构

HTTPS 协议详解

为什么需要HTTPS?

HTTP是明文传输的,需要对安全提出更高的要求。

HTTPS 协议格式?

image.png

加密模式

1 对称加密 / 非对称加密

了解 https 如何工作以前,先对加密模式有个简单的认识.
==>【对称加密】【非对称加密】

image.png
对称加密: 密钥 加密 和 解密 用的“密钥”是 一致.
非对称加密: 加密 和 解密 的“密钥” 不一致.

2 加密过程简介

了解一下加密过程,这里我们假设:A是加密用的,B是解密用的.
① 假如这里,密钥老师自己自己保存,公钥老师发给大家
② 此时同学想给老师发加密信息,那么就是用公钥加密,形成密文.
③ 老师收到密钥,使用私钥解锁,得到数据.
(注意,使用公钥加密了,就不能使用公钥解密.)

image.png

数字证书

可信任组织:针对“客户端和服务端”来说的 ,双方都认为它安全时,才是可信任的。
特定对象:既可以是人,也可 以是服务器,还可以是组织.

image.png

如果是[服务]的对象名称, 那就必须包含域名和对象的公开密钥 .
==> 证书中,有公开密钥!

SSL

1 什么是 SSL?

这俩说的就是:
数据不泄露;
传输的时候不被篡改.
应用层的数据经过 SSL 的话,给传输层的就是加密的数据.
(了解了这个就可以进一步学习https的过程)

image.png

2 SSL握手过程

image.png

第 1 步:
客户端生成 随机数1 ,联通 协议版本加密算法明文 发送给服务端.
第 2 步:服务端进行回应。
生成 随机数2确认加密算法提供数字证书(证书中有公钥).
经过这一步就可以确定加密算法了. 密钥扔未确定,数字证书发回了客户端
(第二步结束,CS 双方也都收到了这两个随机数
第 3 步:
确认证书是否有效 ;生成 随机数3 ;使用服务器的公钥加密随机数3。
这里的 公钥 取自服务端返回的 数字证书.
( 完成上面3步,客户端把数据返回服务端.。至此,CS 双方都有了3个随机数.)
第 4 步:
根据 随机数 1、2、3相同的算法 生成 对称秘钥 .
双方使用 对称秘钥 进行加密通信。

随机数 123 在 第3步 双端确认. 算法在 第2步 双方确认.
==> 密钥分别生成,没有经过传输,保证了安全性.

小结:
https 同时用到了之前提到的 “两种加密方式” 以及 “数字证书”。
==> 确认 随机数123 阶段 就是 非对称的;
生成密钥 段是 对称的.

image.png
image.png

END