宁波英文网站建设wordpress 推荐 主题
web/
2025/9/29 22:37:21/
文章来源:
宁波英文网站建设,wordpress 推荐 主题,单位做核酸简讯,网页制作基础教程教案一、计算机网络体系
#xff08;1#xff09;OSI分层 #xff08;7层#xff09;
物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 #xff08;2#xff09;TCP/IP分层#xff08;4层#xff09;
网络接口层、 网际层、运输层、 应用层。 #xff0…一、计算机网络体系
1OSI分层 7层
物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 2TCP/IP分层4层
网络接口层、 网际层、运输层、 应用层。 3五层协议 5层
物理层、数据链路层、网络层、运输层、 应用层。 二、五层协议
1应用层 应用层(application-layer的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程进程主机中正在运行的程序间的通信和交互的规则。
HTTP协议
超文本传输协议HTTPHyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。
2 运输层 运输层(transport layer)的主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务。
运输层主要使用以下两种协议:
传输控制协议 TCPTransmission Control Protocol提供面向连接的可靠的数据传输服务。 用户数据协议 UDPUser Datagram Protocol提供无连接的尽最大努力的数据传输服务不保证数据传输的可靠性。
3网络层 网络层的任务就是选择合适的网间路由和交换结点 确保数据及时传送。 在发送数据时网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送
4数据链路层 两台主机之间的数据传输总是在一段一段的链路上传送的这就需要使用专门的链路层的协议。
5物理层 在物理层上所传送的数据单位是比特。 三、TCP
1三次握手和四次挥手
1、三次握手
客户端–发送带有 SYN 标志的数据包–一次握手–服务端 服务端–发送带有 SYN/ACK 标志的数据包–二次握手–客户端 客户端–发送带有带有 ACK 标志的数据包–三次握手–服务端
2、四次挥手
客户端-发送一个 FIN用来关闭客户端到服务器的数据传送 服务器-收到这个 FIN它发回一 个 ACK确认序号为收到的序号加1 。和 SYN 一样一个 FIN 将占用一个序号 服务器-关闭与客户端的连接发送一个FIN给客户端 客户端-发回 ACK 报文确认并将确认序号设置为收到序号加1
2TCP四种计时器
1、重传计时器 当TCP发送报文段时就创建该特定报文段的重传计时器 。
可能发生两种情况 a在计时器截止时间之前收到确认撤销计时 b计时器截止期到重传报文段计时器复位。 2、坚持计时器 为了对付零窗口大小通知 当坚持计时器期限到时发送TCP就发送一个特殊的报文段 叫做 探测报文段 。 坚持计时器的值设置为重传时间的数值发送探测报文段将坚持计时器的值加倍和复位直到这个值增大到门限值 通常是60秒 为止则每隔60秒就发送一个探测报文段直到窗口重新打开。 3、保活计时器 防止在两个TCP之间的连接出现长时期的空闲。 保活计时器 通常设置为2小时过了2小时没有收到客户的信息发送探测报文段。若发送了10个探测报文段每一个相隔75秒还没有响应就假定客户出了故障因而就终止该连接。 4、时间等待计时器 时间等待计时器是在连接终止期间使用的 。 在时间等待期间中连接还处于一种中间过渡状态。这就可以使重复的FIN报文段可以到达目的站因而可将其丢弃。 这个计时器的值 通常设置为一个报文段的寿命期待值的两倍 。
3ARQ协议
自动重传请求Automatic Repeat-reQuestARQ是OSI模型中数据链路层和传输层的错误纠正协议之一。它通过使用确认和超时这两个机制在不可靠服务的基础上实现可靠的信息传输。
1、停止等待ARQ协议 停止等待协议是为了实现可靠传输的它的基本原理就是每发完一个分组就停止发送等待对方确认回复ACK。 在停止等待协议中若接收方收到重复分组就丢弃该分组但同时还要发送确认 优点 简单
缺点 信道利用率低等待时间长
2、连续ARQ协议 连续 ARQ 协议可提高信道利用率。发送方维持一个发送窗口凡位于发送窗口内的分组可以连续发送出去而不需要等待对方确认。接收方一般采用累计确认对按序到达的最后一个分组发送确认表明到这个分组为止的所有分组都已经正确收到了。
优点 信道利用率高容易实现即使确认丢失也不必重传。
缺点 不能向发送方反映出接收方已经正确收到的所有分组的信息。
4拥塞控制
1、拥塞
网络中某一资源的需求超过了该资源所能提供的可用部分网络的性能就要变坏
2、拥塞控制
为了防止过多的数据注入到网络中这样就可以使网络中的路由器或链路不致过载。
3、拥塞控制与流量控制
拥塞控制是一个全局性的过程涉及到所有的主机所有的路由器以及与降低网络传输性能有关的所有因素。
流量控制往往是点对点通信量的控制是个端到端的问题。流量控制所要做到的就是抑制发送端发送数据的速率以便使接收端来得及接收。
4、拥塞窗口
为了进行拥塞控制TCP 发送方要维持一个 拥塞窗口(cwnd) 的状态变量。拥塞控制窗口的大小取决于网络的拥塞程度并且动态变化。发送方让自己的发送窗口取为拥塞窗口和接收方的接受窗口中较小的一个。
5、TCP拥塞控制四种算法
慢开始 开始发送数据时如果把大量数据字节注入到网络可能会引起网络阻塞因为还不知道网络的符合情况。cwnd初始值为1每经过一个传播轮次cwnd加倍。 拥塞避免 拥塞避免算法的思路是让拥塞窗口cwnd缓慢增大即每经过一个往返时间RTT就把发送放的cwnd加1. 快重传、快恢复 在 TCP/IP 中快速重传和恢复fast retransmit and recoveryFRR是一种拥塞控制算法它能快速恢复丢失的数据包。
在网络层可以使路由器采用适当的分组丢弃策略如主动队列管理 AQM以减少网络拥塞的发生。
5TCP,UDP 协议的区别 四、Http
1状态码 常见的HTTP相应状态码 200请求被正常处理 204请求被受理但没有资源可以返回 206客户端只是请求资源的一部分服务器只对请求的部分资源执行GET方法相应报文中通过Content-Range指定范围的资源。 301永久性重定向 302临时重定向 303与302状态码有相似功能只是它希望客户端在请求一个URI的时候能通过GET方法重定向到另一个URI上 304发送附带条件的请求时条件不满足时返回与重定向无关 307临时重定向与302类似只是强制要求使用POST方法 400请求报文语法有误服务器无法识别 401请求需要认证 403请求的对应资源禁止被访问 404服务器无法找到对应资源 500服务器内部错误 503服务器正忙
2HTTP长连接,短连接
在HTTP/1.0中默认使用短连接。
而从HTTP/1.1起默认使用长连接用以保持连接特性。使用长连接的HTTP协议会在响应头加入这行代码Connection:keep-alive
HTTP协议的长连接和短连接实质上是TCP协议的长连接和短连接。
3HTTP方法
GET 用于请求访问已经被URI统一资源标识符识别的资源可以通过URL传参给服务器 POST用于传输信息给服务器主要功能与GET方法类似但一般推荐使用POST方式。 PUT 传输文件报文主体中包含文件内容保存到对应URI位置。 HEAD 获得报文首部与GET方法类似只是不返回报文主体一般用于验证URI是否有效。 DELETE删除文件与PUT方法相反删除对应URI位置的文件。 OPTIONS查询相应URI支持的HTTP方法。
HTTP1.0定义了三种请求方法 GET, POST 和 HEAD方法 HTTP1.1新增了五种请求方法OPTIONS, PUT, DELETE, TRACE 和 CONNECT
4HTTP请求报文与响应报文格式
1、请求报文格式
a、请求行包含请求方法、URI、HTTP版本信息 b、请求首部字段 c、空行 d、请求内容实体
2、响应报文格式
a、状态行包含HTTP版本、状态码、状态码的原因短语 b、响应首部字段 c、空行 d、响应内容实体
5HTTP优化方案
1、TCP复用
TCP连接复用是将多个客户端的HTTP请求复用到一个服务器端TCP连接上而HTTP复用则是一个客户端的多个HTTP请求通过一个TCP连接进行处理。前者是负载均衡设备的独特功能而后者是HTTP 1.1协议所支持的新功能目前被大多数浏览器所支持。 2、内容缓存
将经常用到的内容进行缓存起来那么客户端就可以直接在内存中获取相应的数据了。 3、压缩
将文本数据进行压缩减少带宽 4、SSL加速SSL Acceleration
使用SSL协议对HTTP协议进行加密在通道内加密并加速 5、TCP缓冲
通过采用TCP缓冲技术可以提高服务器端响应时间和处理效率减少由于通信链路问题给服务器造成的连接负担。 五、HTTPS
HTTPS是身披SSL外壳的HTTP。HTTPS是一种通过计算机网络进行安全通信的传输协议经由HTTP进行通信利用SSL/TLS建立全信道加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证同时保护交换数据的隐私与完整性。
PS:TLS是传输层加密协议前身是SSL协议由网景公司1995年发布有时候两者不区分。 1HTTPS工作原理 1、首先HTTP请求服务端生成证书客户端对证书的有效期、合法性、域名是否与请求的域名一致、证书的公钥RSA加密等进行校验 2、客户端如果校验通过后就根据证书的公钥的有效 生成随机数随机数使用公钥进行加密RSA加密 3、消息体产生的后对它的摘要进行MD5或者SHA1算法加密此时就得到了RSA签名 4、发送给服务端此时只有服务端RSA私钥能解密。 5、解密得到的随机数再用AES加密作为密钥此时的密钥只有客户端和服务端知道。 五、问题
1为什么要三次握手 三次握手的目的是建立可靠的通信信道。主要防止已经失效的连接请求报文突然又传送到了服务器从而产生错误。
第一次握手Client 什么都不能确认Server 确认了对方发送正常自己接收正常
第二次握手Client 确认了自己发送、接收正常对方发送、接收正常Server 确认了对方发送正常自己接收正常
第三次握手Client 确认了自己发送、接收正常对方发送、接收正常Server 确认了自己发送、接收正常对方发送、接收正常
所以三次握手就能确认双发收发功能都正常缺一不可。
2为什么要传回 SYN
接收端传回发送端所发送的 SYN 是为了告诉发送端我接收到的信息确实就是你所发送的信号了
3传了 SYN,为啥还要传 ACK
双方通信无误必须是两者互相发送信息都无误。传了 SYN证明发送方到接收方的通道没有问题但是接收方到发送方的通道还需要 ACK 信号来进行验证。
4为什么要四次挥手
任何一方都可以在数据传送结束后发出连接释放的通知待对方确认后进入半关闭状态。当另一方也没有数据再发送的时候则发出连接释放通知对方确认后就完全关闭了TCP连接。
5为什么客户端最后还要等待2MSL
MSLMaximum Segment LifetimeTCP允许不同的实现可以设置不同的MSL值。
第一保证客户端发送的最后一个ACK报文能够到达服务器。
第二防止类似与“三次握手”中提到了的“已经失效的连接请求报文段”出现在本连接中。 6如果已经建立了连接但是客户端突然出现故障了怎么办 TCP还设有一个保活计时器。服务器每收到一次客户端的请求后都会重新复位这个计时器时间通常是设置为2小时若两小时还没有收到客户端的任何数据服务器就会发送一个探测报文段以后每隔75秒发送一次。若一连发送10个探测报文仍然没反应服务器就认为客户端出了故障接着就关闭连接。 7TCP 协议如何保证可靠传输
1、应用数据被分割成 TCP 认为最适合发送的数据块。 2、CP 给发送的每一个包进行编号接收方对数据包进行排序把有序数据传送给应用层。 3、校验和 TCP 将保持它首部和数据的检验和。 4、TCP 的接收端会丢弃重复的数据。
5、流量控制 TCP 利用滑动窗口实现流量控制 6、拥塞控制 当网络拥塞时减少数据的发送。
7、ARQ协议 也是为了实现可靠传输的它的基本原理就是每发完一个分组就停止发送等待对方确认在收到确认后再发下一个分组。 8、超时重传 当 TCP 发出一个段后它启动一个定时器等待目的端确认收到这个报文段
8HTTP是不保存状态的协议,如何保存用户状态? HTTP 是一种不保存状态即无状态stateless协议。也就是说 HTTP 协议自身不对请求和响应之间的通信状态进行保存。那么我们保存用户状态呢Session 机制的存在就是为了解决这个问题Session 的主要作用就是通过服务端记录用户的状态。典型的场景是购物车当你要添加商品到购物车的时候系统不知道是哪个用户操作的因为 HTTP 协议是无状态的。服务端给特定的用户创建特定的 Session 之后就可以标识这个用户并且跟踪这个用户了一般情况下服务器会在一定时间内保存这个 Session过了时间限制就会销毁这个Session。
在服务端保存 Session 的方法很多最常用的就是内存和数据库(比如是使用内存数据库redis保存)。既然 Session 存放在服务器端那么我们如何实现 Session 跟踪呢大部分情况下我们都是通过在 Cookie 中附加一个 Session ID 来方式来跟踪。
9Cookie 被禁用怎么办?
最常用的就是利用 URL 重写把 Session ID 直接附加在URL路径的后面。
10Cookie的作用是什么?和Session有什么区别 Cookie 和 Session都是用来跟踪浏览器用户身份的会话方式但是两者的应用场景不太一样。
Cookie 一般用来保存用户信息 。
Cookie 数据保存在客户端(浏览器端)Session 数据保存在服务器端。相对来说 Session 安全性更高。如果要在 Cookie 中存储一些敏感信息不要直接写入 Cookie 中最好能将 Cookie 信息加密然后使用到的时候再去服务器端解密。
11 HTTP 1.0和HTTP 1.1的主要区别是什么?
HTTP1.0最早在网页中使用是在1996年
HTTP1.1在1999年才开始广泛应用于现在的各大浏览器网络请求中同时HTTP1.1也是当前使用最为广泛的HTTP协议。
主要区别主要体现在
1、长连接
在HTTP/1.0中默认使用的是短连接也就是说每次请求都要重新建立一次连接。HTTP 1.1起默认使用长连接 ,默认开启Connection keep-alive。
HTTP/1.1的持续连接有非流水线方式和流水线方式 。流水线方式是客户在收到HTTP的响应报文之前就能接着发送新的请求报文。与之相对应的非流水线方式是客户在收到前一个响应后才能发送下一个请求。 2、错误状态响应码
在HTTP1.1中新增了24个错误状态响应码如409Conflict表示请求的资源与资源的当前状态发生冲突410Gone表示服务器上的某个资源被永久性的删除。 3、缓存处理
在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准HTTP1.1则引入了更多的缓存控制策略例如Entity tagIf-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。 4、带宽优化及网络连接的使用
HTTP1.0中存在一些浪费带宽的现象例如客户端只是需要某个对象的一部分而服务器却将整个对象送过来了并且不支持断点续传功能HTTP1.1则在请求头引入了range头域它允许只请求资源的某个部分即返回码是206Partial Content 12URI和URL的区别是什么 URI(Uniform Resource Identifier) 是统一资源标志符可以唯一标识一个资源。 URL(Uniform Resource Location) 是统一资源定位符可以提供该资源的路径。它是一种具体的 URI即 URL 可以用来标识一个资源而且还指明了如何 locate 这个资源。 URI的作用像身份证号一样URL的作用更像家庭住址一样。URL是一种具体的URI它不仅唯一标识资源而且还提供了定位该资源的信息。
13 HTTP 和 HTTPS 的区别 1、端口
HTTP的URL由“http://”起始且默认使用端口80
HTTPS的URL由“https://”起始且默认使用端口443
2、安全性和资源消耗
HTTP协议运行在TCP之上所有传输的内容都是明文客户端和服务器端都无法验证对方的身份。
HTTPS是运行在SSL/TLS之上的HTTP协议SSL/TLS 运行在TCP之上。所有传输的内容都经过加密加密采用对称加密但对称加密的密钥用服务器方的证书进行了非对称加密。 对称加密密钥只有一个加密解密为同一个密码且加解密速度快典型的对称加密算法有DES、AES等 非对称加密密钥成对出现加密解密使用不同密钥相对对称加密速度较慢典型的非对称加密算法有RSA、DSA等
14GET和POST有什么区别 1、数据传输方式不同
GET请求通过URL传输数据而POST的数据通过请求体传输。 2、安全性不同
POST的数据因为在请求主体内所以有一定的安全性保证而GET的数据在URL中通过历史记录缓存很容易查到数据信息。 5、数据类型不同
GET只允许 ASCII 字符而POST无限制 6、GET无害
刷新、后退等浏览器操作GET请求是无害的POST可能重复提交表单 7、特性不同
GET是安全这里的安全是指只读特性就是使用这个方法不会引起服务器状态变化且幂等幂等的概念是指同一个请求方法执行多次和仅执行一次的效果完全相同而POST是非安全非幂等
15PUT和POST都是给服务器发送新增资源有什么区别 PUT 和POST方法的区别是,PUT方法是幂等的连续调用一次或者多次的效果相同无副作用而POST方法是非幂等的。
除此之外还有一个区别通常情况下PUT的URI指向是具体单一资源而POST可以指向资源集合。
16PUT和PATCH都是给服务器发送修改资源有什么区别 PUT和PATCH都是更新资源而PATCH用来对已知资源进行局部更新。
17同样是重定向307303302的区别 302是http1.0的协议状态码在http1.1版本的时候为了细化302状态码又出来了两个303和307。
303明确表示客户端应当采用get方法获取资源他会把POST请求变为GET请求进行重定向。 307会遵照浏览器标准不会从post变为get
18HTTP2相对于HTTP1.x有什么优势和特点 1、二进制分帧 帧HTTP/2 数据通信的最小单位消息指 HTTP/2 中逻辑上的 HTTP 消息。
流存在于连接中的一个虚拟通道。流可以承载双向消息每个流都有一个唯一的整数ID
HTTP/2 采用二进制格式传输数据而非 HTTP 1.x 的文本格式二进制协议解析起来更高效。
2、服务器推送 服务端可以在发送页面HTML时主动推送其它资源而不用等到浏览器解析到相应位置发起请求再响应
服务端可以主动推送客户端也有权利选择是否接收。如果服务端推送的资源已经被浏览器缓存过浏览器可以通过发送RST_STREAM帧来拒收。主动推送也遵守同源策略服务器不会随便推送第三方资源给客户端。
3、头部压缩 HTTP/1.x会在请求和响应中中重复地携带不常改变的、冗长的头部数据给网络带来额外的负担。
HTTP/2在客户端和服务器端使用“首部表”来跟踪和存储之前发送的键值对对于相同的数据不再通过每次请求和响应发送 首部表在HTTP/2的连接存续期内始终存在由客户端和服务器共同渐进地更新; 每个新的首部键值对要么被追加到当前表的末尾要么替换表中之前的值。 你可以理解为只发送差异数据而不是全部发送从而减少头部的信息量
4、多路复用 HTTP 1.x 中如果想并发多个请求必须使用多个 TCP 链接且浏览器为了控制资源还会对单个域名有 6-8个的TCP链接请求限制。
HTTP2中
同域名下所有通信都在单个连接上完成。 单个连接可以承载任意数量的双向数据流。 数据流以消息的形式发送而消息又由一个或多个帧组成多个帧之间可以乱序发送因为根据帧首部的流标识可以重新组装 19HTTP的keep-alive是干什么的 在早期的HTTP/1.0中每次http请求都要创建一个连接而创建连接的过程需要消耗资源和时间为了减少资源消耗缩短响应时间就需要重用连接。在后来的HTTP/1.0中以及HTTP/1.1中引入了重用连接的机制就是在http请求头中加入Connection: keep-alive来告诉对方这个请求响应完成后不要关闭下一次还用这个请求继续交流。协议规定HTTP/1.0如果想要保持长连接需要在请求头中加上Connection: keep-alive。
keep-alive的优点
较少的CPU和内存的使用由于同时打开的连接的减少了 允许请求和应答的HTTP管线化 降低拥塞控制 TCP连接减少了 减少了后续请求的延迟无需再进行握手 报告错误无需关闭TCP连
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84117.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!