当前位置: 首页 > news >正文 一个ip地址上可以做几个网站公司注册网上核名通道 news 2025/10/29 0:39:33 一个ip地址上可以做几个网站,公司注册网上核名通道,建设的网站别人登录密码,拉新接单网0.OSI七层模型 自己的理解#xff1a;应用层#xff1a;生成HTTP请求报文-----表示层#xff1a;将请求报文转换成适合网络传输的数据格式#xff0c;加密压缩编码等-----会话层#xff1a;管理两个应用程序之间的会话#xff0c;包括连接中断等------传输层#xff1a…0.OSI七层模型 自己的理解应用层生成HTTP请求报文-----表示层将请求报文转换成适合网络传输的数据格式加密压缩编码等-----会话层管理两个应用程序之间的会话包括连接中断等------传输层实现端到端通信主机到主机但它的职责不仅仅是主机到主机之间的通信还需要确保数据能够被正确的应用程序接收。所以将数据分成更小的数据段 适应MTU限制分段可以确保数据能够在网络中传输而不会因为过大而被拒绝传输。提高可靠性分段减少了重传的开销提高了错误处理的效率。流量与拥塞控制分段有助于动态调整传输速度避免网络拥塞。网络兼容性分段提高了数据在不同类型网络中的传输兼容性。 并分别加上端口号以使其到达正确的应用程序------网络层给数据段加上网络IP地址并且选择最佳路由------数据链路层可靠传输、差错检测、封装成帧-----物理层将数据转换成适合在网线中传输的电信号。 另外数据链路层也会和传输层一样进行校验、流量控制但是针对的对象、作用是不一样的。传输层实现的是端到端的通信数据链路层实现的则是点对点的通信。点对点一般指设备相连是局部的而端到端则可能是跨越了全局网络中间会经历多次路由器和交换机。 另外物理层是用什么传输介质、什么物理接口、什么信号表示0和1解决了两台计算机可以通过信号来传输比特0或1。数据链路层是如何标识MAC地址如何从比特流中区分地址、数据如何协调主机争用主线实现了分组在一个网络上传输。网络层如何标识IP地址如何路由选择解决了在多个网络上传输的问题。传输层确定哪个进程通信解决传输错误问题。应用层制定网络协议编写网络应用来实现特定的网络功能。 通过IP地址确定目标主机所在的局域网然后通过ARP协议把IP地址对应的MAC地址找到然后在同一片网络中找到目标主机。IP地址的前三个数标识网络后一个数标识主机。 OSI七层模型的功能概述 物理层负责物理设备之间的原始比特流的传输包括电缆、网卡等硬件。它定义了接口类型、电压、电流等物理特性。 数据链路层负责节点之间的可靠传输包括错误检测与纠正、帧的创建与识别、流量控制等。数据链路层将数据封装成帧并通过物理层传输。 网络层负责数据包的路由与转发决定数据如何从源节点到达目标节点。典型的协议如IPInternet Protocol。 传输层提供端到端的通信服务确保数据的完整性和可靠性。主要协议包括TCP传输控制协议和UDP用户数据报协议。 会话层管理会话建立、维持和终止通信会话确保数据交换的有序性。 表示层处理数据格式的转换确保发送端和接收端能够理解数据的格式。它涉及数据的加密解密、压缩解压等。 应用层直接为用户或应用程序提供网络服务如电子邮件、文件传输等。应用层是用户与网络的接口。 通过例子说明七层模型的作用 假设你在计算机上使用浏览器访问一个网站比如打开一个网页从输入网址到网页显示在屏幕上的过程可以说明OSI模型各层的作用 应用层你在浏览器中输入网址并点击“回车”浏览器作为应用层生成一个HTTP请求这个请求包含你想要访问的网页地址。 表示层在发送HTTP请求之前表示层负责将请求数据转换为可以被网络传输的格式可能还会进行数据的压缩和加密。 会话层表示层之后会话层建立一个通信会话这个会话保证请求和响应之间的数据交换有序且同步。 传输层会话层之后传输层将数据分成更小的数据段如TCP段并为每个数据段加上端口号以确保数据能够传输到正确的应用程序。 网络层传输层之后网络层根据目标网址的IP地址通过DNS解析获取为每个数据段加上源和目标IP地址并选择最优路径将数据段发送到目标服务器。 数据链路层网络层之后数据链路层将数据段封装成帧并通过物理介质如网线传输。数据链路层还负责检测和纠正物理层传输中可能出现的错误。 物理层最终物理层将数据帧转化为电信号通过网络电缆或无线信号发送到目标服务器的物理设备。 目标服务器接收到这些信号后会逆向处理这些层从物理层到应用层将最终的HTTP响应发送回你的浏览器浏览器再将网页显示在屏幕上。 1.UDP头部格式 UDP的头部比较简单只有8个字节这也是为什么UDP不能像TCP那样实现可靠传输的原因。源端口和目标端口表示数据传输的来源和去向包长度表示数据报文的总长度包含了头部和数据部分方便接收方正确地处理数据。检验和则是用于验证UDP数据报在传输过程中是否发生了错误。它帮助确保数据的完整性。 2.TCP头部格式 TCP的头部一般是20个字节复杂的头部决定了它的可靠传输。校验和保证了数据的完整性和错误检测序列号进行了数据的顺序控制ACK实现了重传机制确认和重传滑动窗口进行流量控制拥塞控制三次挥手和四次握手进行连接管理。 序列号解决网络乱序问题确认应答号解决丢包问题窗口大小用来进行流量控制控制位(ACK确认和重传、FIN断开连接、SYN请求连接。 3.IP地址 IPV4地址四位主机号全为0的是网络地址全为1的是广播地址。A类第一位范围1-126127是本地环回测试地址。后三位范围是1-2^24-1全1表示广播地址。 网络号是IP地址中的一部分用于标识某个特定的网络。相同网络号的设备处于同一网络中。主机号是IP地址中的另一部分用于标识网络内的具体设备主机。网络地址是指IP地址中主机号部分全为0的地址它标识的是整个网络而不是网络中的具体设备。广播地址是指IP地址中主机号部分全为1的地址用于向网络中的所有设备发送信息。 4.流量控制 滑动窗口机制中的流量控制主要依赖接收方的接收窗口大小来调节数据传输速率。 接收窗口大小的动态调整 接收方在接收到数据包后会根据当前缓冲区的可用空间和处理能力来决定是否调整接收窗口的大小。如果接收方的缓冲区空间充足且处理能力良好它可能会增大接收窗口的大小允许发送方发送更多的数据包。反之如果接收方的缓冲区接近满载它会缩小接收窗口以减缓发送方的数据传输速度。 通过ACK通知窗口大小的变化 每当接收方收到数据包并处理完毕后它会发送一个ACKAcknowledgment确认消息回给发送方。这个ACK消息不仅确认了已成功接收的数据包还携带了一个重要的字段接收窗口大小Receive Window Size。这个字段明确告知发送方接收方当前还能接收的数据量是多少。比如如果接收窗口大小是500字节发送方就知道它最多还能发送500字节的数据而不必等待进一步的ACK。如果接收方的缓冲区快要满了它会在ACK消息中报告一个较小的接收窗口大小通知发送方降低数据传输速率避免缓冲区溢出。 5.拥塞控制 慢开始、拥塞避免、快重传、快恢复。 TCP发送方一开始使用慢开始算法让拥塞窗口值从1开始按指数规律增大当拥塞窗口值增大到慢开始门限值时执行拥塞避免算法让拥塞窗口值按线性加1的规律增大当发生超时重传时就判断网络很可能出现了拥塞这时将慢开始门限值更新为发生拥塞时拥塞窗口值的一半并将拥塞窗口值减少为1并重新执行慢开始算法拥塞窗口值又从1开始按指数规律增大当增大到了新的慢开始门限值时停止使用慢开始算法执行拥塞避免算法。 后来又加入了快重传和快恢复快重传是指收到三个重复确认。快恢复是指快重传之后门限值更新发生拥塞时拥塞窗口值的一半并将拥塞窗口值也更新为发生拥塞时拥塞窗口值的一半而不是更新为1。 6.三次握手 第一次握手发送端向接收端发送请求连接SYN接收端收到并且得知发送端具有发送能力。第二次握手接收端向发送端发送确认连接ACK发送端得知接收端具有接受能力并且向发送端发送请求连接发送端收到得知接收端具有发送能力。第三次握手发送端向接收端发送确认连接接收端得知发送端具有接收能力。这样一来两端都知道对方具有发送和接收能力两端建立连接可以正常的传送数据。三次握手才能确认双方的接收和发送能力是否正常。 如果是两次握手如果某次发送的报文因为网络延误了又重新发送了一次连接延误的发送在重新的连接释放之后才到达服务端这时候服务端会认为发送端又发送了一次连接请求于是向发送端发送确认请求同意建立连接但客户端实际并未发送所以忽略请求于是服务端一直等待浪费资源。 不采用两次或者四次避免历史连接、避免资源浪费、确认对方收发能力。 7.四次挥手 通过四次挥手的过程TCP协议确保了双方都能够正常地关闭连接并且所有未完成的数据传输都能顺利结束。第一次挥手客户端发送FIN表示没有数据要发送了。第二次挥手服务器发送ACK确认收到FIN请求。第三次挥手服务器发送FIN表示没有数据要发送了。第四次挥手客户端发送ACK确认收到服务器的FIN请求连接关闭。 8.HTTP请求方法 应用层产生的请求报文里面会含有请求行、请求头、请求体post会有get没有 请求行包括请求方法、请求 URI 和 HTTP 版本。请求头提供关于请求的附加信息例如主机名、用户代理、接受的内容类型等。请求体包含要发送给服务器的数据适用于需要提交数据的请求方法如 POST 和 PUT。 GET POST PUT PATCH TRACE OPTIONS CONNECT HEAD DELETE 9.HTTP状态码 1XX 信息性状态码 接收的请求正在处理正常继续 2XX 成功状态码 请求正常处理完毕 200 204 206 3XX 重定向状态码 资源位置发生变化需要新的URL 301 302 304 4XX 客户端错误状态码 服务端无法处理客户端的请求400 403 404 5XX 服务端错误状态码 服务端在处理请求时自身错误 500 501 502 503 10.HTTP协议的几个版本 HTTP1.0 短连接请求响应模型多媒体 (支持文本、音视频等)简单易用扩展性但是短连接导致效率低、延迟高、浪费资源无持久连接导致没法在同一个连接中处理多个请求 HTTP1.1 持久连接请求管道化缓存控制性能提升带宽利用率高更灵活的请求处理但是管道化局限队头阻塞 HTTP2 二进制格式头部压缩多路复用(流)服务器推送但复杂性增加基于TCP(仍受到握手、丢包重传等限制) HTTP3 基于QUIC协议更快的连接建立改进的流量控制内建的加密性能卓越但是依赖基础设施实现复杂。QUIC允许对每个流单独进行流量控制而不仅仅是针对整个连接进行流量控制。这样可以更好地适应不同流的数据传输需求提高传输效率。 11.GET和POST的区别 1. 用途GET用来请求数据POST修改/提交数据 2. 数据传输方式URL传递请求体传递 3. 安全性URL上数据可见请求体内稍微安全一些但是都不安全HTTP明文 4. 幂等性GET每次请求都会得到相同的数据POST每次创建则会产生不同的资源 5. 数据大小限制URL长度限制请求体可以大数据 6. 缓存GET每次请求可以缓存下来方便下次请求POST每次创建不同不缓存 7. 语义安全GET修改服务器数据POST不修改。 12.HTTP缓存方式 1. 强制缓存HTTP1.0 Expires 头部字段绝对时间HTTP1.1 Cache-Control 头部字段更灵活 优点是在缓存有效期内浏览器无需与服务器通信直接使用本地缓存资源提升加载速度。缺点是如果资源在缓存期间发生了变化用户可能无法及时获取到最新的内容。 2. 协商缓存是指浏览器每次请求资源时都会先向服务器询问资源是否已经更新如果没有更新则继续使用缓存。如果更新了则下载新的资源。 优点是既能减少不必要的数据传输又能保证获取最新的资源。缺点是相比强制缓存每次请求都需要与服务器进行验证带来了一定的延迟。 13.HTTP和HTTPS 区别安全、连接、端口、证书 1. HTTP超文本传输协议明文不安全。HTTPS在TCP和HTTP之间加入了SSL/TLS安全协议使得报文能够加密安全传输。 2. HTTP只需要三次握手就能建立连接HTTPS则还需要SSL/TLS握手。 3. 端口号80与443。 4. HTTPS需要向CA申请身份证书来保证服务器是安全可靠的。 14.HTTPS能解决什么问题 信息加密解决安全机密校验机制解决篡改信息身份证书解决不可信服务器。 15.为什么每次建立 TCP 连接初始化的序列号要求不一样呢 主要原因有两个方面 为了防止历史报文被下一个相同四元组的连接接收主要方面为了安全性防止黑客伪造的相同序列号的 TCP 报文被对方接收 客户端和服务端建立一个 TCP 连接在客户端发送数据包被网络阻塞了然后超时重传了这个数据包而此时服务端设备断电重启了之前与客户端建立的连接就消失了于是在收到客户端的数据包的时候就会发送 RST 报文。紧接着客户端又与服务端建立了与上一个连接相同四元组的连接在新连接建立完成后上一个连接中被网络阻塞的数据包正好抵达了服务端刚好该数据包的序列号正好是在服务端的接收窗口内所以该数据包会被服务端正常接收就会造成数据错乱。可以看到如果每次建立连接客户端和服务端的初始化序列号都是一样的话很容易出现历史报文被下一个相同四元组的连接接收的问题。 16.第一次、第二次、第三次握手丢失了分别会发生什么 第一次握手丢失超时重传而且重传的 SYN 报文的序列号都是一样的。每次等待几秒下一次重传的等待时间是这次的两倍直至重传上限次数断开连接。 第二次握手丢失客户端和服务端都会重传客户端会重传 SYN 报文也就是第一次握手最大重传次数由 tcp_syn_retries内核参数决定服务端会重传 SYN-ACK 报文也就是第二次握手最大重传次数由 tcp_synack_retries 内核参数决定。 第三次握手丢失ACK 报文是不会有重传的当 ACK 丢失了就由对方重传对应的报文。因为这个第三次握手的 ACK 是对第二次握手的 SYN 的确认报文所以当第三次握手丢失了如果服务端那一方迟迟收不到这个确认报文就会触发超时重传机制重传 SYN-ACK 报文直到收到第三次握手或者达到最大重传次数。 17.什么是 SYN 攻击如何避免 SYN 攻击 半连接队列服务器第一次收到客户端的SYN之后就会处于SYN_RCVD状态此时双方还没有完全建立连接服务器会把这种状态下的请求连接放在一个队列里称为半连接队列。完成三次握手建立起连接的就会放入全连接队列中。 SYN攻击是客户端短时间内伪造大量不存在的IP地址并向服务器不断发送SYN包服务器回复确认包并且等待客户端确认由于源地址不存在因此服务器不断重发直至超时这些伪造的SYN包将长时间占用半连接队列导致正常的SYN请求因队列满而丢弃从而引起网络拥塞甚至瘫痪。 防御方法缩短超时时间增大半连接队列防火墙过滤SYN Cookies(是一种在服务器接收到 SYN 请求时不立即为其分配资源而是将请求信息编码到 TCP 序列号中的技术。只有当客户端发送 ACK 确认时服务器才会验证这个序列号并为连接分配资源。)SYN 速率限制。 18.四次挥手丢失分别会发生什么 第一次挥手丢失客户端迟迟收不到被动方的 ACK 的话触发超时重传机制重传 FIN 报文重发次数由 tcp_orphan_retries 参数控制。如果还是没能收到服务端的第二次挥手ACK报文那么客户端就会断开连接。 第二次挥手丢失ACK 报文是不会重传的所以如果服务端的第二次挥手丢失了客户端就会触发超时重传机制重传 FIN 报文直到收到服务端的第二次挥手或者达到最大的重传次数。 第三次挥手丢失如果迟迟收不到这个 ACK服务端就会重发 FIN 报文重发次数仍然由 tcp_orphan_retries 参数控制这与客户端重发 FIN 报文的重传次数控制方式是一样的。 第四次挥手丢失如果第四次挥手的 ACK 报文没有到达服务端服务端就会重发 FIN 报文重发次数仍然由前面介绍过的 tcp_orphan_retries 参数控制。 也就是说四次丢失导致的结果都是FIN重传。 19.为什么 TIME_WAIT 等待的时间是 2MSL 四次挥手开始时客户端和服务器都是连接已建立状态客户端向服务器发送一个终止信号FIN进入终止等待1服务器收到后发送一个确认信号ACK进入关闭等待状态客户端收到后进入终止等待2整个系统进入半连接状态服务器向客户端发送FIN和ACKACK是对第一次挥手的重复确认进入最后确认状态客户端收到后发送ACK进入时间等待状态(2MSL)服务器收到后进入关闭状态2MSL之后客户端也进入关闭状态。至于为什么是2MSL2倍的最大报文生存时间是为了确保ACK能够到达服务器 以使其进入关闭状态如果丢失能够重传时间重新计时。 需要 TIME-WAIT 状态主要是两个原因 防止历史连接中的数据被后面相同四元组的连接错误的接收这个时间足以让两个方向上的数据包都被丢弃使得原来连接的数据包在网络中都自然消失再出现的数据包一定都是新建立连接所产生的。保证「被动关闭连接」的一方能被正确的关闭。 20.一些连接问题 服务器出现大量 TIME_WAIT 状态的原因有哪些说明服务器主动断开了很多 TCP 连接什么场景下服务端会主动断开连接呢第一个场景HTTP 没有使用长连接第二个场景HTTP 长连接超时第三个场景HTTP 长连接的请求数量达到上限。 服务器出现大量 CLOSE_WAIT 状态的原因有哪些 如果已经建立了连接但是客户端突然出现故障了怎么办保活机制定义一个时间段在这个时间段内如果没有任何连接相关的活动TCP 保活机制会开始作用每隔一个时间间隔发送一个探测报文该探测报文包含的数据非常少如果连续几个探测报文都没有得到响应则认为当前的 TCP 连接已经死亡系统内核将错误信息通知给上层应用程序。 如果已经建立了连接但是服务端的进程崩溃会发生什么TCP 的连接信息是由内核维护的所以当服务端的进程崩溃后内核需要回收该进程的所有 TCP 连接资源于是内核会发送第一次挥手 FIN 报文后续的挥手过程也都是在内核完成并不需要进程的参与所以即使服务端的进程退出了还是能与客户端完成 TCP 四次挥手的过程。 保活机制根本上是断开空闲的TCP连接的。如果两端的 TCP 连接一直没有数据交互达到了触发 TCP 保活机制的条件那么内核里的 TCP 协议栈就会发送探测报文。 TCP 连接一端断电和进程崩溃有什么区别一端断电触发保活机制进程崩溃不同。TCP 的连接信息是由内核维护的所以当服务端的进程崩溃后内核需要回收该进程的所有 TCP 连接资源于是内核会发送第一次挥手 FIN 报文后续的挥手过程也都是在内核完成并不需要进程的参与所以即使服务端的进程退出了还是能与客户端完成 TCP四次挥手的过程。 拔掉网线几秒再插回去原本的 TCP 连接还存在吗如果有数据传输只要及时就会赶上超时重传。如果没有就触发保活机制没有及时的话会断开连接。 HTTPS 中 TLS 和 TCP 能同时握手吗不管 TLS 握手次数如何都得先经过 TCP 三次握手后才能进行因为 HTTPS 都是基于 TCP 传输协议实现的得先建立完可靠的 TCP 连接才能做 TLS 握手的事情。前两次握手并不能携带数据第三次可以。 TCP Keepalive 和 HTTP Keep-Alive 是一个东西吗 HTTP 的 Keep-Alive是由应用层用户态 实现的称为 HTTP 长连接TCP 的 Keepalive是由 TCP 层内核态 实现的称为 TCP 保活机制 TCP 协议有哪些缺陷主要有四个方面升级 TCP 的工作很困难TCP 建立连接的延迟TCP 存在队头阻塞问题网络迁移需要重新建立 TCP 连接。 服务端没有 listen客户端发起连接建立会发生什么服务端如果只 bind 了 IP 地址和端口而没有调用 listen 的话然后客户端对服务端发起了连接建立服务端会返回 RST 报文。 不使用 listen 可以建立 TCP 连接吗可以的客户端是可以自己连自己的形成连接TCP自连接也可以两个客户端同时向对方发出请求建立连接TCP同时打开这两个情况都有个共同点就是没有服务端参与也就是没有listen就能建立连接。 没有 accept能建立 TCP 连接吗就算不执行accept()方法三次握手照常进行并顺利建立连接。半连接队列SYN队列服务端收到第一次握手后会将sock加入到这个队列中队列内的sock都处于SYN_RECV 状态。全连接队列ACCEPT队列在服务端收到第三次握手后会将半连接队列的sock取出放到全连接队列中。队列里的sock都处于 ESTABLISHED状态。这里面的连接就等着服务端执行accept()后被取出了。建立连接的过程中根本不需要accept()参与执行accept()只是为了从全连接队列里取出一条连接。全连接队列icsk_accept_queue是个链表而半连接队列syn_table是个哈希表。出于效率考虑设计的复杂度尽量低。全连接队列服务端取走连接的过程中并不关心具体是哪个连接只要是个连接就行所以直接从队列头取就行了。这个过程算法复杂度为O(1)。半连接队列有一个第三次握手来了则需要从队列里把相应IP端口的连接取出哈希表那么查找半连接的算法复杂度就回到O(1)了。 总结 每一个socket执行listen时内核都会自动创建一个半连接队列和全连接队列。第三次握手前TCP连接会放在半连接队列中直到第三次握手到来才会被放到全连接队列中。accept方法只是为了从全连接队列中拿出一条连接本身跟三次握手几乎毫无关系。出于效率考虑虽然都叫队列但半连接队列其实被设计成了哈希表而全连接队列本质是链表。全连接队列满了再来第三次握手也会丢弃此时如果tcp_abort_on_overflow1还会直接发RST给客户端。半连接队列满了可能是因为受到了SYN Flood攻击可以设置tcp_syncookies绕开半连接队列。客户端没有半连接队列和全连接队列但有一个全局hash可以通过它实现自连接或TCP同时打开。 TCP 是一个可靠的传输协议那它一定能保证数据不丢失吗数据从发送端到接收端链路很长任何一个地方都可能发生丢包几乎可以说丢包不可避免。TCP只保证传输层的消息可靠性并不保证应用层的消息可靠性。 21.针对 TCP 应该如何 Socket 编程 没有 accept能建立 TCP 连接吗accpet 系统调用并不参与 TCP 三次握手过程它只是负责从 TCP 全连接队列取出一个已经建立连接的 socket用户层通过 accpet 系统调用拿到了已经建立连接的socket就可以对该 socket 进行读写操作了。 22.TCP的一些点 超时重传时间RTO要略微大于报文往返时间RTT. 三次同样的ACK就会触发快速重传。 窗口大小就是指无需等待确认应答而可以继续发送数据的最大值。 SYN 报文什么时候情况下会被丢弃1. 如果发现收到的数据包中时间戳不是递增的则表示该数据包是过期的就会直接丢弃这个数据包。2. 当服务器造成syn攻击就有可能导致 TCP 半连接队列满了这时后面来的 syn 包都会被丢弃。但是如果开启了syncookies 功能即使半连接队列满了也不会丢弃syn 包。3. 在服务端并发处理大量请求时如果 TCP accpet 队列过小或者应用程序调用 accept() 不及时就会造成 accpet 队列满了 这时后续的连接就会被丢弃这样就会出现服务端请求数量上不去的现象。 在 TCP 正常挥手过程中处于 TIME_WAIT 状态的连接收到相同四元组的 SYN 后会发生什么如果处于 TIME_WAIT 状态的连接收到「合法的 SYN 」后就会重用此四元组连接跳过 2MSL 而转变为 SYN_RECV 状态接着就能进行建立连接过程。如果处于 TIME_WAIT 状态的连接收到「非法的 SYN 」后就会再回复一个第四次挥手的 ACK 报文客户端收到后发现并不是自己期望收到确认号就回 RST 报文给服务端。RST标志用于强制关闭一个TCP连接。 23.TCP面向字节流粘包和拆包 TCP 是面向字节流的协议UDP 是面向报文的协议。是因为操作系统对 TCP 和 UDP 协议的发送方的机制不同。当用户消息通过 UDP 协议传输时操作系统不会对消息进行拆分每个 UDP 报文就是一个用户消息的边界。当用户消息通过 TCP 协议传输时消息可能会被操作系统分组成多个的 TCP 报文。因此我们不能认为一个用户消息对应一个 TCP 报文正因为这样所以 TCP 是面向字节流的协议。当两个消息的某个部分内容被分到同一个 TCP 报文时就是我们常说的 TCP 粘包问题这时接收方不知道消息的边界的话是无法读出有效的消息。粘包的问题出现是因为不知道一个用户消息的边界在哪所以解决办法是固定长度的消息、特殊字符作为边界、长度前缀、自定义协议来明确数据包的结构和边界。 24. 如何基于 UDP 协议实现可靠传输 TCP 可靠传输的特性序列号、确认应答、超时重传、流量控制、拥塞控制 QUIC 是如何实现可靠传输的 QUIC 通过单向递增的 Packet Number配合 Stream ID 与 Offset字段信息可以支持乱序确认而不影响数据包的正确组装摆脱了TCP 必须按顺序确认应答 ACK 的限制解决了 TCP 因某个数据包重传而阻塞后续所有待发送数据包的问题。 QUIC 是如何解决 TCP 队头阻塞问题的 QUIC 给每一个 Stream 都分配了一个独立的滑动窗口这样使得一个连接上的多个 Stream 之间没有依赖关系都是相互独立的各自控制的滑动窗口。 QUIC 是如何做流量控制的 Stream 级别的流量控制Stream 可以认为就是一条 HTTP 请求每个 Stream 都有独立的滑动窗口所以每个 Stream 都可以做流量控制防止单个 Stream 消耗连接Connection的全部接收缓冲。Connection 流量控制限制连接中所有 Stream 相加起来的总字节数防止发送方超过连接的缓冲容量。 QUIC 对拥塞控制改进 QUIC 是处于应用层的应用程序层面就能实现不同的拥塞控制算法不需要操作系统不需要内核支持。这是一个飞跃因为传统的 TCP 拥塞控制必须要端到端的网络协议栈支持才能实现控制效果。而内核和操作系统的部署成本非常高升级周期很长所以 TCP 拥塞控制算法迭代速度是很慢的。而 QUIC 可以随浏览器更新QUIC 的拥塞控制算法就可以有较快的迭代速度。TCP 更改拥塞控制算法是对系统中所有应用都生效无法根据不同应用设定不同的拥塞控制策略。但是因为 QUIC 处于应用层所以就可以针对不同的应用设置不同的拥塞控制算法这样灵活性就很高了。 QUIC 更快的连接建立 HTTP/3 的 QUIC 协议并不是与 TLS 分层而是QUIC 内部包含了 TLS它在自己的帧会携带 TLS 里的“记录”再加上 QUIC 使用的是 TLS1.3因此仅需 1 个 RTT 就可以「同时」完成建立连接与密钥协商甚至在第二次连接的时候应用数据包可以和 QUIC 握手信息连接信息 TLS 信息一起发送达到 0-RTT 的效果。 QUIC 是如何迁移连接的 基于 TCP 传输协议的 HTTP 协议由于是通过四元组源 IP、源端口、目的 IP、目的端口确定一条 TCP 连接。那么当移动设备的网络从 4G 切换到 WIFI 时意味着 IP 地址变化了那么就必须要断开连接然后重新建立 TCP 连接。QUIC 协议没有用四元组的方式来“绑定”连接而是通过连接 ID来标记通信的两个端点客户端和服务器可以各自选择一组 ID 来标记自己因此即使移动设备的网络变化后导致 IP 地址变化了只要仍保有上下文信息比如连接 ID、TLS 密钥等就可以“无缝”地复用原连接消除重连的成本没有丝毫卡顿感达到了连接迁移的功能。 文章转载自: http://www.morning.ylrxd.cn.gov.cn.ylrxd.cn http://www.morning.sfzwm.cn.gov.cn.sfzwm.cn http://www.morning.mrfjr.cn.gov.cn.mrfjr.cn http://www.morning.hffjj.cn.gov.cn.hffjj.cn http://www.morning.kgcss.cn.gov.cn.kgcss.cn http://www.morning.kjcfz.cn.gov.cn.kjcfz.cn http://www.morning.uytae.cn.gov.cn.uytae.cn http://www.morning.djpzg.cn.gov.cn.djpzg.cn http://www.morning.nfpkx.cn.gov.cn.nfpkx.cn http://www.morning.yqqxj1.cn.gov.cn.yqqxj1.cn http://www.morning.jqwpw.cn.gov.cn.jqwpw.cn http://www.morning.kltmt.cn.gov.cn.kltmt.cn http://www.morning.lpzyq.cn.gov.cn.lpzyq.cn http://www.morning.xlbtz.cn.gov.cn.xlbtz.cn http://www.morning.wmpw.cn.gov.cn.wmpw.cn http://www.morning.wgtr.cn.gov.cn.wgtr.cn http://www.morning.xlwpz.cn.gov.cn.xlwpz.cn http://www.morning.srwny.cn.gov.cn.srwny.cn http://www.morning.gkmwk.cn.gov.cn.gkmwk.cn http://www.morning.mmhaoma.com.gov.cn.mmhaoma.com http://www.morning.spfq.cn.gov.cn.spfq.cn http://www.morning.ghphp.cn.gov.cn.ghphp.cn http://www.morning.ykswq.cn.gov.cn.ykswq.cn http://www.morning.wffxr.cn.gov.cn.wffxr.cn http://www.morning.pzlhq.cn.gov.cn.pzlhq.cn http://www.morning.smpmn.cn.gov.cn.smpmn.cn http://www.morning.qytyt.cn.gov.cn.qytyt.cn http://www.morning.xcjbk.cn.gov.cn.xcjbk.cn http://www.morning.thzgd.cn.gov.cn.thzgd.cn http://www.morning.hgwsj.cn.gov.cn.hgwsj.cn http://www.morning.ptwqf.cn.gov.cn.ptwqf.cn http://www.morning.lxlzm.cn.gov.cn.lxlzm.cn http://www.morning.tdqhs.cn.gov.cn.tdqhs.cn http://www.morning.rqlqd.cn.gov.cn.rqlqd.cn http://www.morning.xjbtb.cn.gov.cn.xjbtb.cn http://www.morning.lqypx.cn.gov.cn.lqypx.cn http://www.morning.pswqx.cn.gov.cn.pswqx.cn http://www.morning.gmwqd.cn.gov.cn.gmwqd.cn http://www.morning.trkhx.cn.gov.cn.trkhx.cn http://www.morning.qkskm.cn.gov.cn.qkskm.cn http://www.morning.mjqms.cn.gov.cn.mjqms.cn http://www.morning.gnjtg.cn.gov.cn.gnjtg.cn http://www.morning.brcdf.cn.gov.cn.brcdf.cn http://www.morning.zmqb.cn.gov.cn.zmqb.cn http://www.morning.gczqt.cn.gov.cn.gczqt.cn http://www.morning.rjljb.cn.gov.cn.rjljb.cn http://www.morning.nfccq.cn.gov.cn.nfccq.cn http://www.morning.rqsr.cn.gov.cn.rqsr.cn http://www.morning.bcngs.cn.gov.cn.bcngs.cn http://www.morning.fwblh.cn.gov.cn.fwblh.cn http://www.morning.fjtnh.cn.gov.cn.fjtnh.cn http://www.morning.kggxj.cn.gov.cn.kggxj.cn http://www.morning.saastob.com.gov.cn.saastob.com http://www.morning.qxycf.cn.gov.cn.qxycf.cn http://www.morning.hdtcj.cn.gov.cn.hdtcj.cn http://www.morning.gpnfg.cn.gov.cn.gpnfg.cn http://www.morning.smygl.cn.gov.cn.smygl.cn http://www.morning.ftmp.cn.gov.cn.ftmp.cn http://www.morning.hdpcn.cn.gov.cn.hdpcn.cn http://www.morning.wqsjx.cn.gov.cn.wqsjx.cn http://www.morning.knpbr.cn.gov.cn.knpbr.cn http://www.morning.ltpzr.cn.gov.cn.ltpzr.cn http://www.morning.nqfxq.cn.gov.cn.nqfxq.cn http://www.morning.pbpcj.cn.gov.cn.pbpcj.cn http://www.morning.fqmcc.cn.gov.cn.fqmcc.cn http://www.morning.yrmpz.cn.gov.cn.yrmpz.cn http://www.morning.mrxqd.cn.gov.cn.mrxqd.cn http://www.morning.bmqls.cn.gov.cn.bmqls.cn http://www.morning.kndyz.cn.gov.cn.kndyz.cn http://www.morning.znqmh.cn.gov.cn.znqmh.cn http://www.morning.cttti.com.gov.cn.cttti.com http://www.morning.zkqwk.cn.gov.cn.zkqwk.cn http://www.morning.hqllx.cn.gov.cn.hqllx.cn http://www.morning.rgtp.cn.gov.cn.rgtp.cn http://www.morning.yqkxr.cn.gov.cn.yqkxr.cn http://www.morning.pxspq.cn.gov.cn.pxspq.cn http://www.morning.mlgsc.com.gov.cn.mlgsc.com http://www.morning.fbmjl.cn.gov.cn.fbmjl.cn http://www.morning.bgzgq.cn.gov.cn.bgzgq.cn http://www.morning.jqmqf.cn.gov.cn.jqmqf.cn 查看全文 http://www.tj-hxxt.cn/news/258092.html 相关文章: 公司申请网站建设的工作方案wordpress网页中添加3个音乐播放 网站开发与系统开发做淘宝客要建网站吗 学校网站建设状况做外贸如何访问国外网站 建网站权威机构公司官网建设方案 《两学一做 榜样》网站品牌设计包括哪些设计 word里网站的超链接怎么做超便宜的网站 网站免费做招生宣传语wordpress案例讲解 网站加视频播放设计怎么做的模块建站平台 知名网站制作公司建设网站需要多久 网站基本维护网络服务启动失败 宁远县做网站的哪一个做h5的网站好 做h5的网站页面设计临海制作网站公司 网页设计与网站制作上海工商查询网 网站平台建设电子商务营销活动 制作企业网站怎么做站长工具seo综合查询工具 做预算查价格的网站是哪个好可以做简单小活动的网站 东莞网站优化方法有哪些汉川网站推广服务 家用网络建网站网页制作工具分为哪两类 没有网站可以域名备案吗河北涿州建设局网站 常德建设网站多少钱西安网站建设瑞信 淘宝客为什么做网站谷德设计网百度百科 免费建站模板网站项目策划书模板范文 三峡建设管理有限公司网站自己做了个网站 如何做网站效果更好手机网站页面制作 唐山做网站上海城隍庙小吃推荐 北京营销型网站制作做程序的网站 公司网站怎么发布文章做电商网站公司简介 分析公司网站的开发策略个人flash网站 网站建设的主要作用有没有电脑做兼职的网站 大学 生免费商业网站设计疾控中心24小时咨询电话