tcp粘包

tcp里面的粘包和拆包一般发生在什么情况下,或者说什么场景会导致粘包拆包?如何避免?#笔试题目#
全部评论
对socket缓冲期读写不同步会发生黏包吧,要设计应用层协议保证数据完整性。
点赞 回复 分享
发布于 2019-08-06 06:46
nodelay
点赞 回复 分享
发布于 2019-08-06 06:53
tcp面向字节流的,本身并不知道哪里是一段消息的开头和结尾 同时发送端可能将多个过小的包合并到一起发送,TCP默认是开了nagle算法的,或者将过大的包拆分为多个进行发送。 所以接收端为了从一段连续的字节流中,得到一段完整的消息,需要通过一些标识符来进行划分。 比如通过换行符,通过固定的协议头,通过固定的偏移量,或者引入带这种功能的编解码协议等等。
点赞 回复 分享
发布于 2019-08-06 07:12

相关推荐

首先 自我介绍、项目介绍略过1. 如何评估IMU的测量精度?有哪些标准和方法可以参考?2. 串口通信的基本连接方式是怎样的?中断配置时需要注意哪些事项?3. I2C总线的基本结构是怎样的?请详细描述如何通过I2C读取设备寄存器的步骤。4. 操作系统中任务的状态有哪些?就绪与阻塞的任务在调度中是如何处理的?5. 任务进入阻塞状态的原因有哪些?请列举几种常见情况。6. 请解释死锁的概念及其形成条件。如何识别死锁的发生?7. 有哪些策略可以防止或解决死锁问题?例如,如何处理资源的分配?8. 除了直接释放资源外,还有哪些方法可以避免死锁?这样做可能带来哪些风险?9. 临界区的保护机制有哪些?请举例说明常用的同步手段。10. 在FreeRTOS中,任务切换的具体流程是怎样的?涉及哪些关键操作?11. ARM架构中有哪些重要寄存器?在任务切换时,哪些寄存器会被自动保存和恢复?12. C语言编译的主要阶段有哪些?每个阶段的主要任务是什么?13. 可执行文件的结构是怎样的?各个段的功能和作用是什么?14. const类型的变量通常存放在哪里?全局变量又是如何分布的?15. 你是否有LWIP的移植经验?请简要描述TCP/IP模型的各个层次。16. TCP协议在网络模型中处于哪个层级?17. 网络层的主要协议有哪些?请简要说明其功能。18. TCP与UDP协议的主要区别是什么?在什么情况下选择使用每种协议?19. IP首部和TCP首部各自包含哪些重要字段?20. 如何通过ARP协议将IP地址解析为MAC地址?21. 在跨越局域网发送数据包时,使用的MAC地址是哪个?22. M7内核在单片机上有多少个堆栈指针?它们的使用场景是什么?23. 用户模式和特权模式之间是如何切换的?除了SVC中断,还有哪些方法?24. 如何判断一台处理器是大端还是小端架构?问题答案已经整理到专栏中了,关注我分享更多知识。  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 评论 收藏
分享
11-15 16:28
江南大学 Java
##理想面经####理想安卓##总体评价:面试官有点不走心,总是扣手机,其他没啥问题。1. 首先自我介绍,简单问了下项目,问了spring IOC,以及项目里面常用的三个注解,然后讲了下用法跟实现原理2. 问了JUC包里面锁的实现原理(简历专门突出了下并发编程能力)3. 介绍本科学习的课程(我说学了计网,操作系统,数据结构与算法)4. 让我分别说一下这三个课都是学什么?(我重点讲了下,他说要我完整的讲,第一章是什么内容第二种是什么内容。我:???还带这样的。尽量完整的说了一遍。)5. 说我又是JAVA后端又是深度学习的,为什么最后选安卓开发?(逼着跟你讲实话是吧,后端跟算法我但凡能拿到offer我至于转安卓吗)6. 那你安卓学到什么程度了(老实说了只学了点基础)7. 安卓的四大组件知道吗(寄!其实根本还没学,只知道Activity,然后就被面试官笑了)8. 那以后给你一个项目你怎么能够保证你能够按时交付任务呢?(表示入职前能刻苦学习跟上进度)9. 那你任务安卓开发需要跟那些角色进行交流沟通(就说了测试,然后面试官开始引导说有UI设计,产品等)10. 问了点计网的八股文,输入到URL到网页显示发生了什么?UDP/TCP,TCP的演变11. 学习计算机网络对你的帮助。(理解不同场景使用不同协议)12. 场景提:做一个直播功能app,需要涉及到哪些协议。(就答上来一个UDP,然后开始引导,用户信息用什么比较好,答TCP,弹幕用什么?答UDP,为什么不用TCP?答UDP可以广播。信息丢失怎么办答?可以用UDP实现应答机制,保证可靠传输。面试官总结:所以用户信息用TCP进行传递,直播内容用UDP保证实时性,弹幕用UDP的广播机制实现,用应答机制保证可靠传输是吧?答是的。)13. 没有安卓开发经验,如果你成功入职你打算怎么办?(我会拼命学习的,给个机会吧你)反问:基本感觉寄了,但是还是问了评价。评价就是没有安卓经验有点劝退的意思。反问:需不需要提前实习?不需要,也可以安排实习。可能有兄弟就要问了?明知道要面安卓为什么连安卓四大组件都不知道?因为一面面试官说没有安卓经验也是没问题的,更看重基础能力,所以就没有去特意背安卓八股文,不如好好巩固了下基础(而且一面到二面也没几天)。
查看13道真题和解析
点赞 评论 收藏
分享
点赞 10 评论
分享
牛客网
牛客企业服务