计算机网络基础补全

计算机网络基础复习

1, OSI七层模型与TCP/IP五层模型

  • OSI:

    参考模型对应内容主要作用对应实体以及相应协议
    应用层程序针对特定应用的协议
    表示层字符或字设备固有数据格式和网络标准数据格式的转换
    会话层通信管理,负责建立和新开通网络连接
    传输层段/消息芙蓉里两罐节点之间的数据传输
    网络层地址管理与 路由选择
    数据链路层互联设备之间的传送与是被数据帧
    物理层比特流
  • TCP/IP为四层模型

    应用层:报文

    传输层:传输层协议

    网际层:数据报

    网络接口层:网络帧

在这里插入图片描述

2, 分包、路由与协议

  • SMTP邮件协议 TELNET/SSH远程登录协议

  • FTP文件传输协议 SNMP网络管理协议

  • 分包结构

在这里插入图片描述

  • 聚合网络地址:取网络地址的最大相同部分
  • TTL的最大值是255,TTL的一个推荐值是64;只有经过路由器才减1,集线器和交换机不会。

3, TCP与UDP

TCP面向可靠连接,检验和、序列号+确认应答、重发控制、连接管理以及窗口控制实现

  • 检验和:发送的数据包的二进制相加然后取反,目的是检测数据在传输过程中的任何变化
  • 序列号与确认应答:累计确认+seq,TCP给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层
  • 重发控制: 定时器等待目的端确认收到这个报文段如果不能及时收到一个确认,将重发这个报文段
  • 连接管理:三次握手与四次挥手
  • 窗口控制:使用滑动窗口提高速度,减少阻塞

TCP 拥塞控制解决方法:慢启动、拥塞避免、快重传、快恢复

  • 慢启动:一开始网络注入的报文较少
  • 拥塞避免:该阶段拥塞窗口控制为线性增长
  • 快重传:发送方尽快进行快速重传,不是等到计数器超时以后再进行,收到三个重复确认
  • 快恢复:将慢开始门限与窗口降低一半,执行拥塞避免算法

在这里插入图片描述

TCP 粘包现象

  • 原因:1. 数据发送时候,由于nagle算法会将大的部分拼接成小的部分,一次发送给服务器端,从而造成粘包

    ​ 2. 发送内容大的时候,服务器的rec方法中buffer_size比较小,不能一次性接受完,因此下一次请求到达的时候,接受的内容依然是上一次没有完全接收完的,因此会出现粘包

  • 解决思路:就是需要发送端在发送之前把字节流的数据大小告知接受端

TCP三次握手与四次挥手的过程

在这里插入图片描述
在这里插入图片描述

  • 三次的原因:SYN与ACK的确认 TCP属于双工通讯

  • 为啥挥手是四次?

    服务器FIN以后可能还会存在接受数据的情况,服务端通常需要等待完成数据的发送和处理,所以服务端的 ACKFIN 一般都会分开发送,从而比三次握手导致多了一次。

4, URL与DNS解析过程

  • URL解析:将URL分解为域名、端口以及请求资源
  • DNS查询:浏览器缓存,本地hosts,本地DNS解析器缓存,本地DNS服务器(ISP),根DNS服务器

5, HTTP协议

  • HTTP1.0与HTTP1.1
  • HTTP2.0特性
    • 多路复用:允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息
    • 二进制分帧
    • 首部压缩
    • 服务器推送
  • HTTPS 配合加密SSL/TSL非对称加密算法,默认端口号是443

6,加密算法与非对称加密算法

  • 数字签名:定义两种互补的运算,一个用于的签名,一个用于验证,分别由发送者持有能够代表自己身份的私钥以及接受者的公钥
  • 常见的对称加密算法DES,3DES、AES等,常见的非对称加密算法RSA、DSA 散列算法SHA-1、MD5等
  • 对称加密算法:明文+秘钥 = 秘文 秘文-逆算法
  • 非对称加密算法:又称公开秘钥加密算法,包括公钥与私钥
    • 使用公钥进行加密,必须使用私钥解密
    • 使用私钥进行加密,必须使用公钥解密
  • SSL里面对称加密与非对称加密
    • 证书:一种在互联网上面验证通信实体身份的方式!主要包括:签发证书的机构、加密算法、hash算法、公钥与证书到期时间
    • 为了防止证书颁发的过程中被人修改,使用了数字签名
    • 所以最终传输的内包括正文+数字签名+数字证书
  • 证书的有效性判断过程

在这里插入图片描述

  • SSL 使用加密的过程:相当于握手的过程使用的非对称加密算法,连接建立以后使用的是对称加密的方法 同时兼顾效率与安全
    1. 客户端A给出自己支持的SSL版本+一个随机数+自己支持的加密方式
    2. 服务端B接受到信息后确认加密方式+自己的安全证书+一个随机数
    3. A确认证书的有效性,生成一个随机数,将该随机数利用B的数字证书公钥加密以后发送给A
    4. 服务端用B的私钥解密这个随机数
    5. AB通过使用前三个随机数生成一个对话秘钥用来接下来的通信

7,HTTP的请求

序号方法描述
1GET发送请求获取服务器上的资源
2POST像服务器提交资源让服务器处理
3PUT
4HEAD
5DELETE
6CONNECT
7OPTIONS
8TRACE

GET与POST的区别

本质:

使用GET方法,浏览器会将HEADER与DATA一起发送过去,服务器返回200

使用POST方法,HEADER与DATA分开发送,中间有个服务器返回100的过程,完成以后返回200

因此:

  • 使用回退:以后POST以后数据重新提交
  • 缓存:POST不可以
  • 数据类型:GET - URL 里面 POST - request body
  • 可见性:GET可见 POST不可见

HTTP状态码

分类分类描述
1信息,服务器接收到请求,需要请求者继续执行操作
2成功,操作成功被处理
3重定向,需要进一步操作以完成请求
4客户端错误
5服务器错误

常见的响应码

8,重定向与转发的区别

  • 请求转发:A向B请求,B完成不了,B转发至C之后的返回A。过程中A只进行一次请求,对于完成的过程不关心,只等待最终的结果
  • 重定向:A向B请求,B完成不了,B向A推荐C可以完成,A找C完成

不同点:

  • 浏览器地址显示不同(表层
    • 请求转发只显示第一次的地址
    • 重定向显示的新的地址
  • 组件之间可以共享的信息不同(本质
    • 请求转发过程中,web容器只建立一个request与response对象,请求之间的始终共享这两个对象,因此过程中可以访问之前请求的参数与属性
    • 重定向,浏览器每次发送一个请求,web容器需要重新创建request与response对象,请求之间的信息不能共享
  • 实现方式不同
    • 请求转发:
    • 重定向:
  • 知情人不同
    • 请求转发的过程只有web服务器知道,客户端只是等待结果
    • 重定向的过程的服务器与客户端都清楚

9,cookie与seesion的区别

  • cookie数据在用户的浏览器上,session数据在服务器上
  • cookie放在本地因此不安全
  • cookie的时间可以设置cookie过期 session可以直接销毁对话
  • 性能
  • cookie的数据类型少,大小有限制;session对象没有数据量的限制
  • 生命周期:cookie有预设的生命周期,session生命周期是浏览器打开到结束
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值