深圳网站建设认准乐云为什么建设部网站进不去

张小明 2026/1/19 20:38:05
深圳网站建设认准乐云,为什么建设部网站进不去,linuxvps建站教程,浙江广厦建设职业技术学院网站UDP协议与TCP协议UDP特点#xff1a;无连接#xff0c;不可靠传输#xff0c;面向数据报#xff0c;全双工UDP/TCP/IP的报头都是二进制的#xff0c;只有HTTP的是文本格式UDP报文格式报头部分一个八个字节#xff0c;每个部分占两个字节#xff0c;端口号是属于传输层的…UDP协议与TCP协议UDP特点无连接不可靠传输面向数据报全双工UDP/TCP/IP的报头都是二进制的只有HTTP的是文本格式UDP报文格式报头部分一个八个字节每个部分占两个字节端口号是属于传输层的长度表示的是整个报文的长度2个字节就是16个bit位也就是能存0-65535个字节65535/1024约等于64KB一个报文就是64kb一个端口号的取值是0-65535但是一般我们只使用1024-65535校验和当传输一个很大的数据的时候因为我们最多的传输64kb这个过程中钥匙收到外界的干扰导致出现了比特翻转那么就会导致数据发生改变具体流程Udp在发送之前会把整个数据报带入计算一个校验和然后把这个校验和与数据报整个发出去对端收到之后就会重新计算一下校验和如果发现不对就会直接丢弃整个数据报UDP的校验主要是CRC的方式即把除了校验和之外的部分全部当做整数进行计算拿到最后的结果会和对方发来的进行对比。一般来说只要原始的数据一样使用相同的算法进行计算那么校验值就应该一样我们认为只要校验和一样就认为原始的数据是一样的虽然可能会出来比特翻转恰好两个翻转又抵消的情况但是这个情况概率极低极低可以忽略不算TCP协议TCP的特点可有连接可靠传输全双工面向字节流TCP的协议格式从端口号开始到选项都是属于报头数据部分属于载荷端口号和目的端口号这里属于传输层的核心表示来自哪个端口要去到哪个端口TCP报头的长度这个表示的是整个TCP报头的长度4个bit位可以表示0-15这里你可能会有疑问报头部分不算上选项部分单单是固定的长度就占20bit位了这里怎么可能够别急这是因为TCP这里非常聪明使用4个字节为一个单位也就是这里可以容纳下4*1560个bit位。选项这个是TCP报头里面可有可无的东西长度最多可以占据40个字节一般存放的是MSS,窗口扩大因子之类的保留这个的存在是为了防止出现UDP的问题长度不够但是又无法扩展所以为了解决这个问题就现在报头占个位置后续有啥情况就可以改动单纯的预防作用TCP的六个核心标志位校验和检查数据是否出错TCP的十大核心机制TCP的核心可靠性核心机制一确认应答保证可靠性的前提就是需要知道自己发送的消息对方是否已经收到在TCP中收到对方的信息我们需要给对方发送一个确认应答报文ACK让对方知道我们已经收到信息了举例子我给女神发消息问女生吃不吃这个时候女神这边就需要给我回应让我知道他有没有收到这个信息这个返回就叫做ACK后发先至问题举例子我先问吃不吃麻辣烫再问做我女朋友好不好但是由于网络传输过程中可能每个传输走的路线不一样导致后续的消息先到先发的消息反而后到这就会导致出现问题TCP解决方式TCP会对传输的数据进行编号针对我的每个问题进行标号每个问题返回一个ACK这就不会乱了在TCP中就是序号针对每个序号都会有确认序号当ACK为1时表示这个是应答报文序号和确认序号在TCP中因为TCP是面向字节流的所以在编号的过程中不是按照条数来编号的而是按照字节来进行编号的每个字节都有一个属于自己的编号编号是连续递增的一个TCP的载荷是多个字节构成的意味着这里有多个编号那么这个序号这里应该填什么填第一个字节的序号确认序号填写什么呢把收到载荷的最后一个字节➕1填写到确认序号中举例子主机A先把1-1000的数据发送给主机B这个时候主机B会收到并返回一个TCP的头部报文确认序号哪里会写下一个是1001告诉对方我已经收到1001之前的全部数据这个编号是针对载荷的报头并不会编号在引入序号和确认序号就解决了这个后发先至的问题在TCP中就是确保应用程序通过socket.api读到的数据顺序是正确的在TCP中接受方会有一个接受缓冲区用来接受数据在这个缓冲区中会根据序号进行排序这个时候小的在前大的在后只有确保前面的数据到了read才会接触阻塞如果后面的数据先到就会一直等待所以在基于TCP进行写代码的时候我们是不需要担心数据顺序的问题TCP核心机制二超时重传因为TCP的核心机制是可靠性所以针对可能出现的丢包情况TCP也有防范的手段为什么会丢包数据在经过路由器或交换机的时候可能这个路由器或者交换机的已经超负荷工作了无法再进行转发多一个了就会导致出现丢包举例子现在A和B进行通讯A给B传输数据B需要返回一个ACK丢包的两种情况A发的数据丢了B返回的ACK丢了第一种由于A在发的过程中丢包了但是他不知道自己丢了所以在等待到一定的时候后就会触发超时重传再给B传输这个数据。第二种A传输个给B成功了但是B返回的ACK丢了这个时候A不知道是发失败了还是ACK丢了他能做的只有重新发送数据知道B的ACK到达A。这个过程中B收到了两份一样的数据会不会导致后续读到两份一样的数据不会因为TCP有接收缓冲区在这里会对接受到的序号进行排序如果发现一样的就会丢弃不一样的才会保存在上述过程中A不知道到底是出现了哪种情况所以就只能不断的重传假设A和B发送数据丢包的时间阈值为T如果A和B传输过程中超过了这个阈值的时候就会延长这个时间阈值但是并不会是无止境的延迟当到达一定程度的时候就会放弃这次传输如果传输很多词都不成功那就不传了说明网络产生了重大的故障。TCP协议最核心的两个机制确认应答和超时重传确保了TCP能搞进行可靠的传输TCP核心机制三三次握手和四次挥手因为TCP的特性是有连接三次握手建立连接的过程我们就称之为三次握手这三次握手是不带业务的只是打招呼和生活中认识一个新的朋友一样一开始是握手只是传递信号打招呼Synchronize同步的意思当SYN为1的时候表示这个是同步报文此时都不携带任何的业务内容单纯的只是打招呼三次握手A会给B发一个请求告诉B接下里我要和你建立连接你把我的关键信息保存好同时也把你的信息发送给我B就会返回一个ACK应答报文同时把自己的关键信息也发送给A这个时候A再返回一个ACK表示收到为什么有时候会称作是四次握手因为四次握手就是把B返回的ACK和B的syn分为两步走没有合并这样做的坏处是会消耗更多的网络带宽三次握手就把他们合并起来提高传输的效率三次握手详细过程图Closeed是不存在的状态还没有创建tcp连接方便理解所以就存在LISTEN 当服务器启动的时候new ServerSocket的时候就会进去listen状态SYN-SENT客户端发起握手请求建立连接SYN-RCVD服务器收到并返回ACK和SYN给客户端ESTABLISHED就绪状态表示连接成功可以开始进行通讯注意SYN-SENT和SYN-RCVD的存在时间极短肉眼基本上看不到如果出现了并长时间停留就要考虑一下是不是代码出现了问题举例子就相当于你手机充满电信号良好随时可以打电话就绪状态就相当于已经打通对方也接了说话就行了TCP三次握手的意义是什么投石问路相当于先初步的探测一下这个网络的通信链路是否流畅确认双方的接受能力和发送能力A先给B发送信息如果B收到了就说明A的发送能力和B的接受能力没问题B给A发送消息如果A收到了就说明B的发送能力和A的接受能力没问题然后A要告诉B你的能力都没问题协商一些关键信息建立好连接之后就会进行协商关键信息比如传输的初始序号是多少举例子A给B传输消息的时候约定好使用8080端口初始序号是1000如果这个时候其中有个数据包迟迟没有传输到B甚至等到这次连接结束都没到那么下次建立连接约定好使用8080端口初始序号是2000这个时候之前迷路的数据包到啦那咋办丢弃掉因为初始序号都不一样指定是叛徒丢了就行总结TCP三次握手的意义投石问路确定网络链路是否通畅验证通讯双方的接收和发送能力是否正常协商关键的信息四次挥手示意图通讯的双方会给对方发FIN告诉对方我要删除你的关键信息结束这次通讯A给B发FINB会给A发一个ACK代表收到B还会个A发一个FIN告诉A我也要删了你A也会回复一个ACK四次挥手对应的是六个关键中的FIN四次握手能够合并成三次那四次挥手能合并成三次吗可以但是又不可以可以延时应答通过程序员写代码的干预可以让他们一起返回不可以因为B的ACK是内核负责返回的而FIN是由程序调用close才会关闭他们两个的交互时机是不一样的所以不能合并四次挥手无论是客户端还是服务端都是可以先行提出的但是三次握手就不行必须要客户端先提出四次挥手具体实现谁发起FIN谁就会进入TIME-WAIT状态谁是被动发起FIN的一方谁就会进入CLOSE-WAIT状态TIME-WAIT状态的是为了防止最后一个ACK丢包进行托底的作用举例子客户端发起FIN(结束进程/调用close)服务器就会进入CLOSE_WAIT并感知到然后由内核返回ACK这个状态是很快完成的然后会返回一个已经close给对方对方这个时候就会进入TIME-WAIT状态并返回一个ACK在这段代码中我们可以看到当服务器读取到客户端发起FIN的时候内核会返回一个ACK至于FIN会不会跟着返回就要看try这个代码是怎么写的。如果发现这个Close-WAIT持续很长的时间那估计就是代码出现了bug没有执行到closeTIME-WAITTIME-WAIT存在的意义就是为了解决最后这个ACK可能丢包的问题假设现在A和B进行四次挥手A发起FIN给BB接收到由内核返回ACKB调用close方法并返回FINA接收到并返回ACK这个过程中如果这个ACK发出去后A就马上释放连接那加入ACK丢了那B就遭老罪了,B会以为A没有收到这个FIN会进行超时重传虽然说最后也是会释放掉这个连接但是期间多很多没有必要的资源消耗所以就出现了TIME-WAIT在发送ACK之后等会等一段时间对方没有再发FIN的情况下再释放连接那等多久合适一般来说TIME-WAIT等待时间为2*MSL任何两个节点传输之间需要的最大时间总结LISTEN:启动服务器等待连接ESTABLISHED:已经连接好了可以进行通讯TIME-WAIT为最后一个ACK丢包做预防CLOSE-WAIT存在时间极短对方发来FIN之后就会调用closeTCP核心特性四滑动窗口TCP的核心是可靠性在保证可靠性的同时就付出了效率的代价那如何提高效率就引入了滑动窗口单个传输原先的传输是一个个进行传输的这样的效率就很低批量传输把数据包合成一大组然后一次性发过去只需要花一份等待ACK的时间就可以获得多组ACK下一组怎么发等上一组全部返回再发吗并不是只要上一组返回其中一个我就接着发这样就提高了效率如果等上一组全部返回再发效率太低了滑动窗口高亮度的区域表示等待ACK的区域当1001到达对方支付就往后移一个在告诉运动的情况下就好像是滑动窗口如果是2001先返回怎么办滑动两个窗口为什么因为确认序号是2001的情况下代表着2001之前的数据全部都收到了窗口越大批量发送的数据也就越多效率也就越高窗口过大就会导致可靠性降低滑动窗口丢包情况分析数据包到达BACK丢了数据包没到达B,直接丢了情况一ACK丢了这个情况下的丢包是无所谓的因为后一个ACK可以包含前一个ACK的含义假设现在我们数据包全部发到B了这个时候的B返回的ACK丢了1001和2001甚至全部都丢了只剩下6001返回了没有任何影响因为返回的确定序号6001代表着6001之前的数据全部都收到了所以丢了就丢了无所谓的情况二数据包丢了A在给B传输数据包的过程中假设丢了1001这个包那么返回的确认序号就会提示1001未收到无论你后续发的数据包是否丢包都会先解决这个问题当连续三次发送同一个确认序号的时候A就会意识到丢包了就会重新发送这个数据包之前发送的数据包如果没丢包那么B就会返回没丢包的下一个确定序号举例解决问题先解决问题擒贼先擒王解决完主要的其他就好了快速重传丢了谁就传谁其他收到的就不用重新传输了过程很快这个属于是在滑动窗口下超时重传的变种操作快速重传vs超时重传两者并不矛盾超时重传代表传输的数据少快速重传是适合在数据量多的情况举例类似于牛顿的力学相对论和相对论TCP核心特性五流量控制如果滑动窗口太大就会影响到可靠性因为接收方处理的能力是有限的是根据接受方的处理能力进行限制的举例子现在要进行一边蓄水一边放水如果蓄水的速度太快放水的速度又赶不上那么就会出现一个问题水会溢出来就会出现丢包的情况流量控制就相当于踩一下刹车让对方的速度慢一些处理不过来了根据接收方的处理速度反馈给发送方限制发送方的传输速度在ACK中依赖窗口大小进行表达这里会表示滑动窗口的大小这个是动态变化的表示的是现在最大能接受的数据是多少那这个最大是64kb吗和UDP的一样并不是这个窗口的最大数值确实是64kb但是在选项里有一个特殊的属性叫窗口扩展因子可以把这个窗口进行指数被的扩展让窗口变得很大具体流程首先A发送数据的时候,B会在返回ACK的时候返回一个窗口值这个是B目前能接受的最多数据值那A就会知道不能超过这个否则就会数据丢包所以发送的数据就会比这个小如果当B返回ACK的时候告诉A处理不过来了那么A就会停止发送数据发送一个窗口探测这个窗口探测包内部不包含任何的数据只是单纯的为了获得还能发多少类似于问B咋样了还能再继续不否则等B的数据消耗完了A还愣着不发数据缓存和缓冲区的区别缓存cache把之前读过的数据放到一个更近的地方让下次拿的时候更方便缓冲区buffer把低效的次数变少多次的抵消操作合并成一次TCP核心机制六拥塞控制拥塞控制是针对数据传输链路的能力进行控制的举例子揉面团面多加水水多加面示意图在传输的过程中要经过很多的路由器和交换机在这个过程中一次能传输多少不取决于能承载最多的设备取决于最少的设备木桶原理启动的时候会先以小的窗口运行如果很不丢包就会加大窗口入股丢包了就继续降低速度反复进行动态平衡拥塞机制和流量控制都能限制发送方的发送速度谁小就取决于谁示例图一开始会先以小窗口进行传输然后指数被增长到了一定的范围之后就会变成线性增长如果发现丢包收到3个一样的ACK就会再减小达成动态平衡和谈恋爱一样热恋期平淡期吵架之后的恢复期TCP的核心机制七延时应答默认情况下一般我们收到数据包第一时间就会返回ACK但是现在我们可以通过延时应答来返回ACK从而提高效率举例子原先我们立即返回那么就会返回200如果我们延时返回等程序消耗掉一部分数据再发送ACK那么就看会返回300尽可能的提高了窗口的大小就是这个时候又收到了发送发的数据也不会因为我们没有返回ACK就罢工因为我们后一个ACK是可以包含前一个ACK的信息的所有的包都可以延时应答吗不行数量限制和时间限制总不可能你每个都不回这样会导致触发超时重传跟耗费资源TCP核心特性八捎带应答基于TCP有延时应答引入捎带应答在返回数据的时候把上次要返回的ACK也带回去可以提高效率如果没有延时应答的话那么返回ACK的时间和返回响应的时机是不同的引入延时应答此时如果有数据要返回就可以顺手带一下ACK一起返回典型例子三次握手把两个包合成一个只花费一份网络带宽懒汉模型TCP的核心机制九面向字节流粘包问题粘的是应用层的数据包因为TCP是面向字节流的所以传输的过程是以字节传输的很容易就混淆了包和包之间的边界导致无法区分哪里到哪里是一个完整的数据包示例假设我现在传入aaabbbccc那么对于接收方read的时候就会出现问题哪里到哪里是一个包aaabbbccc是一个包还是aaab还是aaabbbc这个问题对于TCP来说是无法解决的所以我们需要在应用层就解决1、使用标识符约定包与包之间的分隔符使用/n标志包的结束这样我传入aaa/n bbb/n ccc/n的时候接收方收到我的数据就知道aaa是一个包bbb是一个包ccc是一个包2约定长度约定每个包的开头四个字节是表示长度表示这个包有多长3aaa 4bbbb 5ccccc这样当接收方接受数据的时候就可以知道aaa是一个包 bbbb是一个包 ccccc是一个包在HTTP中两种方案都有体现GET请求使用空行表示结束POST请求有body会使用Content-length表示body的长度TCP的核心协议十异常情况的特殊处理TCP通信过程中存在的特殊情况进程崩溃虽然进程结束了但是由于TCP是在操作系统内核的所以TCP的释放时机是更晚的即使进程结束了TCP的连接信息还存在所以四次挥手会继续进行主机关机正常关机的情况下如果关机的时间足够那么就会正常进行四次挥手如果时间不够最后也是会释放的假设现在A发起了挥手B收到之后返回ACK然后A就关机了这个时候B的FIN还没传输到但是A已经关机了这个时候B因为没有收到ACK就会进行超时重传如果进行多次之后没有反应就会认为A存在故障就会主动释放连接。主机断电接收方掉电假设接收方掉电A突然掉电对于B来说后续的数据都没有ACK那么B就会触发超时重传如果重传达到一定的次数就会触发重置TCP连接意思是前面的全部不算重新再来主动发送一个复位报文如果还是没有ACK那么就会释放这个连接RST复位报文发送发掉电如果是发送方掉电了B无法区分A是挂了还是休息所以B会在等待一段时间之后给A传输一个特殊的报文-心跳包里面不携带任何的业务数据单纯的只是为了触发ACK和前面的探测包类似,如果对方返回了ACK说明对方还没挂就会继续等待如果对方没有心跳了就会触发RST尝试如果还是失败就会单方面释放掉连接心跳包保活机制在分布式的系统中心跳包使用的非常广泛TCP虽然内置了心跳包但是等待时间很长很长所以现在一般会自己实现在应用层网络断开所有的情况和ab掉电的情况是一样的URG/PSHURG紧急指针位理解为插队正常情况下是按照序号发送的接受使用URG就相当于有紧急情况需要插队PSH催促标志位发送方发送的时候如果带有这个标志代表着这个数据需要优先处理对方就收到之后就会先把这个数据进行处理返回TCP与UDPTCP的核心就是可靠传输在大部分场景下都是会使用TCPUDP的核心就是速度快效率高在不怕丢包追求效率的情况下可以使用机房如何基于UDP实现可靠传输面试使用应答机制使用超时重传补足了数据传输的可靠性使用TCP的握手和挥手机制管理生命周期滑动窗口流量控制拥塞控制提升效率延时应答捎带应答减少网络开销总结TCP的十大特性确保数据传输的可靠性应答机制超时重传提升传输效率滑动窗口流量控制根据接收方的处理速度阻塞控制根据传播路径中承受力最弱的设备减少网络开销延时应答和捎带应答管理生命周期TCP的握手和挥手机制解决粘包和异常问题粘包问题是通过应用层约定结束来解决异常通过超时重传和心跳包解决
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站推广的方式包括大学城网站开发公司

从零看懂继电器模块电路:一个电子开关的硬核拆解你有没有想过,为什么你的Arduino能控制家里的灯、空调甚至水泵?明明它输出的只是5V的小电压,而这些设备动辄220V交流电——这中间到底发生了什么?答案就是:继…

张小明 2026/1/17 16:08:23 网站建设

长沙建站公司效果手机端网站模板下载

导语:12亿参数如何改写边缘AI规则? 【免费下载链接】EXAONE-4.0-1.2B 项目地址: https://ai.gitcode.com/hf_mirrors/LGAI-EXAONE/EXAONE-4.0-1.2B LG AI Research推出的EXAONE 4.0-1.2B轻量级模型,以仅12亿参数实现多语言处理与高性…

张小明 2026/1/17 16:08:24 网站建设

网站建设计划唯尚广告联盟app下载

第一章:Open-AutoGLM的核心能力与应用场景Open-AutoGLM 是一个面向自动化自然语言理解与生成任务的大规模语言模型框架,具备强大的语义解析、多轮对话管理与任务自主执行能力。其核心设计融合了检索增强生成(RAG)、工具调用&#…

张小明 2026/1/17 16:08:25 网站建设

长沙网站排名技术北京网络营销培训

如何访问7860端口进行腾讯混元OCR网页推理?详细操作指南 在企业数字化转型加速的今天,文档信息提取已成为AI落地的核心场景之一。无论是银行票据识别、医院病历结构化,还是政务材料自动化处理,传统OCR工具往往因部署复杂、识别不准…

张小明 2026/1/17 16:08:25 网站建设

做健身类小程序的网站湘潭做网站

在信息爆炸的时代,如何高效保存和管理网页内容成为每个用户的迫切需求。MarkDownload作为一款专业的网页转换工具,能够将任意网页内容快速转换为结构清晰的Markdown格式文件,实现真正的离线阅读和内容整理。本文将从用户角度为您详细解析这款…

张小明 2026/1/17 16:08:27 网站建设

设计网站公司 讲湖南岚鸿网站建设先进城市

还在为GitHub下载速度慢到令人发指而抓狂吗?每次面对进度条纹丝不动的绝望场景,是否让你对开源协作的热情逐渐消磨?这正是Fast-GitHub插件要彻底解决的痛点——通过智能网络优化技术,让开发者的GitHub访问体验实现质的飞跃。 【免…

张小明 2026/1/17 16:08:28 网站建设