计算机网络

OSI网络模型

  • 应用层,负责给应用程序提供统一的接口;报文

  • 表示层,负责把数据转换成兼容另一个系统能识别的格式;

  • 会话层,负责建立、管理和终止表示层实体之间的通信会话;

  • 传输层,负责端到端的传输;报文段(TCP)、用户数据报(UDP)

  • 网络层,负责路由、转发、分片;分组、数据段、包、IP数据报(IP协议)

  • 数据链路层,负责透明传输,封帧成帧,差错检测, MAC 寻址;帧

  • 物理层,负责屏蔽硬件和传输媒体的差异;bit

四层模型数据分析

MAC层最大传输1518字节,其中MAC帧头18字节,那么IP数据包最大1500字节。

网络层MTU1500字节,其中IP数据包头部20字节,那么TCP报文段1480

传输层1480字节,其中TCP头部最小20(<=60),MSS最大1460。

为什么有了MTU还要MSS

如果在 TCP 的整个报文(头部 + 数据)交给 IP 层进行分片,会有什么异常呢?

IP 层就要进行分片,每一个分片都小于 MTU。目标主机的 IP 层来进行重新组装后,再交给上一层 TCP 传输层。

如果一个 IP 分片丢失,整个 IP 报文的所有分片都得重传。

因为 IP 层本身没有超时重传机制,它由传输层的 TCP 来负责超时和重传。

发送方的 TCP 在超时后,就会重发「整个 TCP 报文(头部 + 数据)」。

所以,为了达到最佳的传输效能 TCP 协议在建立连接的时候通常要协商双方的 MSS 值,进行重发时也是以 MSS 为单位

put,patch,get,post

PATCH不是幂等的,是对PUT方法的补充,“局部更新”

put是幂等的,存在就替换,没有就新增

get是幂等的,请求数据

post不是幂等的,新增数据,重复进行结果不一样(自增id)

get:

  • 参数在url里,只能url编码,ASCll字符,长度有限

  • 有缓存,有历史记录,可书签,幂等的,回退无害,一个数据包

扩展:http明文传输,本质上看get和post都不安全;

GET 请求可以带 body ,POST 请求的 URL 也可以有参数,但是不规范。

 

HTTP 是明文传输

  • 窃听风险,比如通信链路上可以获取通信内容,用户号容易没。

  • 篡改风险,比如强制植入垃圾广告,视觉污染,用户眼容易瞎。

  • 冒充风险,比如冒充淘宝网站,用户钱容易没。

HTTPS 在 HTTP 与 TCP 层之间加入了 SSL/TLS 协议

  • 信息加密:混合加密,建立通信前非对称加密(安全交换密钥),建立通信后对称加密(快)

  • 校验机制摘要算法(哈希函数)的方式来实现完整性

  • 身份证书:将服务器公钥放入到数字证书

https的SSL连接过程

img

http1.1优点

  • 长连接

  • 管道传输(解决了请求的队头阻塞(HTTP 层))

http1.2优点(http1.1缺点)

  • 服务器推送

  • 多路复用

  • 二进制传输

  • 数据流

  • 头部压缩

http1.3优点

基于 UDP 的 QUIC 协议(解决响应的队头阻塞(TCP层))

没有用四元组的方式来“绑定”连接,而是用连接 ID来标记通信的两个端点( 4G 切换到 WIFI , IP 地址变化但不用重连)

 

 

 

 

posted @ 2022-03-31 21:48  剩下的交给时间就好  阅读(34)  评论(0编辑  收藏  举报