计算机网路基础
网络组成部分
1.主机:客户端和服务端
2.路由器
3.网络协议
网络结构:网络的网络
比奇堡和小区网络:本地网络
北京和上海分店+比奇堡:三个本地网络
全国通信网络:本地网络的网络
区域网络、局域网和广域网
网络分层
快递员不关心包裹内容
卡车司机不关心卡里车厢里面拉的是什么
高速公路不关心开的是什么车
协议
协议的存在依赖于连接
总结
网络组成部分:由主机、路由器、交换机登组成
网络结构:网络的网络
信息交换方式:电路交换和分组交换
网络分层:分清职责,物理层、链路层、网络层、运输层和应用层
网络协议:标头和载荷
web中的网络
http协议
http连接模型
CDN:CDN劫持
域名解析一般由网站自己处理
要加速的域名则重定向到CDN厂商的域名解析服务处理
CDN厂商根据来源确定最近的CDN服务器的IP
用户直接访问最近的CDN服务器
WebSocket
有状态的持久连接
服务器可以主动推送消息
用WebSocket发送消息延迟比http低
服务端代码
const { WebSocketServer } = require('ws');
const wss = new WebSocketServer({ port: 8080 });
wss.on('connection', function connection(ws) {
// 有新连接时监听来自客户端的消息
ws.on('message', function message(data) {
// 打印收到的消息,再把消息原封不动地发回给客户端
console.log('received: %s', data);
ws.send(data);
});
});
客户端代码
const WebSocket = require('ws');
const ws = new WebSocket('ws://localhost:8080');
ws .on('open', function open() {
//当连接建立时,向服务端端发送一条消息
ws.send('something');
});
ws .on( 'message', function message(data) {
//当收到来自服务端的消息时,打印出来
console.log('received: %s', data);
});
总结 http的演进历史
CDN解决了http协议之外的问题
WebSocket从Http协议升级而来
网络安全
三大要素
机密性:攻击者无法获知通信内容
完整性:攻击者对内容进行篡改时能被发现
身份验证:攻击者无法伪装成通信双方的任意一方与另一方通信
对称加密和非对称加密
对称加密:加密、解密用同样的密钥
非对称加密:加密、解密使用不同的密钥(公钥和私钥),而且公钥加密只能用私钥解密、私钥加密只能使用公钥解密
密码散列函数
输入:任意长度的内容
输出:固定长度的哈希值
性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的
机密性
加密需要加密算法和密钥信息
网络是明文的,不安全
如何实现机密性
已知:网络是明文的
如果双方可以通过明文通信商量出秘密信息,那么攻击者也可以
所以想要通过明文通信交换秘密信息,通信双方需要先有秘密信息
如何实现完整性
密码散列函数性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的
总结
网络安全三要素:机密性、完整性和身份的验证
在没有提前交换秘密信息的前提下,无法在不安全的信道交换秘密信息