前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >TCP三次握手、糊涂窗口、粘包问题

TCP三次握手、糊涂窗口、粘包问题

作者头像
学徒漠筱歌
发布于 2022-07-17 02:25:19
发布于 2022-07-17 02:25:19
2230
举报
文章被收录于专栏:ZMHZMH

这是在学习中的总结,若有错误请大家不吝指正(^.^)

关于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时(有消息边界)不会产生粘包问题;

发送端设置强制数据立即发送,不必等待缓存区满(无处理优化,效率降低);

接收端优化编程方法,精简接收过程,提高接收优先级等使其接收效率提高(不能完全避免);

接收端按结构字段、人为控制多次接收,然后合并(效率低,对实时场合不适用);

在这里问一下,怎么美化呀,之前看别人的博客很酷炫的

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-07-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
深度学习在花椒直播中的应用—神经网络与协同过滤篇
协同过滤(collaborative filtering)算法一经发明便在推荐系统中取得了非凡的成果。许多知名的系统早期都采用了协同过滤算法,例如Google News,亚马逊、Hulu、Netfix等。协同过滤算法一般采用评分矩阵来表示用户和物品的交互,评分矩阵 R 中的每一个元素 rij 表示用户 i 对物品 j 的喜好评分。由于用户不能对大部分物品都有交互,所以在很多场景下评分矩阵都很稀疏,稀疏率在 90% 以上,稀疏度很高决定算法在优化和选取上有很多考量。
石晓文
2019/09/05
1.4K0
深度学习在花椒直播中的应用—神经网络与协同过滤篇
【基于协同过滤算法的推荐系统项目实战-2】了解协同过滤推荐系统
用户行为能够真实的反映每个用户的偏好和习惯,其中的显示反馈数据会比较稀疏,隐式的反馈数据蕴含了大量的信息。
程序员洲洲
2024/06/07
4190
【基于协同过滤算法的推荐系统项目实战-2】了解协同过滤推荐系统
学习协同过滤推荐 \w 100行Python代码
用一百行 Python 代码,入门协同过滤推荐。
刘笑江
2018/05/28
1.2K5
推荐系统 —— 协同过滤
作为推荐系统 这一系列的第二篇文章,我们今天主要来聊一聊目前比较流行的一种推荐算法——协同过滤; 当然,这里我们只讲理论,并不会涉及到相关代码或者相关框架的使用,在这一系列的后续文章,如果可能,我们可以将我们的所有理论知识整合一下,实践一个 推荐系统的 实战。
solve
2019/10/30
8590
【算法】推荐算法--协同过滤
协同过滤推荐(Collaborative Filtering recommendation)是在信息过滤和信息系统中正迅速成为一项很受欢迎的技术。与传统的基于内容过滤直接分析内容进行推荐不同,协同过滤分析用户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合这些相似用户对某一信息的评价,形成系统对该指定用户对此信息的喜好程度预测。
陆勤_数据人网
2018/07/30
6.4K0
【算法】推荐算法--协同过滤
案例:Spark基于用户的协同过滤算法
一 基于用户协同过滤简介 基于用户的协同过滤算法(user-based collaboratIve filtering) 基于用户的协同过滤算法是通过用户的历史行为数据发现用户对商品或内容的喜欢(如商品购买,收藏,内容评论或分享),并对这些喜好进行度量和打分。根据不同用户对相同商品或内容的态度和偏好程度计算用户之间的关系。在有相同喜好的用户间进行商品推荐。简单的说就是如果A,B两个用户都购买了x,y,z三本图书,并且给出了5星的好评。那么A和B就属于同一类用户。可以将A看过的图书w也推荐给用户B。 Spa
Spark学习技巧
2018/01/31
2.4K0
案例:Spark基于用户的协同过滤算法
协同过滤推荐算法(一)原理与实现
协同过滤推荐算法是诞生最早,并且较为著名的推荐算法。主要的功能是预测和推荐。算法通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐品味相似的商品。协同过滤推荐算法分为两类,分别是基于用户的协同过滤算法(user-based collaboratIve filtering),和基于物品的协同过滤算法(item-based collaborative filtering)。简单的说就是:人以类聚,物以群分。下面我们将分别说明这两类推荐算法的原理和实现方法。
全栈程序员站长
2022/09/07
3.4K0
协同过滤推荐算法(一)原理与实现
协同过滤推荐算法(二)
上节课我们详细介绍了基于用户的协同过滤算法(User-CF)的原理以及实现代码协同过滤推荐算法(一),本节课我们继续介绍协同过滤算法的另外一个常用算法—基于物品的协同过滤算法(Item-CF)。
用户7569543
2021/03/18
8410
使用Python3.7配合协同过滤算法(base on user,基于人)构建一套简单的精准推荐系统(个性化推荐)
    时至2020年,个性化推荐可谓风生水起,Youtube,Netflix,甚至于Pornhub,这些在互联网上叱咤风云的流媒体大鳄无一不靠推荐系统吸引流量变现,一些电商系统也纷纷利用精准推荐来获利,比如Amzon和Shopfiy等等,精准推荐用事实告诉我们,流媒体和商品不仅仅以内容的传播,它还能是一种交流沟通的方式。
用户9127725
2022/08/08
4260
使用Python3.7配合协同过滤算法(base on user,基于人)构建一套简单的精准推荐系统(个性化推荐)
【干货】TensorFlow协同过滤推荐实战
【导读】本文利用TensorFlow构建了一个用于产品推荐的WALS协同过滤模型。作者从抓取数据开始对模型进行了详细的解读,并且分析了几种推荐中可能隐藏的情况及解决方案。 作者 | Lak Laksh
WZEARW
2018/04/16
3.2K0
【干货】TensorFlow协同过滤推荐实战
【推荐系统算法实战】协同过滤 CF 算法(Collaborative Filtering)
仅仅基于用户行为数据设计的推荐算法一般称为协同过滤算法。学术界对协同过滤算法 进行了深入研究,提出了很多方法,比如基于邻域的方法(neighborhood-based)、隐语义模型 (latent factor model)、基于图的随机游走算法(random walk on graph)等。在这些方法中, 最著名的、在业界得到最广泛应用的算法是基于邻域的方法。
一个会写诗的程序员
2019/12/24
6.5K1
【推荐系统算法实战】协同过滤 CF 算法(Collaborative Filtering)
推荐系统!基于tensorflow搭建混合神经网络精准推荐! ⛵
本文从常见的推荐系统方法(基于内容、协同过滤等近邻算法、基于知识等)讲起,一直覆盖到前沿的新式推荐系统,不仅详细讲解原理,还手把手教大家如何用代码实现。
ShowMeAI
2022/08/26
1.2K0
推荐系统!基于tensorflow搭建混合神经网络精准推荐! ⛵
协同过滤推荐算法
相信大家对推荐系统已经很熟悉了,它通过分析用户的历史行为,挖掘用户的兴趣爱好,预测并推荐给用户其接下来有可能感兴趣的事物,例如商品推荐、音乐推荐、新闻以及最近很火的短视频推荐等等。
小萌哥
2020/07/21
1.5K0
协同过滤推荐算法
基于大数据框架的协同过滤算法餐饮推荐系统【Update2023-11-05】
首先这位作者的推荐系统给了我很大的构思启发。 Github地址:https://github.com/share23/Food_Recommender 他的系统采用实时大数据技术组件,具体有Spark Streaming,HDFS分布式存储,Hbase存储计算,消息队列采用Kafka,Flume,其中的餐饮数据是用python生成,加上linux的contab模拟流式数据。推荐模块使用ALS算法加评分。 他的系统架构和技术组件选用给了我很大帮助,包括系统业务逻辑代码,让我顺利完成了我的毕业设计。
火之高兴
2024/07/25
2830
协同过滤算法概述与python 实现协同过滤算法基于内容(usr-item,item-item)
协调过滤推荐概述   协同过滤(Collaborative Filtering)作为推荐算法中最经典的类型,包括在线的协同和离线的过滤两部分。所谓在线协同,就是通过在线数据找到用户可能喜欢的物品,而离线过滤,则是过滤掉一些不值得推荐的数据,比比如推荐值评分低的数据,或者虽然推荐值高但是用户已经购买的数据。   协同过滤的模型一般为m个物品,m个用户的数据,只有部分用户和部分数据之间是有评分数据的,其它部分评分是空白,此时我们要用已有的部分稀疏数据来预测那些空白的物品和数据之间的评分关系,找到最
学到老
2018/04/18
7.7K0
协同过滤算法概述与python 实现协同过滤算法基于内容(usr-item,item-item)
协同过滤推荐算法在python上的实现
信息大爆炸时代来临,用户在面对大量的信息时无法从中迅速获得对自己真正有用的信息。传统的搜索系统需要用户提供明确需求,从用户提供的需求信息出发,继而给用户展现信息,无法针对不同用户的兴趣爱好提供相应的信息反馈服务。推荐系统相比于搜索系统,不需要提供明确需求,便可以为每个用户实现个性化推荐结果,让每个用户更便捷地获取信息。它是根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品。
全栈程序员站长
2022/07/22
1.4K0
协同过滤推荐算法在python上的实现
推荐系统算法的研究与实践:协同过滤、基于内容的推荐和深度学习推荐模型
推荐系统是一种通过分析用户历史行为、个人兴趣和社交关系等信息,向用户提供个性化推荐内容的技术。推荐系统在电子商务、社交网络和音乐视频等应用中得到了广泛应用。本文将详细介绍推荐系统算法的研究与实践,重点介绍了协同过滤、基于内容的推荐和深度学习推荐模型,并分析了它们的优缺点和实际应用场景。
网络技术联盟站
2023/07/04
2.6K0
推荐系统算法的研究与实践:协同过滤、基于内容的推荐和深度学习推荐模型
协同过滤原理及Python实现
作者:ACdreamers 链接:http://blog.csdn.net/acdreamers/article/details/44672305 1. 协同过滤的简介 关于协同过滤的一个最经典的例子就是看电影,有时候不知道哪一部电影是我们喜欢的或者评分比较高的,那么通常的做法就是问问周围的朋友,看看最近有什么好的电影推荐。在问的时候,都习惯于问跟自己口味差不多的朋友,这就是协同过滤的核心思想。 协同过滤是在海量数据中挖掘出小部分与你品味类似的用户,在协同过滤中,这些用户成为邻居,然后根据他们喜欢的东西组织
昱良
2018/04/08
1.4K0
协同过滤原理及Python实现
协同过滤技术在推荐系统中的应用
协同过滤(Collaborative Filtering)是推荐系统中最常用和最有效的技术之一。它基于用户和项目之间的交互数据来进行推荐,而无需了解项目的具体内容。协同过滤技术主要分为两大类:基于用户的协同过滤(User-based Collaborative Filtering)和基于项目的协同过滤(Item-based Collaborative Filtering)。以下是协同过滤技术在推荐系统中的详细应用介绍。
数字扫地僧
2024/08/07
3780
协同过滤推荐算法(一)
上节课我们简单介绍了推荐系统的总体框架思路,从本节课开始我们将对推荐系统中的核心算法进行详细讲解。在目前主流的推荐算法中,使用最多也是最经典的,当属协同过滤算法!
用户7569543
2021/03/18
1K0
推荐阅读
相关推荐
深度学习在花椒直播中的应用—神经网络与协同过滤篇
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档