嵌入式大厂面经 11(持续更新中!)

这是一个嵌入式大厂面试题专栏,每天更新高频面试题。专栏将包含题目描述、详细解析、相关知识点扩展以及实际代码示例。内容涵盖操作系统、驱动开发、通信协议等核心领域,并结合实际项目经验进行分析。每道题目都会附带面试官可能的追问方向,帮助大家更好地准备面试!

1. TCP和UDP的区别

TCP(传输控制协议)和UDP(用户数据报协议)是传输层的两种主要协议,它们在以下几个方面有显著区别:

连接性

  • TCP:面向连接的协议,通信前需要通过三次握手建立连接,通信结束后需要四次挥手释放连接。
  • UDP:无连接协议,不需要建立连接就可以直接发送数据,也不需要维护连接状态。

可靠性

  • TCP:提供可靠传输,通过序列号、确认应答、超时重传等机制确保数据完整无误地到达目的地。
  • UDP:不保证可靠传输,数据包可能丢失、重复或乱序,应用层需要自行处理这些问题。

数据传输

  • TCP:面向字节流,将应用层数据视为一连串无结构的字节流,TCP会将这些数据分段传输。
  • UDP:面向报文,以报文为单位进行传输,保留应用层数据的边界。

传输效率

  • TCP:由于需要建立连接、保证可靠性,传输效率相对较低,有较大的协议开销。
  • UDP:没有连接管理、可靠性保证的开销,传输效率高,延迟低。

应用场景

  • TCP:适用于对可靠性要求高的应用,如网页浏览、文件传输、电子邮件等。
  • UDP:适用于实时性要求高、允许少量数据丢失的应用,如视频会议、在线游戏、流媒体等。

头部开销

  • TCP:头部至少20字节,最多60字节(含选项)。
  • UDP:头部固定8字节,开销小。

2. TCP的三次握手和四次挥手

三次握手(建立连接)

  1. 第一次握手:客户端发送SYN包(SYN=1, seq=x)给服务器,进入SYN_SENT状态。
  2. 第二次握手:服务器收到SYN包,回复SYN+ACK包(SYN=1, ACK=1, seq=y, ack=x+1),进入SYN_RCVD状态。

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

嵌入式面试八股文全集 文章被收录于专栏

这是一个全面的嵌入式面试专栏。主要内容将包括:操作系统(进程管理、内存管理、文件系统等)、嵌入式系统(启动流程、驱动开发、中断管理等)、网络通信(TCP/IP协议栈、Socket编程等)、开发工具(交叉编译、调试工具等)以及实际项目经验分享。专栏将采用理论结合实践的方式,每个知识点都会附带相关的面试真题和答案解析。

全部评论
😱😱😱😱😱😱😱😱
点赞 回复 分享
发布于 03-26 10:12 上海
很好很好
点赞 回复 分享
发布于 03-25 16:02 黑龙江
点赞 回复 分享
发布于 03-25 09:08 山西

相关推荐

不愿透露姓名的神秘牛友
04-26 14:27
汇川 电梯事业部–应用软件开发 18.3k×12,700补贴,公积金8% 硕士其他
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务