计网知识点

本文详细介绍了HTTP协议及其首部字段,包括通用、请求和响应首部,以及URI/URL的区分。同时,解释了DNS的工作原理,如域名解析和负载均衡。此外,探讨了TCP与UDP的区别,以及TCP的三次握手、滑动窗口、流量控制和拥塞控制机制。最后,讨论了HTTP缓存的强缓存和协商缓存策略。
摘要由CSDN通过智能技术生成

OSI模型

七层:

网络的七层协议2

OSI七层模型及对应的网络协议1

HTTP

超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。

在这里插入图片描述

HTTP首部字段

可分为4类型:

1.通用首部字段:请求报文和响应报文都会时候的首部

Cache-Control控制缓存行为
Connection逐跳首部、连接的管理
Date创建报文的日期时间
Pragma报文指令
Upgrade升级为其他协议
Warning错误调整

2.请求首部字段

Accept用户代理可处理的媒体类型
Accept-Charset优先的字符集
Accept-Encoding优先的内容编码
Except期待服务器的特定行为
From用户的电子邮箱地址
Host请求资源所在的服务器
If-Match比较实体标记(Etag)
If-Modify-Since比较资源的更新时间
If-None-Match比较实体标记(与If-Match相反)
Referer请求中URI的原始获取方
User-AgentHTTP客户端程序的信息

3.响应首部字段

Age推算资源创建经过时间
Etag资源的匹配信息
Location令客户端重定向至指定URI

实体首部字段

Allow资源可支持的HTTP方法
Content-Encoding实体主体适用的编码方式
Centent-Type实体主体的媒体类型
Expires过期日期时间
Last-Modify最后修改日期时间

常见头部字段:

Accept:通知服务器,用户代理能够处理的媒体类型及媒体

URI / URL:

URI:统一资源标识符,使用它就能够唯一地标记互联网上资源。

URL:统一资源定位符,俗称网址,URI的子集

URI 不仅包括 URL,还包括 URN(统一资源名称),它们之间的关系如下

DNS:

域名解析服务器 url->ip;

负载均衡技术:能够平衡服务器集群中所有的服务器和请求应用之间的通信负载,根据实时响应时间进行判断,将任务交由负载最轻的服务器来处理,以实现真正的智能通信管理和最佳的服务器群性能。

实现原理:在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上面去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。

DNS查询方法:递归/迭代

CDN:

CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

强缓存协商缓存:

1.强缓存:不会向服务器发送请求,直接从缓存中读取资源,在chrome控制台的network选项中可以看到该请求返回200的状态码;

2.协商缓存:向服务器发送请求,服务器会根据这个请求的request header的一些参数来判断是否命中协商缓存,如果命中,则返回304状态码并带上新的response header通知浏览器从缓存中读取资源;

强缓存

expires:response header里的过期时间,浏览器再次加载资源时,如果在这个过期时间内,则命中强缓存

Cache-Control:有几个常用字段

    max-age 有效时间(相对值)

    -no-cache:使用此指令目的是为了防止从缓存中返回过期的资源,不适用本地缓存。需要使用协商缓存,先与服务器确认返回的响应是否被更改,如果之前的响应中存在Etag,那请求的时候会与服务端验证,如果资源未被修改,可以避免重新下载

    -no-store:直接禁止浏览器缓存数据,每次用户请求该资源,都会向服务器发送一个请求,每次都会下载完整的资源

    -public:可以被所有用户缓存,包括终端用户和CDN等中间代理服务器

    -private:只能被终端用户的浏览器缓存,不允许CDN等中继缓存服务器对其缓存。

TCP(传输控制协议 ) UDP(用户数据报协议)

UDP:无连接,可一对一单播,一对多广播

在这里插入图片描述  大小8k

TCP:一对一的链接,可靠,超时重传,只要不得到对方的确认,就重新发送数据包直到得到对方确认为止。

在这里插入图片描述   大小20k

  • 窗口 :窗口值作为接收方让发送方设置其发送窗口的依据。之所以要有这个限制,是因为接收方的数据缓存空间是有限的。
  • 确认ACK:当ACK为1时确认号字段有效,TCP规定,在建立连接后所有传送的报文段都必须把ACK置1.
  • 同步SYN:在建立连接时同步序列号
  • 终止FIN:置1时,表示此方向发送方的数据已发送完毕,并要求释放连接
  • 序号:用于对字节流进行编号,例如序号为301.携带的数据长度为100,那么下一个报文的序号应该为401
  • 确认号:期望收到下一个报文段的序号,例如b收到a发送来的一个报文序号为501,长度为200,因此b期望收到a下一个发来的报文段序列号为701,所以b发送给a的确认报文中的确认号为701.

三次握手:

在这里插入图片描述

第三次握手是为了防止失效的连接请求到达服务器,让服务器错误打开连接

客户端发送的连接请求如果在网络中滞留,那隔很长一段时间才能收到服务器发回的连接请求。客户端等待一个超时重传时间之后就会重新请求连接。但滞留的连接请求最后还是会到达服务器,如果不进行三次握手,那么服务器会打开两个连接,第三次握手的作用就是让客户端忽略服务器发送的对滞留请求的确认,不进行第三次握手就不会再次打开连接。

滑动窗口

窗口是缓存的一部分,用来暂时存放字节流。发送方和接受方各有一个窗口,接收方通过TCP报文段中的窗口字段告诉发送方自己的窗口大小,发送发根据这个值和其他信息设置自己的窗口大小。

发送窗口内的字节都允许被发送,接受窗口内的字节都允许被接收。如果发送窗口左端的字节已经发送并且得到确认,那窗口就右移一定距离直到左部第一个字节不是已经发送并且确认的状态;接收窗口的滑动也类似。

流量控制

为了控制发送方发送速率,保证接收方来得及接收

接收方发送的确认报文中的窗口字段可以用来控制发送窗口大小,从而影响发送方发送速率。将窗口字段设置为0,则发送方不能发送数据。

拥塞控制

当网络出现拥塞,控制发送方的速率,这点跟流量控制很像,但流量控制是为了接收方来得及接收,而拥塞控制是为了降低整个网络的拥塞程度。

慢启动算法:

TCP、UDP区别:

1.TCP面向连接;UDP无连接

2.TCP提供可靠的服务,无差错,不丢失,不重复,按序到达;UDP尽最大努力交付,不保证可靠交付

3.UDP有较好的实时性,工作效率高于TCP,适用于高速传输和实时性要求较高的通信或广播通信。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值