当前位置: 首页 > news >正文 江苏电商网站开发表白网站制作代码 news 2025/11/1 13:46:18 江苏电商网站开发,表白网站制作代码,京东网站建设的基本情况,网站开发能做什么#x1f490;个人主页#xff1a;初晴~ #x1f4da;相关专栏#xff1a;计算机网络那些事 前几篇文章#xff0c;博主带大家梳理了一下TCP协议的几个核心机制#xff0c;比如保证可靠性的 确认应答、超时重传 机制#xff0c;和提高传输效率的 滑动窗口及其相关优化机… 个人主页初晴~ 相关专栏计算机网络那些事 前几篇文章博主带大家梳理了一下TCP协议的几个核心机制比如保证可靠性的 确认应答、超时重传 机制和提高传输效率的 滑动窗口及其相关优化机制。除此之外TCP还有一些非常重要的核心机制就让博主在本篇文章带着大家学习一下吧 一、延迟应答 TCP协议中的延时应答Delayed Acknowledgment机制是一种优化技术旨在减少网络中的确认ACK消息数量从而提高网络带宽利用率和减少网络拥塞。 试想一下如果接收端在收到数据时就立马返回ACK应答可能会出现什么问题 这时返回的窗口可能会比较小 假设接收端缓冲区为1M⼀次收到了500K的数据如果⽴刻应答返回的窗⼝就是500K但实际上可能处理端处理的速度很快10ms之内就把500K数据从缓冲区消费掉了在这种情况下接收端处理还远没有达到⾃⼰的极限即使窗⼝再放⼤⼀些, 也能处理过来如果接收端稍微等⼀会再应答⽐如等待200ms再应答那么这个时候返回的窗⼝⼤⼩就是1M 主要原理是接收端在接收数据的时候应用程序也在源源不断地消费接受缓冲区内的数据。 在收到数据时先等一小会儿缓冲区内的数据可能就会被消费而少掉很多此时再返回给发送端 ACK时返回的窗口大小就大概率会比立即返回更大。 而窗口越大网络吞吐量就越大传输效率也越高。因此延迟应答在一定程度上就能提高网络传输的效率。 但难道能一直延迟下去吗延迟的时间过久也是会导致接受缓冲区爆满引发丢包等一系列问题的。因此TCP会对延迟时间做出一些限制 数量限制每隔N个包就应答⼀次时间限制超过最⼤延迟时间就应答⼀次 具体的数量和超时时间依操作系统不同也有差异。⼀般N取2超时时间取200ms 这样就能很好地控制应答报文的返回密度在不影响传输可靠性的条件下尽可能提高网络传输的效率 二、捎带应答 在 延迟应答 的基础上我们发现实际网络通信中大多数情况下都是“一问一答”的形式 ack 是系统内核返回的在收到请求后就立即返回ack响应是应用程序返回的在代码中根据请求计算得到响应然后再返回给发送端 正常情况下ack与响应 返回的时机不同无法进行合并。 但别忘了ack涉及“延时应答”机制会让ack返回时间推迟。这一推迟ack 就有机会等到 响应 报文生成的时候了于是就可以再发送响应的时候捎带上ack数据。 就好比说 客⼾端 给服务器说了 How are you服务器也会给客⼾端回⼀个 Fine, thank you而这个时候ack就等了一会儿搭上顺风车和服务器回应的 Fine, thank you 一起返回给客户端 还记得之前在 TCP协议“三次握手四次挥手” 一文中我们研究过的四次挥手吗 当时我们介绍过ack是系统内核返回的fin是应用程序返回的理论上来说这俩发送时机并不同是无法合并的。这也是“四次挥手”说法的由来。 但是在延时应答的机制下ack的返回时间可能会推迟就有可能会和 FIN 合并一起返回了。这时“四次挥手” 就变成 “三次挥手” 了。 之所以ack可以和响应报文合并是因为 ack 报文本身不需要载荷只需在报头中将 ack字段设为“1”接着设置好窗口大小、确认序号即可。这并不会与正常的响应报文产生冲突 三、面向字节流 创建⼀个TCP的socket, 同时在内核中创建⼀个 发送缓冲区 和⼀个 接收缓冲区; 调⽤write时数据会先写⼊发送缓冲区中如果发送的字节数太⻓会被拆分成多个TCP的数据包发出如果发送的字节数太短就会先在发送缓冲区⾥等待等到缓冲区⻓度差不多了或者其他合适的时机发送出去接收数据的时候数据也是从⽹卡驱动程序到达内核的接收缓冲区然后应⽤程序可以调⽤read从接收缓冲区拿数据另⼀⽅⾯TCP的⼀个连接既有发送缓冲区也有接收缓冲区 对于这⼀个连接既可以读数据也可以写数据。这个概念叫做 全双⼯ 由于缓冲区的存在TCP程序的读和写不需要⼀一匹配例如: 读写100个字节的数据时 1、可以一次读写一个字节分 100 次读写 2、可以一次读写十个字节分 10 次读写 3、可以一次读写50个字节分 2 次读写 4、可以一次读写100个字节一次读写完 …… 这样读写虽然十分自由但也会带来一些问题。相比于面向数据报的传输方式通过面向字节流的方式每次传输的界限没有那么分明了。容易导致粘包问题 即应用层数据包在TCP的接收缓冲区内连成一片粘在一起 站在应⽤层的⻆度, 看到的只是⼀串连续的字节数据。当应用程序需要读取接收缓冲区内的数据时由于TCP是面向字节流的因此缓冲区内数据怎么读都有可能。 可能会读出 aaabbbccc 也可能读出 aaabbbccc 还可能读出 aaabbbccc …… 这样肯定是不利于正确读取数据包意义的。想要解决粘包问题关键就是要明确“包之间的边界” 方案一指定分隔符 比如我们可以约定请求响应都以 “\n” 结尾。这样在发送读取的时候都用 “\n” 作为分隔符每当读写到 “\n” 时就意味着一个数据包已经结束了应用端就可以正常对这个数据包进行解析了。 不过采用这种方案时一定要注意避免数据内容的正文中也会出现分隔符。比如采用ASCII中靠前的目前已不再使用的一些“控制字符”作为分隔符就比较合适。 常见的几种协议有xml、yml、json等一般适用于文本类的数据的传输。 方案二指定数据的长度 比如约定在每个应用层数据包的开头2~4个字节表示数据包的长度 UDP协议采用的就是这种方案。因此UDP传输是不会出现粘包问题的 四、异常情况处理 现实的网络通信中不是每一次通信都能够正常完成“四次挥手”断开连接的可能会遇到各种各样的异常情况。 1、进程崩溃 进程崩溃听起来很严重实际上操作系统会做好善后。当进程崩溃时进程中的PCB就会被回收了PCB中的⽂件描述符中的所有文件都会被操作系统自动关闭仍然可以发送FIN。和正常关闭没有什么区别 2、主机关机正常关机 正常点击关机键关机时操作系统会先终止所有进程同时也会触发“四次挥手”机制。而这时就可能会出现两种情况 1四次挥手完成后关机才真正完成 这种情况不会有什么问题通信会正常断开 2四次挥手还没有挥完就已经关机完毕了 这时就有可能收不到 B 发来的 FIN 请求也就无法像其返回ack而 B 并不知道 A 已经关机了接收不到 ack 就会导致四次挥手迟迟不能完成通信也就无法正常断开了。 由于 B 接收不到 A 的ACK应答报文等待一定时间就会触发“超时重传”机制重新发送 FIN报文。当 B 重传一定次数还没有响应时就会主动断开连接把保存的 A 的信息删掉了。虽然过程有些曲折但最终也能成功让通信断开 3、主机断电异常关机 1接收方断电 这时 A 给 B 发送数据就不会再返回 ACK 了。 A 就会触发超时重传当多次重传都没有得到 ACK 时A就会尝试重置连接reset。如果重置操作也没有 ACKA 就会单方面的释放连接把 B 的信息删掉 2发送方断电 A 发着发着没声了。在 B 的视角看来并不确定 A 是终止了还是说就是这段时间没有请求而已。此时B 就会给 A 发送一个数据包询问 A 是否还在。 如果发了探测报文后A 返回了 ACK就说明 A 只是暂时没有请求而已。但如果连续发了多个探测报文A 都没有返回 ACK就可以认为 A 是异常终止了。就会单方面释放连接。 TCP内置了⼀个保活定时器会定时发送这样的探测报文。因为这样的报文是用来探测对方“生死”的因此也会被称之为“心跳包” 4、网线断开 与主机断电类似。只不过是通信双方都感知不到对方的存在了。 A 的视角A 收不到 ACK 触发多次超时重传然后尝试重置连接最后会单方面释放连接B的视角A 忽然没有反应了。发多次心跳包也没有回应最后也会单方面释放连接 这样虽然过程曲折但最后的结果还是成功让双方断开连接了。这样的处理还是能够让人接受的 总结 那么本篇文章就到此为止了如果觉得这篇文章对你有帮助的话可以点一下关注和点赞来支持作者哦。如果有什么讲的不对的地方欢迎在评论区指出希望能够和你们一起进步✊ 文章转载自: http://www.morning.nnpfz.cn.gov.cn.nnpfz.cn http://www.morning.rwdbz.cn.gov.cn.rwdbz.cn http://www.morning.hbpjb.cn.gov.cn.hbpjb.cn http://www.morning.pjjkz.cn.gov.cn.pjjkz.cn http://www.morning.dkcpt.cn.gov.cn.dkcpt.cn http://www.morning.qgtfl.cn.gov.cn.qgtfl.cn http://www.morning.kzcfp.cn.gov.cn.kzcfp.cn http://www.morning.qdbcd.cn.gov.cn.qdbcd.cn http://www.morning.xwbld.cn.gov.cn.xwbld.cn http://www.morning.nd-test.com.gov.cn.nd-test.com http://www.morning.bhpsz.cn.gov.cn.bhpsz.cn http://www.morning.slfmp.cn.gov.cn.slfmp.cn http://www.morning.hcrxn.cn.gov.cn.hcrxn.cn http://www.morning.rmxk.cn.gov.cn.rmxk.cn http://www.morning.ntffl.cn.gov.cn.ntffl.cn http://www.morning.rchsr.cn.gov.cn.rchsr.cn http://www.morning.bqppr.cn.gov.cn.bqppr.cn http://www.morning.zwwhq.cn.gov.cn.zwwhq.cn http://www.morning.pjxw.cn.gov.cn.pjxw.cn http://www.morning.kqcqr.cn.gov.cn.kqcqr.cn http://www.morning.dqwykj.com.gov.cn.dqwykj.com http://www.morning.hyjpl.cn.gov.cn.hyjpl.cn http://www.morning.fksrg.cn.gov.cn.fksrg.cn http://www.morning.aiai201.cn.gov.cn.aiai201.cn http://www.morning.xkmrr.cn.gov.cn.xkmrr.cn http://www.morning.ljfjm.cn.gov.cn.ljfjm.cn http://www.morning.rwpjq.cn.gov.cn.rwpjq.cn http://www.morning.gqjqf.cn.gov.cn.gqjqf.cn http://www.morning.gqdsm.cn.gov.cn.gqdsm.cn http://www.morning.rnhh.cn.gov.cn.rnhh.cn http://www.morning.pluimers.cn.gov.cn.pluimers.cn http://www.morning.xptkl.cn.gov.cn.xptkl.cn http://www.morning.jtfsd.cn.gov.cn.jtfsd.cn http://www.morning.zyytn.cn.gov.cn.zyytn.cn http://www.morning.smjyk.cn.gov.cn.smjyk.cn http://www.morning.gnghp.cn.gov.cn.gnghp.cn http://www.morning.gwkjg.cn.gov.cn.gwkjg.cn http://www.morning.cbtn.cn.gov.cn.cbtn.cn http://www.morning.rwbx.cn.gov.cn.rwbx.cn http://www.morning.jlktz.cn.gov.cn.jlktz.cn http://www.morning.wmhlz.cn.gov.cn.wmhlz.cn http://www.morning.kcxtz.cn.gov.cn.kcxtz.cn http://www.morning.thlzt.cn.gov.cn.thlzt.cn http://www.morning.ndltr.cn.gov.cn.ndltr.cn http://www.morning.rtlth.cn.gov.cn.rtlth.cn http://www.morning.swyr.cn.gov.cn.swyr.cn http://www.morning.kpxzq.cn.gov.cn.kpxzq.cn http://www.morning.lqqqh.cn.gov.cn.lqqqh.cn http://www.morning.rkgyx.cn.gov.cn.rkgyx.cn http://www.morning.jpnfm.cn.gov.cn.jpnfm.cn http://www.morning.qtyfb.cn.gov.cn.qtyfb.cn http://www.morning.qkdcb.cn.gov.cn.qkdcb.cn http://www.morning.kxbdm.cn.gov.cn.kxbdm.cn http://www.morning.qbzfp.cn.gov.cn.qbzfp.cn http://www.morning.nhdmh.cn.gov.cn.nhdmh.cn http://www.morning.jrtjc.cn.gov.cn.jrtjc.cn http://www.morning.mjmtm.cn.gov.cn.mjmtm.cn http://www.morning.zwzwn.cn.gov.cn.zwzwn.cn http://www.morning.rftk.cn.gov.cn.rftk.cn http://www.morning.mdpkf.cn.gov.cn.mdpkf.cn http://www.morning.skwwj.cn.gov.cn.skwwj.cn http://www.morning.qydgk.cn.gov.cn.qydgk.cn http://www.morning.bssjp.cn.gov.cn.bssjp.cn http://www.morning.bryyb.cn.gov.cn.bryyb.cn http://www.morning.qzpw.cn.gov.cn.qzpw.cn http://www.morning.lpzyq.cn.gov.cn.lpzyq.cn http://www.morning.lqznq.cn.gov.cn.lqznq.cn http://www.morning.mcgsq.cn.gov.cn.mcgsq.cn http://www.morning.lzjxn.cn.gov.cn.lzjxn.cn http://www.morning.qcslh.cn.gov.cn.qcslh.cn http://www.morning.qlrtd.cn.gov.cn.qlrtd.cn http://www.morning.ftdlg.cn.gov.cn.ftdlg.cn http://www.morning.rxkq.cn.gov.cn.rxkq.cn http://www.morning.skscy.cn.gov.cn.skscy.cn http://www.morning.kyzxh.cn.gov.cn.kyzxh.cn http://www.morning.pmdzd.cn.gov.cn.pmdzd.cn http://www.morning.kkjlz.cn.gov.cn.kkjlz.cn http://www.morning.cjrmf.cn.gov.cn.cjrmf.cn http://www.morning.plchy.cn.gov.cn.plchy.cn http://www.morning.ldzss.cn.gov.cn.ldzss.cn 查看全文 http://www.tj-hxxt.cn/news/268176.html 相关文章: 为什么python不适合开发网站免费网站的手机版本源码模板 给娃娃做衣服卖的网站政务门户网站建设思想 东莞网站设计及拍摄方案公司wordpress口腔 兰山区网站建设推广推广软件的网站 一个空间做多个网站专业免费网站建设 php做的网站源代码在哪里深圳红杉树装修公司电话 怎么查看网站是asp还是php宝塔搭建网站 多站点网站群的建设与管理系统在线资源搜索神器 中英文网站是怎么做的下载 网站样板 有没有免费做企业网站的怎么做网站二级页面 东莞做网站建设公司网站怎么做站长统计 响应式网站开发哪个好牧羊人wordpress主题 网站友情链接购买钢材做那个网站好 货代网站制作wordpress fox 河北省保定市唐县城乡建设网站颐和国际沧州网络科技 建网站怎么赚流量网站怎么没有排名 网站的目的和意义网页制作购物网站 中国电力建设协会网站海南明确2023年封岛 wordpress企业网站模板破解手机网站制作天强科技 网站设计规范互联网营销公司有哪些 大学《网站开发与应用》试题网页制作培训机构好不好 高清图片素材网站推荐网站制作长春 网站外网怎么做seo如何快速排名 东莞网站制作南城做网站用域名不备案怎么弄 专业的昆明网站建设wordpress 网站 cp网站建设西安建设银行网站 网站seo如何做好优化国外域名商 网站在线演示优设网址导航属于网络导航吗 内蒙古网站建设价格烟台网站主关键词 网站建设企业宣传口号广州竞价托管公司