计算机网络概论| 青训营笔记
整体介绍了五个章节如下:
第一章
就是介绍了本课程的课程介绍,建立对计算机网络的整体认知,对计算机网络的各种概念有初步的理解。
自底向上
- 从简单开始,逐渐变复杂
- 将模块逐步拼凑成一个系统
自顶向下
- 从复杂开始,逐渐变简单
- 从复杂的系统问题入手,拆分为模块问题
第二章
就是老师使用一个非常生动的例子 "蟹堡王帝国",从这个例子中我了解到了计算机网络大概的模式,也就是类似于那个样子。
第三章
网络的组成部分
- 主机:客户端和服务端
- 路由器
- 网络协议
介绍了电路交换 & 分组交换
网络分层
类似于发信息,各层之间并不关心里面的内容到底是什么,只是发送方一个层级一个层级向下传递,接收方一个层级一个层级向上发送。相当于打包和拆包。
协议
协议定义了在两个或者多个通信实体之间交换的报文格式和顺序,以及报文发送或者接收一条报文或者其他事件所采取的动作。
HTTP协议示例
TCP协议格式
第三章小结:
- 网络组成部分:由主机、路由器、交换机等组成
- 网络结构:网络的网络
- 信息交换方式:电路交换和分组交换
- 网络分层:分清职责,物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
- 网络协议:标头和载荷
第四章
介绍了HTTP 1 2 3的演进历史、CDN解决了HTTP协议之外的问题、WebSocket从HTTP协议升级而来
HTTP连接模型
第五章
介绍了网络安全方面的一些知识点
-
网络安全的三要素 机密性:攻击者无法获知通信内容
完整性:攻击者对内容进行篡改时能被发现
身份验证:攻击者无法伪装成通信双方的任意一方与另一方通信
-
对称加密和非对称加密 对称加密:加密、解密用同样的密钥
非对称加密:加密、解密使用不同的密钥(公钥和私钥),而且公钥加密只能用私钥解密、私钥加密只能用公钥解密
-
密码散列函数(哈希函数) 输入:任意长度的内容
输出:固定长度的哈希值
性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值在计算上是不可能的
-
机密性 加密需要加密算法和密钥等信息(统称为秘密信息)
网络是明文的,不安全
怎么在不安全的信道交换秘密信息?
现有技术中与本专利申请技术最为接近的技术为dh算法(即diffie-hellman密钥交换协议),通信双方公开参数p和g,而后各自生成随机数a和b,第一个通信者将s1=g^a%p发送给对方,第二个通信者将s2=g^b%p发送给对方,第一个通信者计算s2^a%p即为秘钥,第二个通信者计算s2^b%p即为秘钥,实现秘钥的安全交换。在dh算法中需要p是一个非常大的质数才能保证密钥的安全。
-
完整性和身份验证
完整性和身份验证给相互关联
如A向银行发起转账请求
银行需要确认
这个请求是A发起的
目标账户和转账金额没有被篡改
-
如何实现机密性
已知:网络是明文的
如果双方可以通过明文通信商量出秘密信息,那么攻击者也可以
所以想要通过明文通信交换秘密信息,通信双方需要先有秘密信息
-
如何实现完整性
密码散列函数性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算中是不可能的
有明文m,密码散列函数H
计算H(m)获得哈希值h
将m和h组合成新信息m+h
接收方拆分m+h,重新计算H(m)得h‘,对比h’和h
所以要想实现完整性,通信双方需要现有秘密信息
-
如何实现身份验证
签名:用户鉴别身份和防止伪造
非对称加密性质:加密、解密使用不同的密钥(公钥和私钥)
公钥加密只能用私钥解密、私钥加密只能用公钥解密
A用自己的私钥信件进行加密,并发送给B
B使用A的公钥进行解密,获得原文
保证了机密性、完整性和身份验证
数字签名:对明文内容的哈希值使用私钥加密,验证者使用公钥验证
数字签名(指纹) = 私钥加密(密码散列函数(原文))
消息 = 原文+数字签名
一般用于对公开内容(如包含公钥的证书)进行数字签名,防止篡改
可信的人验证A的公钥
那谁验证可信的人的公钥呢?
根证书是证书链的尽头
验证的一连串证书成为证书链
发布证书、验证证书的基础设施称为PKI,Public Key Infrastructure
所以想要实现身份验证,通信双方需要先有秘密信息,即根证书中的公钥
-
HTTPS
把HTTP的明文换成密文,再验证身份,即HTTPS
HTTPS= HTTP+TLS
TLS=身份验证+加解密
身份验证靠PKI
服务端身份验证靠PKI,客户端身份验证靠HTTP协议
总结
经过今天的学习,我对计算机网络的大概作用了解了,明白了各个层之间的关系和联系,了解了HTTP1 2 3的发展史和作用都包含哪些文件,TCP的连接,HTTP的连接模型有了深刻的理解,对网络安全的基础有了认识如三要素、对称加密和非对称加密等。