计算机网络——知识点

1 基础知识

1.1、滑动窗口协议

滑动窗口协议

  • TCP协议的使用
  • 维持发送方/接收方缓冲区
    缓冲区是 用来解决网络之间数据不可靠的问题,例如丢包,重复包,出错,乱序

在TCP协议中,发送方和接受方通过各自维护自己的缓冲区。通过商定包的重传机制等一系列操作,来解决不可靠的问题


1.2 拥塞控制

拥塞控制
在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况就叫做网络拥塞

在计算机网络中数位链路容量(即带宽)、交换结点中的缓存和处理机等,都是网络的资源。

若出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降

TCP的四种拥塞控制算法

  1. 慢开始
  2. 拥塞控制
  3. 快重传
  4. 快恢复

在这里插入图片描述

1.3 TCP三次握手、四次挥手

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

2、http和https相关知识

1、TCP的DDOS攻击了解吗

Dos攻击目的:使计算机或者网络无法提供正常的服务

SYN攻击:向网络服务所在端口发送大量的伪造源地址的攻击报文,就可能造成目标服务器中的半开连接队列被占满,从而阻止其它合法用户进行访问。

2、http和https区别

http和https区别
http超文本传输协议,它负责完成客户端到服务端的一系列操作,是专门用来传输注入HTML的超媒体文档等web内容的协议,它是基于传输层的TCP协议的应用层协议

https是基于安全套接字(SSL/TLS)的http协议,也可以理解为是http+ssl/tls(数字证书)的组合

http和https的区别:

  • HTTP 的 URL 以 http:// 开头,而 HTTPS 的 URL 以 https:// 开头
  • HTTP 是不安全的,而 HTTPS 是安全的
  • HTTP 标准端口是 80 ,而 HTTPS 的标准端口是 443
  • 在 OSI 网络模型中,HTTPS的加密是在传输层完成的,因为SSL是位于传输层的,TLS的前身是SSL,所以同理
    HTTP无需认证证书,而https需要认证证书

3、HTTPS工作原理

  • 首先服务端给客户端传输证书,这个证书就是公钥,只是包含了很多的信息,比如说证书的办法机构,证书的过期时间
  • 客户端进行证书的解析,比如说验证办法机构,过期时间,如果发现没有任何问题,就生成一个随机值(私钥),然后用证书对这个私钥进行加密,并发送给服务端
  • 服务端使用私钥将这个信息进行解密,得到客户端的私钥,然后客户端和服务端就可以通过这个私钥进行通信了
  • 服务端将消息进行对称加密(简单来说就是讲消息和私钥进行混合,除非知道私钥否则服务进行解密),私钥正好只有客户端和服务端知道,所以信息就比较安全了
  • 服务端将进行对称加密后的消息进行传送
  • 客户端使用私钥进行信息的解密

https就是使用了非对称加密(一对公私钥进行加密解密)进行公钥传输,然后客户端通过公钥加密将自己的私钥发给服务端,以后就可以使用这个私钥进行消息的收发了。
HTTPS 在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段。
在这里插入图片描述
图片来自

4、GET方法与POST方法的区别,什么时候应该使用GET什么时候应该使用POST

  • GET:一般用于信息获取,使用URL传递参数,对所发送信息的数量也有限制,一般在2000个字符
  • POST:一般用于修改服务器上的资源,对所发送的信息数量没有限制
  • GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值,也就是说Get是通过地址栏来传值,而Post是通过提交表单来传值。

小结:对于信息的获取一般使用get,在以下情况下最好使用post请求:

  • 向服务器发送大量数据(因为post没有发送数据的数量限制)
  • 无法使用缓存文件(会更新服务器上的文件)
  • 发送包含未知字符的用户输入时(亲身经历过GET的坑,泪目)

5、HTTP1.0,1.1,2.0之间的区别和特性

http1.0:

  • 是一种无状态、无连接的应用层协议,每个请求都会新创建一个tcp连接,完成后关闭服务端不跟踪也不记录过去的请求(无状态),但正因频繁创建连接,由于tcp的慢启动(为了不给网络造成拥堵,在首次进行tcp请求的时候,会限制服务端和客户端之间交互数据量的上限,大概为14kb,之后以指数级增长),服务端接受请求,处理完,发送完响应之后就会将tcp连接关闭,这造成了很大的资源浪费,而且http1.0在一个请求接收到响应之后才会接着发送下一个,这也造成了head of line blocking(队头阻塞),现在的浏览器为了解决这个问题,采用了一个页面可以建立多个tcp连接的方式来进行

http1.1:

  • 继承了http1.0的特点,同时改善了http的一些问题,首先是长连接,http1.1新增加了connecion字段,里面可以设置keey-Alive(保持连接)或者close(关闭长连接),避免了每次请求都会新建连接,提高了网络的利用率
  • http1.1还增加了Host字段,用来明确表示浏览器要服务器上的哪一个WEB站点,这才实现了在一台WEB服务器上可以在同一个IP地址和端口号上使用不同的主机名来创建多个虚拟WEB站点,同时还支持了断点续传
  • http1.1的管道:可以发送很多请求到服务端,但是服务端必须要按顺序返回响应,由此可以看出http1.1的管道只是把客户端的请求序列变成了服务端的响应序列,还是有问题,很多浏览器并不是很支持
  • http1.1还增加了缓存,断点续传

http2.0 :

  • 采用了二进制分帧(frame),在应用层和传输层之间增加了一个二进制分帧层,也就是把http1.x的header和body使用帧(frame)进行了封装
    这里明确几个概念:流(stream) : 已经建立上连接的双向字节流(也就是一个请求和其对应的响应) 消息:与逻辑消息对应的完整的一系列数据帧 帧(frame):http2.0进行通信的最小单位,每个帧都会包含一个头部,这个头部会包含当前帧所处的流
  • 多路复用:所有的HTTP2.0通信都在一个TCP连接上完成,这个连接可以承载任意数量的双向数据流,每个数据流都以消息的方式进行发送,这个发送可以使乱序的,然后在通过每个帧头部的流标识符进行组装,同时每个数据流都可以设置优先级,可见http2.0真正实现了并行发送数据,这个是给予二进制分帧来实现的,接下来上一张图片,展示一下一个在一个流中分帧传输的实例

6、http状态码总结

2xx : 代表服务端已经成功接收并处理了该请求

  • 200:服务端成功接收了该请求并进行了处理,请求所需要的数据应该伴随这次请求对应的响应返回给客户端
  • 202:服务端已经成功接收了请求,但是并未进行处理

3xx : 通常代表客户端需要进行进一步请求用,常用来进行重定向的状态码

  • 301: 客户端请求的资源已经永久移动到别的位置,服务端会自动将该请求重定向到新的位置
  • 302:临时性重定向,表示请求的资源被分配了新的URL,希望本次访问使用新的URL

4xx : 通常表示客户端请求有问题

  • 400:表示请求报文中存在语法错误
  • 401 : 未经许可,需要用户进行登录
  • 403 : 服务端收到请求,但是拒绝进行处理
  • 404 : 访问的资源不存在

5xx : 通常表示服务端内部错误

  • 500 : 服务端代码出错
  • 502 : 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应
  • 503: 服务器正在维护或者访问过载,过一段时间可能恢复正常
  • 504 : 作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应

7、TCP和UDP

7.1发送数据包大小

以太网最大的数据帧是1518Bytes,除去以太网帧头14Bytes和帧尾4Bytes,剩下承载上层协议的地方是Data域只有1500Bytes;
UDP包的大小:1500-IP头(20)-UDP头(8)= 1472Bytes
TCP包的大小:1500-IP头(20)-TCP头(20)= 1460Bytes

7.2 二者区别

UDP:在传送数据之前不需要建立连接,远程主机接收到UDP报文之后,不需要任何确认,所以不提供可靠性交付;提供单播、广播和多播的功能(一对一,一对多,多对多)。应用于即时通信,如QQ视频等。

TCP:提供面向连接的服务(一种面向连接的、可靠的、基于字节流的传输层通信协议),传送数据之前必须建立连接,传输结束释放连接;TCP不提供广播或多播 服务。
由于TCP提供可靠面向连接的服务(可靠性体现在TCP传输数据之前,会进行三次握手建立连接;数据传递时有滑动窗口、拥塞避免等机制,传输完成断开连接释放资源),会增加许多开销,一般用于文件、邮件的传输和接收。TCP提供全双工通信
在这里插入图片描述

  • TCP向上层提供面向连接的可靠服务 ,UDP向上层提供无连接不可靠服务。
  • 虽然 UDP 并没有 TCP 传输来的准确,但是也能在很多实时性要求高的地方有所作为
  • 对数据准确性要求高,速度可以相对较慢的,可以选用TCP

OSI的七层协议:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值