一、前言&课程介绍
1.课程目标:建立对计算机网络的整体认知,对计算机网络中的各种概念(网络分层、网络协议、网络应用等)有初步的认识。能够让大家在后续的工作中能高效解决网络上的问题。
2.课程介绍:
(1)建立对计算机网络的整体认识
(2)建立对网络协议分层的认知
(3)分析HTTP1 、 HTTP2、 HTTP3之间的关系
(4)介绍CDN运行的基本原理
(5)了解网络安全的基本准则
3.分析方法:
(1)自底向上:从简单开始,逐渐变复杂;将模块逐渐拼凑成一个系统。
(2)自顶向下:从复杂开始,逐渐变简单;从复杂的系统问题入手,拆分为模块问题。
二、计算机网络基础
1.网络结构
计算机网络定义: 是一个将分散的,具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。
计算机系统包括iSO、Android操作系统手机端、Windows、macOS操作系统电脑端;通信设备通常指的是交换机和路由器;线路是指我们的端系统与通信设备之间连接的介质,软件实现资源共享和信息传递。
2、网络的组成部分
主机:客户端和服务端。
路由器--功能:1)连接网络;2)隔离广播;3)路由选择;4)网络安全;
网络协议--定义:为了进行网络中的数据交换而建立的规则、标准或约定。
网络协议--作用:网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通信规则的集合,它定义了通信时信息必须采用的格式和这些格式的意义。
3、信息交换方式
电路交换:由于电路交换在通信之前要在通信双方之间建立一条被双方独占的物理通路(由通信双方之间的交换设备和链路逐段连接而成)。
分组交换:是以保温分组为数据交换的单位,报文携带有目标地址、源地址等信息,在交换结点采用存储转发的传输方式。
4、网络分层
(1)网络分层拓展知识
1)OSI分为以下七层,其中前三层被称为通信子网,后三层为数据子网。在传输的中间过程中(如路由器之间)只用得到通信子网这三层。前三层(物、数、网)提供点到点的通信,后四层提供端到端通信。
2)四层TCP/IP模型
-
数据链路层: 负责设备之间的数据帧的传送和识别; 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作;有以太网、令牌环网, 无线LAN等标准;交换机(Switch)工作在数据链路层。
-
网络层:负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)、路由器(Router)工作在网路层。
-
传输层: 负责两台主机之间的数据传输,如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。
-
应用层: 负责应用程序间沟,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等;我们的网络编程主要就是针对应用层。
5、网络协议
(1)TCP协议:
对数据传输提供的一个管控机制,主要体现在可靠和效率两个方面,即在保证数据可靠传输的情况下尽可能的提高效率。
由四个层次组成:分别是应用层、运输层、网络层、网络接口层。
TCP协议格式:
(2) UDP协议:
无连接的,不需要连接、不保证可靠交付、面向报文、没有拥塞控制、支持一对一,一对多。
UDP报头由4个域组成,其中每个域各占用2个字节,具体包括源端口号、目标端口号、数据包长度、校验值。
TCP协议和UDP协议的主要区别:
TCP传输数据稳定可靠,适用于对网络通讯质量要求较高的场景,需要准确无误的传输给对方,比如,传输文件,发送邮件,浏览网页等等。
UDP的优点是速度快,但是可能产生丢包,所以适用于对实时性要求较高但是对少量丢包并没有太大要求的场景。比如:域名查询,语音通话,视屏直播等。
(3)以HTTP协议为例
1)链路层--本地侦头部
2)链路层--IP协议头部
3)运输层--TCP协议头部
4)应用层--HTTP协议头部
三、Web中的网络
1、HTTP1
(1)HTTP1: 特点: 简单-- HTTP 基本的报文格式就是 header + body,头部信息也是 key-value 简单文本的形式,易于理解;
灵活、易扩展-各类请求方法、URL、状态码,等每个组成都没有固定死,开发者可以自定义与扩充;
HTTP在应用层其下层可以灵活变化,应用广泛、支持跨平台。
2、HTTP2
(1)二进制分帧层
帧是数据传输的最小单位,以二进制传输代替原本的明文传输,原本的报文消息被划分为更小的数据帧
(2)HTTP2:帧带来的优点:调整响应的优先级;头部压缩;Server Push
3、HTTP3
(3)HTTP3:功能的核心是围绕着底层的QUIC协议来实现的。
1)选择UDP作为底层传输层协议
2)灵活的拥塞控制机制
3)流复用和流控
4)更好的错误处理能力、更快的握手
4.WebSocket理解
有状态的持久连接
服务端可以主动推送信息
用WedSocket发送信息延迟比HTTP低
5.CDN理解
(1)CDN拓展知识:是在现有Internet基础上增加一层新的网络架构,通过部署边缘服务器,采用负载均衡、内容分发、调度等功能,使用户可以就近访问获取所需内容,从而解决网站拥塞情况,提高用户访问响应速度。
(2)CDN服务器选择:1.要用国内的CDN服务器域名都需要备案。2.免费的CDN服务器的稳定性和加速效果都不是很行。 3.付费的CDN服务器一般都贵的要死,一些草根站长根本用不起。
(3)DNS劫持 又称域名劫持,是指通过某些手段取得某域名的解析控制权,修改此域名的解析结果,导致对该域名的访问由原IP地址转入到修改后的指定IP,其结果就是对特定的网址不能访问或访问的是假网址。
DNS原理:
第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果(域名对应的IP地址)返回。
第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。
第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
第五步:重复第四步,直到找到正确的纪录。
第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
DNS劫持方法:
1.利用DNS服务器进行DDOS攻击;
2.DNS缓存感;
3.DNS信息劫持;
4.DNS重定向;
四、网络安全
1、网络安全三要素
机密性(攻击者无法获知通信内容)、完整性(攻击者对内容进行篡改时能被发现)、身份验证(攻击者无法伪装成通信双方的任意一方与另一方通信)。
2、对称加密与非对称加密
对称加密: 加密、解密用同样的密钥。
常见的对称加密算法:DES,AES,3DES等等。
非对称加密: 加密、解密使用不同的密钥(公钥和密钥);公钥加密只能用私钥解密,私钥加密只能用公钥解密。
常见的非对称加密算法:RSA,ECC。
区别: 对称加密算法相比非对称加密算法来说,加解密的效率要高得多。但是缺陷在于对于秘钥的管理上,以及在非安全信道中通讯时,密钥交换的安全性不能保障。所以在实际的网络环境中,会将两者混合使用。
3、PKI
PKI是一种遵循标准的利用公钥加密技术为电子商务的开展提供一套安全基础平台的技术和规范。
PKI作为一组在分布式计算系统中利用公钥技术和X.509证书所提供的安全服务,企业或组织可利用相关产品建立安全域,并在其中发布密钥和证书。
PKI体系的关键技术:1.CA框架模型 2.密钥管理。
4、网络安全HTTPS
1)HTTPS是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版,即 HTTP下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。
2)HTTPS 协议的主要作用是:建立一个信息安全通道,来确保数组的传输,确保网站的真实性。
3)把HTTP的明文换成密文,再验证身份即HTTPS
4)HTTPS=HTTP+TLS** **
TLS=身份验证+加解密
身份验证靠PKI。
5)服务端身份验证靠PKI 客户端身份验证靠HTTP协议。
5、证书链
1)证书链是用于在公钥基础结构(PKI)的证书颁发机构(CA)之间建立信任关系。
2)工作原理:浏览器启动与具有CA D颁发的SSL证书的域的SSL连接。
CA D是中间CA。
因此,浏览器在已知的受信任的根CA列表中将没有D的根CA证书。
D的证书由中间CA C签名。
C的证书由中间CA B签名。
B的证书由中间CA A签名。
根CA信任中间CA A的证书。
如果根CA是已知的受信任CA,则在初始请求中提供给浏览器的SSL证书被视为有效。
3)证书链示例