一、计算机网络基础
1. 网络组成部分
(1)主机:客户端和服务端
(2)路由器
(3)网络协议
2. 协议
定义:在两个或多个通信实体之间交换的报文格式和顺序,以及报文发送和/或接受一条报文或其他事件所采取的动作。
3. 网络分层
(1)链路层-本地帧头部、IP协议头部
负责将IP数据报封装成合适在物理网络上传输的帧格式并传输,或将从物理网络接收到的帧解封,取出IP数据报交给网络层。
(2)运输层-TCP协议头部
负责为信源和信宿提供应用程序进程间的数据传输服务,这一层上主要定义了两个传输协议,传输控制协议即TCP和用户数据报协议UDP
(3)应用层-HTTP协议头部
支持网络应用应用协议仅仅是网络应用的一个组成部分,运行在不同主机上的进程则使用应用层协议进行通信。
(4)物理层
负责将比特流在结点间传输,即负责物理传输。该层的协议既与链路有关也与传输介质有关。
二、Web应用
1.http
(1)http1:无法多路复用
(2)http 2
前三个字节:表示帧的长度,第四个字节表示类型,第五个字节表示类型对应的flags,第六到第九字节,第一位:保留位,第二位2到32位流的id,之后的位数表示载荷。
优势:
调整响应传输的优先级
头部压缩
Server Push
(3)http 3:QUIC
Quick UDP Internet Connection
现存网络设备对TCP和UDP支持已经僵化UDP不靠谱但是QUIC靠谱
QUIC可以为除HTTP协议以外的应用层协议提供支持
2.CDN (DNS劫持)
(1)域名解析─般由网站自己处理
(2)要加速的域名则重定向到CDN厂商的域名解析服务处理.CDN厂商根据来源确定最近的CDN服务器的IP
(3)用户直接访问最近的CDN服务器
3.WebSocket
(1)定义:一种在单个TCP连接上进行全双工通信的协议。
(2)特点:
·有状态的持久连接
·服务端可以主动推送消息
·用WebSocket发送消息延迟比HTTP低
三、网络安全
1. 网络安全三要素
机密性:攻击者无法获知通信内容
完整性:攻击者对内容进行篡改时能被发现
身份验证:攻击者无法伪装成通信双方的任意一方与另一方通信
2. 对称加密和非对称加密
(1)对称加密:对称加密加密和解密使用同一个密钥
(2)非对称加密:非对称加密加密和解密所使用的不是同一个密钥(公钥和私钥),需要两个密钥来进行加密和解密,而且公钥加密只能用私钥解密、私钥加密只能用公钥解密。(注意:数字签名和数字鉴别只能使用非对称加密)
3.密码散列函数(哈希函数)
(1)定义:密码散列函数是散列函数的一种。它被认为是一种单向函数,也就是说极其难以由散列函数输出的结果,回推输入的数据是什么。 (2)特点: 单向性:一个散列值,无法通过计算得出输入值,只能从输入计算得出散列值,不能根据散列值计算输入值。 不可伪造:即便固定长度的散列值被截获,截获的人无法伪造出一个对应的输入值(明文或发送数据)
3. 实现身份验证和完整性
(1)完整性
实现:
(2)身份验证
数字签名:对明文内容的哈希值使用私钥加密,验证者使用公钥验证
数字签名(指纹)=私钥加密(密码散列函数(原文))
消息=原文+数字签名
一般用于对公开内容(如包含公钥的证书)进行数字签名,防止篡改。
总结
本篇对网络基础和网络安全进行大概的描述,主要方便大家去了解网络的结构和组成,对网络安全的身份验证有一个认识,对网络有一个整体的认识,其实真正的网络层次结构是非常的复杂的,对大家的日常开发只需要去了解就行,希望这篇文章对你们有所帮助。