计算机网络概论 | 青训营笔记

63 阅读4分钟

计算机网络概论

课程总结.png

前言

  • 计算机网络整体认识
  • 网络协议分层认识
  • http1,2,3
  • cdn运行基本原理
  • 网络安全的最基本原则 分析方法:自底向上,自顶向下

计算机网络基础

蟹堡王帝国

家庭路由器,服务器,isp路由器,企业路由器

网络基础

  • 主机:提供/接收信息
  • 路由器:转发信息
  • 网络协议:提供统一格式

网络结构(网络的网络):区域网络(一个本地网络)、城域网(多个本地网络)、广域网(多个城域网)

电路交换&分组交换 丢包:队列满的时候丢弃清空

网络分层(职责):物理层-链路层-网络层(创建)-传输层(传输)-应用层(执行)

HTTP协议——语言:标头和载荷

  • 链路层-本地帧头部;IP协议头部;
  • 运输层-TCP协议头部
  • 应用层-HTTP协议头部 TCP.png ⬆没看懂

小结

  • 网络组成部分
  • 网络结构
  • 信息交换方式
  • 网络分层
  • 网络协议

web中的网络

HTTP协议组成部分

HTTP协议:请求+协议

请求:起始行GET / HTTP/1.1:请求方法,资源路径,http版本

头部名称: ...(头部值)

响应:状态行HTTP/1.1 200 OK:HTTP版本,状态码,状态信息

头部名称: ...(头部值)

HTTP连接模型:服务器-TCP-HTTP

HTTP报文格式

优点:ascii形式展示,便于人类理解

问题:请求-响应模型:网络利用率不高,无法在一条连接上多路复用;请求头部和响应头部重复,重复发送无法压缩(cookie)

HTTP连接模型演变:短链接-涡轮式(帧)-管线——都无法解决队头堵塞

常用解决方法:建立多个HTTP连接,将请求建立在多个连接。建立连接成本巨大;请求数量超过连接数量时仍然需要排队。

HTTP1.1:无法多路复用

HTTP2:帧

HTTP2.png

  • 1-3字节:载荷长度
  • 4:类型
  • 5:flags
  • 6-9:第一位保留位,2-32位流ID
  • 随后的字节都是载荷

好处:调整相应传输的优先级,头部压缩,server push

缺点:在TCP上队头堵塞(TCP丢包重传的特性)

解决方法:TCP连接需要一个RTT,TLS两个RTT。(延迟高)

HTTP3:QUIC

Quick UDP Internet Connection

优点:避免TCP队头堵塞,并将TLS作为自身的一部分,实现第一次只需要1RTT,第二次及以后不需要RTT

外部影响因素

  • 无法突破物理极限
  • 流量成本
  • 服务器承载的网络容量是有限的

->解决方法:CDN(缓存分部服务器)DNS(域名解析系统)劫持

域名解析一般由网站自己代理,需要加速的域名交由CDN厂商进行IP处理,最终域名并不是在本地CDN,而是显示CDN厂商。

WebSocket(在HTTP协议基础上升级得到)

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

与HTTP协议关系:在头部多出一个Upgrade: websocket\r\n

例子

服务端代码.png

客户端代码.png

小结

  • HTTP 1 2 3
  • CDN和DNS挟持
  • WebSocket

网络安全

三要素:机密性、完整性、身份验证

秘密信息:加密算法和密钥

机密性

加密方式

对称加密和非对称加密:加密和解密使用的密钥是一个还是一对

密码散列函数(哈希函数)

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

完整性和身份验证

完整性和身份验证相互关联。

如何实现

明文通信交换-秘密消息❌

秘密信息-明文通信交换√ + 数字签名(PKI)

HTTPS

HTTPS=HTTP+TLS

TLS=身份验证(服务端PKI,客户端HTTP协议)+加解密

小结

  • 网络安全三要素
  • 在没有提前交换秘密信息的前提下,无法在不安全的信道交换秘密信息
  • PKI保证普通用户不需要面对面和根证书机构交换根证书
  • HTTPS使用PKI完成除客户端身份验证以外的特性,客户端身份验证靠HTTP协议实现

没懂的点

  • CDN和服务器?
  • 链路层、运输层、应用层头部相关
  • HTTP协议传输信息是否按照服务器-TCP-HTTP顺序进行?
  • HTTP1短链接没有听懂
  • HTTP2的好处没看懂
  • RTT类似于钥匙,但是RTT是需要人工构建的吗?怎么构建?
  • CDN:DNS劫持的理解是否正确?
  • websocket的代码语法和解读