网络相关 嵌入式面试题

2.网络编程(29道) 

2.1  列举一下 OSI  协议的各种分层。说说你最熟悉的一层协议的功能。
(1)七层划分为:应用层、表示层、会话层、传输层、网络层、 数据 链路层、物理层。
(2)五层划分为:应用层、传输层、网络层、 数据 链路层、物理层。 
(3)四层划分为:应用层、传输层、网络层、网络接口层。(TCP/IP协议对应模型) 
(4)各层功能: 

应用层

在实现多个应用进程相互通信的同时,完成一系列业务处理所需的服务,比如电子邮件、文件传输、远程登录等。

传输层

为通信双方的主机提供端到端的服务,有两个不同的传输协议 TCP UDP TCP提供可靠交付,而 UDP并不能保证可靠交付。

网络层

处理分组在网络中的活动,例如分组的选路。

网络接口层

处理与电缆(或其他任何传输媒介)的物理接口细节。


2.2 TCP/IP 协议包括?

应用层

Telnet (远程登录服务)、 FTP (文件传输,使用 TCP)、 SMTP (建立于 FTP上的邮件服务)、 DNS(域名与 IP地址相互转换)等

传输层

UDP (无连接、不可靠)、 TCP(面向连接、可靠传输)

网络层

IP (为主机提供一种无连接、不可靠、尽力而为的 数据 服务)、  ICMP(主机与路由器之间传递控制信息)、 IGMP(主机与路由器之间进行组播成员信息交互)

网络接口层

ARP IP  地址-> MAC 地址)、RARP MAC地址  -> IP地址)等


2.3 TCP  通信建立和释放的过程?端口的作用?

(1)连接是三次握手,释放是四次挥手。 

(2)端口是一个软件结构,被客户进程或服务进程用来发送和接收信息。一个端口对应一个16比特的数。服务进程通常使用一个固定的端口。 


2.4 IP 地址转换成物理地址的协议?反之?

答案:

(1)将IP地址转换成物理地址的协议是ARP(地址解析协议)。 

(2)反之则是RARP(反地址解析协议)。 

解读:

(1)ARP协议工作流程: 

①首先,每台主机都会在自己的ARP缓冲区( ARP Cache )中建立一个ARP列表,以表示IP地址和MAC地址的对应关系。   

②当源主机需要将一个 数据 包要发送到目的主机时,会首先检查自己ARP列表中是否存在该IP地址对应的MAC地址,如果有﹐就直接将  数据 包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。此ARP请求 数据 包里包括源主机的IP地址、  硬件 地址、以及目的主机的IP地址。 

③网络中所有的主机收到这个ARP请求后,会检查 数据 包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此  数据 包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个ARP响应  数据 包,告诉对方自己是它需要查找的MAC地址; 

④源主机收到这个ARP响应 数据 包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始  数据 的传输。如果源主机一直没有收到ARP响应 数据 包,表示ARP查询失败。 

(2)RARP协议工作流程: 

①网络上的每台设备都会有一个独一无二的硬件 地址,通常是由设备厂商分配的MAC地址。PC1从网卡上读取MAC地址,然后在网络上发送一个RARP请求的广播  数据 包,请求RARP服务器回复该PC的IP地址。 

②RARP服务器收到了RARP请求 数据 包,为其分配IP地址,并将RARP回应发送给PC1。 

③PC1收到RARP回应后,就使用得到的IP地址进行通讯。 


2.5 IP  地址的编码分为哪两部分?
IP地址由两部分组成,网络号和主机号。不过是要和"子网掩码"按位与上之后才能区分哪些是网络位哪些是主机位。 


2.6 应用程序ping 发出的是什么报文?

答案:应用程序ping发出的是ICMP请求报文。 

解读: ping的原理是利用网络上机器IP地址的唯一性,给目标IP地址发送一个 数据 包,通过对方回复的  数据 包来确定两台网络机器是否连接相通,时延是多少。 


2.7 socket 编程的流程?

(1)服务器端流程: 

函数

作用

socket()

创建套接字

bind()

绑定本地 IP地址和端口号

listen()

设置监听队列长度

accept()

等待连接

read()

接收信息

close()

关闭套接字

(2)客户端流程: 

函数

作用

socket()

创建套接字

connect()

发送连接请求

write()

发送信息

close()

关闭套接字


2.8 epoll 是什么?

(1)epoll是Linux网络编程中用于处理大批量文件描述符的机制,是对select/poll的改进。 

(2)select监听的fd是有上限的,32位处理器一般为1024;且select/poll每次调用会遍历所有fd,时间复杂度为O(n),效率太低。而epoll监听的fd数量没有限制,且能在O(1)的时间复杂度内完成操作。 

(3)epoll相关的系统调用有:epoll_creat、epoll_ctl、epoll_wait/epoll_pwait(可屏蔽特定信号),分别用来创建一个epoll文件描述符、添加/删除/修改需要侦听的文件描述符及事件、接收被侦听描述符的IO事件。epoll文件描述符用完之后直接close关闭即可。


以上内容摘自专刊《嵌入式岗位笔试面试真题讲解》,该专刊不仅有真题讲解,还有经验分享,不清楚嵌入式该学什么的同学,想找嵌入式实习/正式工作的同学,都可以来看看:                 


嵌入式公司推荐:华为、 小米 OPPO、VIVO、荣耀、一加、  CVTE、 大疆 、insta360影石、  美的 、      TCL  、 海信、创维、烽火、比亚迪  、吉利、长安、大众、经纬恒润 、小鹏、  图森未来、      百度 、 滴滴、蔚来、理想、 联发科、 紫光展锐 、全志、 寒武纪 、晶晨半导体 、汇顶、 华为、    中兴浪潮 、TP-LINK、讯飞、商汤、 海康威视 、浙江大华  、360、小马智行、元戎启行           、深信服  、移动、联通、电信、旷视 四维图新  中芯国际  、复旦微电子

XmSGaEUCmmXwODsKH6zow0nuHK7Jq19J.jpg
#网络编程##嵌入式##笔试##嵌入式面试##嵌入式面经#
全部评论

相关推荐

2026·INVITATION📍面试公司:OPPO💻面试岗位:软件工程师一面:面试分享关于项目与实习经历?“在之前的项目或实习中,您主要负责哪些模块?能否分享一个您解决技术难题或推进项目落地的具体案例?”关于安卓与嵌入式系统的关联?“在您看来,安卓系统在嵌入式设备中的应用有哪些技术挑战?能否结合实践经验谈谈两者的协同开发思路?”关于技术考察方式?“面试中更注重对底层原理和实战能力的考察,而非死记硬背的理论知识,该如何针对性准备?”二面:面试分享2026·INVITATION图片“关于项目中的调度算法实现,面试官的问题暴露了我对实时系统饥饿处理机制的认知局限。我仅想到用队列轮转缓解问题,但更优解其实是引入监控指标(如等待时间)并设定强制调度条件,这也是嵌入式系统中保证实时性的常见实践。”三面:面试分享2026·INVITATION图片主要问了个人规划,对oppo产品的改进需求。往期面经分享26--小鹏--校招--面经分享26--摩尔线程--校招面经分享(两道算法题)内推码分享 可以直接投递!!!地平线(嵌软面经)--26校招字节OS面经(嵌软)--26校招26-恒玄科技--嵌软面经(内推码来自在职群友分享)26--海康威视--校招--面经分享全志科技(BSP驱动)--社招面经分享面经VIVO(嵌入式开发)高通-(嵌入式开发)-面经分享嵌入式实习启动,你应该抓住机会!MOMENTA(嵌软)一面紫光展锐(嵌入式)--面经分享有ARM、高通、大疆、影石、恒玄科技、OPPO、VIVO等公司的在职佬。(中型、小型、大型公司都有)需要加群的伙伴,直接加我。我拉进群。图片内推分享,简历优先查看!!!图片-END-拉群和商务请联系:Not_dragging⭐防止找不到我,记得关注后星标⭐面经分享内推免费
产品薪资爆料
点赞 评论 收藏
分享
投递OPPO等公司10个岗位
点赞 评论 收藏
分享
评论
7
48
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务