计算机网络基础 | 青训营笔记

79 阅读3分钟

计算机网络基础

在听到蟹堡王那一章的时候,有人想在杭州同样也开一家分店,但是比奇堡与杭州的距离远比上海与杭州的距离远,所以建一条从上海到杭州的线路显然更划算。这时候我想到之前做过一个递归遍历的查询,寻找最优路线,应该也有着相似之处。

主机:客户端(接受信息)与服务端(发送信息) 路由器(传递信息) 网络协议(提供统一格式)

网络结构:网络的网络 如果是你自己发送信息给别人就是本地网络,别人再将此信息转发出去就是三个本地网络节点的网络

信息交换方式:电路(打电话)、分组(发报文)交换

网络分层:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。 每层对上下两层完全透明,只用做好自己的部分

协议的存在依赖与连接 协议确定了报文的格式以及顺序 协议:标头和载荷

web中的网络 http使用请求-响应模型(发送一个请求后立马响应) 队头堵塞 可以建立多条连接 HTTP1.1 无法多路复用 HTTP2:帧(可以调整响应传输的优先级,头部压缩,Server push) 解决了队头堵塞,但是在tcp层面仍可能出现堵塞 HTTP3:QUIC(Quick UDP Internet Connection)解决了TCP需要快速握手的问题,吸收了http2中流的概念 现存网络设备对TCP与UDP支持已经僵化 UDP不靠谱但是QUIC靠谱 服务端先提供一次(1 RTT),后续客户端再次请求服务端就知道要干嘛了(0 RTT),更快

WebSocket(协议) 有状态的持久连接 服务端可以主动推送消息 延迟比HTTP低

网络安全 机密性:攻击者无法获取内容 完整性:篡改内容会发现 身份验证:无法伪装双方任意一个

对称加密:加密解密同一个密钥 非对称加密:加密解密不一样(公钥,私钥)公钥加密只能私钥解密,反之亦然

完整性 密码散列函数性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的

有明文m,密码散列函数H 计算 H(m)获得哈希值 h 将m和h组合成新信息m+h对比h'和h接收方拆分 m+h,重新计算 H(m)得 h’,对比h’和h 有明文 m,密码散列函数 H,以及一个密钥s 计算 H(m +s)获得哈希值 h 将m和h组合成新信息m +h 接收方拆分m +h,重新计算H(m +s)得h’,对比h’ 和h 所以想要实现完整性,通信双方需要先有秘密信息

网络安全:如何实现身份验证

签名:用于鉴别身份和防止伪造 非对称加密性质:加密、解密使用不同的密钥(公钥和私钥),而且公钥加密只能用私钥解密、私钥加密只能用公钥解密 蟹老板用自己的私钥对信件进行加密,并发送给海绵宝宝海绵宝宝使用蟹老板的公钥进行解密,获得原文保证了机密性、完整性和身份验证

网络安全https 把http明文换成密文 再验证身份 即https https=http+tls tls=身份验证+加解密 身份验证靠PKI 服务端身份验证靠PKI 客户端靠http协议