从品牌网站建设到网络营销策划,从策略到执行的一站式服务
这是在学习中的总结,若有错误请大家不吝指正(^.^)
目前成都创新互联公司已为近千家的企业提供了网站建设、域名、网络空间、网站运营、企业网站设计、雷州网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
关于TCP/IP的三次握手:
当服务端的状态为LISTEN,客户端的状态为CLOSED时,客户端发起连接
客户端发送有SYN字段报文,此时状态为SYN_SENT状态
服务端接收该报文时,状态处于SYN_REVD状态,并向客户端发送有SYN与ACK字段的报文
客户端接收到该报文时,状态处于ESTABLISHED(建立)状态,并发送有ACK字段的报文
服务端接收到报文后,状态处于ESTALISHED(建立)状态,并开始数据的交互
关于糊涂窗口:
当在网络数据传输中,大量发送含有少量数据的报文(极端情况一个报文只有一字节数据),因为在协议层中对数据是层层封装的过程,因此对于数据来说有大量的协议头,传输开销过大;或接收端在缓存区接受数据过慢;
解决方法:
发送端使用Nagle算法,当发送包长度小于MSS大小时会等待一会,发送条件是:
直到所有发送的小包都有ACK回复且未设置TCP_CORK时;
直到有FIN字段时;
直到数据长度达到MSS时;
直到等待超时(一般200ms);
设置TCP_NODELAY且没有设置TCP_CORK时;(就是不使用优化算法啦)
(当小包的ACK字段接收较快时算法的作用不大)
发送端使用CORK算法,会将小包拼接成大包,是协议头在协议报文的比重减小,发送条件是:
拼接的报文大于MTU或超时;
没有设置TCP_CORK并设置TCP_NODELAY时;(就是不使用优化算法啦)
(当小包的传输时间间隔不短时影响实时性,因为都要等待超时传输)
接收端使用Clark解决,只要有数据到达就确认,但宣布窗口大小为0,直到缓存空间够容纳一个MSS或缓存空间一半已空;
接收端延迟确认,直到缓存空间足够为止,防止TCP发送端窗口的滑动,可以减少通信量,不必确认每个报文段,但延迟的确认会导致重发。
关于粘包问题:
因为要解决糊涂窗口而使数据积攒发送,或收端不及时接受缓存区数据而同时接收多个包,会导致发送的原数据接收后拼接在一起无法分离。
解决方法:
当数据传输是一次交互后立即断开(多个Client与一个Server)时,数据无结构时(文件传输,一方发另一方收),使用UDP时(有消息边界)不会产生粘包问题;
发送端设置强制数据立即发送,不必等待缓存区满(无处理优化,效率降低);
接收端优化编程方法,精简接收过程,提高接收优先级等使其接收效率提高(不能完全避免);
接收端按结构字段、人为控制多次接收,然后合并(效率低,对实时场合不适用);
在这里问一下,怎么美化呀,之前看别人的博客很酷炫的
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图