网络基础知识

目录

<1>. 背景

<2>. 网络七层模型

<3>. TCP的三次握手

<4>. TCP的四次握手

<4>. UDP简介

<5>. TCP和UDP的区别

<6>.RTT与RTO的概念

<7>.TCP滑动窗口

<8>.HTTP

<9>.HTTP和HTTPS区别

<10>.Socket


<1>. 背景

  • 正常来说,我们不需要关心网络知识,因为编程的时候,是不需要我们编写socket这些东西的,并且底层服务已经很好的处理了数据包的解析,所以,网络方面的东西貌似是不需要我们关心的。但是如果出现了问题,没法判断网络为什么变慢,是网络的原因还是别的原因,数据包有没有丢失,为什么会造成大量的连接丢失等等,因此还是很有必要学习网络知识,以备不时之需。

<2>. 网络七层模型

  • https://blog.csdn.net/a369189453/article/details/81193661
  • 印象笔记,七层网络模型 比喻

<3>. TCP的三次握手

  • TCP Flags
    • URG :紧急指针标志
    • ACK :确认序号标志
    • PSH :push 标志
    • RST :重置连接标志
    • SYN :同步序号,用于建立连接过程
    • FIN :finish标志,用于释放连接

网络基础知识_第1张图片

<4>. TCP的四次握手

网络基础知识_第2张图片

为什么会有TIME-WAIT :

  • 确保有足够的时间让对方收到ACK包 
  • 避免新旧连接混淆

<5>. UDP简介

  • 面向非连接
  • 不维护连接状态,支持同时向多个客户端传输相同的消息

<6>. TCP和UDP的区别

  • 面向连接VS无连接
  • 可靠性
  • 有序性
  • 速度
  • 量级,TCP 20个字节,UDP 8个字节

<7>.RTT与RTO的概念

  • RTT:发送一个数据包到收到对应的ACK,所话费的时间
  • RTO:重传时间间隔

<8>.TCP滑动窗口

  • TCP使用滑动窗口做流量控制与乱序重排

网络基础知识_第3张图片

<9>.HTTP

  • 简介
    • 支持客户/服务器模式
    • 无连接:是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。
    • 无状态:是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态
  • 发送请求的流程
    • DNS解析,解析服务器域名所对应的ip地址,浏览器缓存,系统缓存 ,路由器缓存,ips服务器缓存,域名服务器缓存 ,顶级域名服务器缓存
    • TCP连接
    • 发送HTTP请求
    • 服务器处理请求并返回HTTP报文
    • 浏览器解析渲染页面
  • HTTP状态码

       网络基础知识_第4张图片

  • GET请求和POST请求的区别
    • Http报文层面:GET将请求信息放在URL,POST放在报文体中
    • 数据库层面:GET符合幂等性和安全性,POST不符合
    • 其他层面:GET可以被缓存,被存储,而POST不行
  • Cookie 和 Session的区别
    • Cookie简介
      • 是由服务器发送给客户端的特殊信息,以文本的形式放在客户端
      • 客户端再次请求的时候,会把Cookie回发
      • 服务器接收后,会解析Cookie生成与客户端相对应的内容

                  网络基础知识_第5张图片

  • Session实现方式

                 网络基础知识_第6张图片

<10>.HTTP和HTTPS区别

  • SSL(Security Sockets Layer,安全套接层)
    • 为网络通信提供安全及数据完整性的一种安全协议
    • 是操作系统对外的API,SSL3.0后更名为TSL
    • 采用身份验证和数据加密保证网络通信的安全和数据的完整性
  • 加密方式
    • 对称加密:加密和解密都使用同一个秘钥
    • 非对称加密:加密和解密的秘钥是不相同
    • 哈希算法:将任意长度的信息转换为固定长度的值,算法不可逆
    • 数字签名:证明某个消息或者文件是某人发出/认同的
  • HTTPS数据传输流程
    • 浏览器将支持的加密算法信息发送给服务器
    • 服务器选择一套浏览器支持的加密算法,以证书的形式回发浏览器
    • 浏览器验证证书合法性,并结合证书公钥加密信息发送给服务器
    • 服务器使用私钥解密信息,验证哈希,加密响应消息回发浏览器
    • 浏览器解密响应信息,并对消息进行验证,之后进行加密交互数据
  • 区别
    • HTTPS需要到CA申请证书,HTTP不需要
    • HTTPS密文传输,HTTP明文传输
    • 连接方式不同,HTTPS默认使用443端口,HTTP使用80端口
    • HTTPS=HTTP+加密+认证+完整性保护,较HTTP安全

<11>.Socket

  • 简介
    • Socket是对TCP/IP协议的抽象,是操作系统对外开发的接口
  • Socket通信流程

       网络基础知识_第7张图片

你可能感兴趣的:(网络)