计算机网络相关知识点

  1. 基础
    1. HTTP协议
    2. TCP 协议
    3. TCP沾包和拆包

基础

  • OSI模型(7层)
    • 应用层、表示层、会话层、传输层、网络层、 链路层、物理层
  • TCP/IP模型(4层)
    • 应用层、传输层、网络层、链路层
  • 五层TCP/IP模型
    • 应用层
      • 协议类型:HTTP、SMTP、FTP等
    • 传输层
      • 协议类型:TCP、UDP
    • 网络层
      • 协议类型:IP
    • 链路层
    • 物理层

HTTP协议

  • 状态码
    • 1xx:提示信息,一般是处理的中间状态,很少用到。
    • 2xx:响应成功
      • 200:OK
      • 204:NOT CONTENT 不含body数据
      • 206:PARTIAL CONTENT 部分数据,常用于断点续传
    • 3xx: 重定向
      • 301:MOVE PERMANENTLY url永久移动,需要使用新url访问
      • 302:FOUND 临时重定向
      • 304:NOT MODIFIED 资源未修改,重定向至已经缓存的文件
    • 4xx:客户端报文错误
      • 400:BAD REQUEST
      • 403:FORBIDEN
      • 404:NOT FOUND
    • 5XX:服务器内部出现错误
      • 500:INTENAL SERVER ERROR
      • 501:NOT IMPOLEMENT
      • 502:BAD GATEWAY 网关或者代理出现错误
      • 503:SERVICE UNAVAILBLEE 服务器忙,暂时无法响应
  • 组成
    • header:key-value键值对
    • body:传输的信息,主要是html和json格式比较多一些
  • 版本:
    • HTTP1.0
      • 【请求-应答】模式:即一条请求必须得到回应后,才会继续发送第二个请求。
    • HTTP1.1
      • 优点:
        • 增加长连接功能:避免每条请求都要使用tcp三次握手建立连接、四次挥手中断连接
        • 支持管道传输
      • 缺点:
        • header未经压缩就发送,首部信息越多延迟越大,只能压缩body部分
        • 经常会发送相同的header
        • 队头阻塞:服务器是按请求的顺序响应的,如果服务器响应慢,后面的请求也会阻塞。
        • 无请求优先级控制
        • 请求只能从客户端开始,服务器只能被动响应
    • HTTP2.0
      • 是在HTTPS上进行改进
      • 优点:
        • 头部压缩
          • HPACK压缩算法
        • 二进制格式
          • Header -> Header Frame
          • Data -> Data Frame
        • 数据流
          • 每个请求或回应的所有数据包,称为一个数据流
          • 客户端发出的数据流编号为奇数,服务器发出的数据流编号为偶数。
          • 客户端可以指定数据流的优先级
        • 多路复用
          • 可以一个连接中并发多个请求或回应,不用按照顺序一一对应
        • 服务器推送
          • 服务器可以主动发送消息,发送css,js等静态文件
      • 缺点:
        • 多路复用导致多个HTTP请求在一个tcp连接中,但是tcp并不知道有多少个http请求在该连接上,一旦发生丢包,则会阻塞所有的http请求,所有的http请求都必须等待这个丢了的包被重传回来
    • HTTP3.0
      • 将运输层协议改为UDP协议(基于QUIC)
        • QUIT有一套机制可以保证传输的可靠性。当某个流发生丢包时,只会阻塞这个流,其他流不会收到影响。
  • HTTPS-安全PLUS
    • 在HTTP和TCP之间加入SSL/TLS,保证通信安全
    • 保证安全性的方法:
      • 混合加密:使用对称加密和非对称加密
      • 摘要算法:验证数据一致性
      • 数字证书

TCP 协议

  • header:至少20个字节
  • 三次握手的原因
    • 浅层:为了保证连接双方具有接收和发送的能力。
    • 深层:用于保证维护可靠性和流量控制的信息
      • 可以阻止重复历史连接的初始化(首要原因)
      • 可以同步双方的初始化序列号
      • 避免资源浪费
  • 四次挥手:为什么要有2MSL的time-wait
    • 防止具有相同四元组的旧数据包被收到
    • 保证 被动关闭连接 的一方能被正确的关闭
  • 如何保证可靠性
    • 校验和
    • 重传
    • 流量控制
      • 控制接受窗口和发送窗口的大小
    • 拥塞控制
      • 拥塞窗口大小可变
      • 步骤:
        • 慢启动:指数增长
        • 拥塞避免:超过阈值,线性增长
        • 拥塞发生
          • 超时重传:从慢启动开始
          • 快速重传:使用 快速恢复算法

TCP沾包和拆包

  • 沾包
    • 产生原因:
      • socket缓冲区与滑动窗口
      • MSS/MTU限制
      • Nagle算法
    • 解决办法:
  • 拆包
    • 产生原因

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 525244039@qq.com

文章标题:计算机网络相关知识点

文章字数:1.1k

本文作者:Zikun

发布时间:2021-08-30, 16:27:49

最后更新:2021-08-30, 16:27:49

原始链接:http://zikun97.github.io/2021/08/30/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E7%9B%B8%E5%85%B3%E7%9F%A5%E8%AF%86%E7%82%B9/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏