备战嵌入式春招 笔试面试题

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
#春招提前批,你开始投了吗##嵌入式##嵌入式春招##笔试##面经#
全部评论

相关推荐

🕒 岗位/笔试时间 3.28📝 笔试题目 行测,专业问题,c代码解决一个问题,实现同步信号选择什么方式(双工如spi,半双工iic),什么时候用嵌入式操作系统🕒 岗位/面试时间 4.01,1h👥 面试题目1.自我介绍2.介绍项目,做了什么,针对做的东西的一些问题(gps和mpu6050的问题,首先gps硬件连接(uart),连接了什么接口(TX,RX,GND),获取什么数据(经纬度GPGGA)传输数据是什么格式(NMEA0813);接着mpu6050用的什么接口(iic),接收的数据是什么(加速度和陀螺仪的数据,用calculate函数进行处理,阈值检测的方式);使用的stm32芯片是什么封装。毕业设计问了一个用到的北斗短报文如何使用,什么协议,软件部分怎么实现)3.因为项目用到了freertos操作系统,问了一些这方面的比如:从stm32 rtos串口数据解析介绍,对于一个串口做一个应答机,包括解析数据,解包,发回复信息,考虑做成几个任务(我回答三个,串口接收,数据解析解包,发送回复信息。又问了具体怎么实现的问题)4.串口接收时我提到用中断,问了关于中断的问题,比如串口控制器在什么情况下会出发中断,中断用在什么地方5.上个问题我提到了DMA,问了dma接收软件部分的操作6.freertos的多任务同步机制列举(消息队列,互斥锁,条件变量,其他的想不起来了面试官就进入下一个问题了)7.iic和spi的区别,比如机制不同,速率不同,通信方式不同8.全局变量和局部变量放在什么位置9.堆和栈的区别10.关于个人喜欢什么课程为什么在做项目时有没有很困难的事情,怎么解决的平时看不看书看什么书项目获得过奖项,你觉得有没有什么值得改善的地方(我回答硬件选型精度不合适,仅考虑实现功能导致外观太大,硬件可以改成pcb,APP简陋等)看待事物偏向整体还是细节在做推进项目的任务计划时怎么做的在做个人待办计划时怎么做的在校园生活里付出了120%的努力的事情是什么考研院校个人职业规划对理想工作的三个要求🤔 面试感受面试官很温和,最后问问题环节我问了对我的面试情况提一些建议,面试官的回答很有用,提到了我的笔试内容和需要提高的部分;还问了后续安排,得知两轮技术面一轮CEO面;面试官介绍了一些情况如图 #软件开发2024笔面经#
点赞 评论 收藏
转发
9 68 评论
分享
牛客网
牛客企业服务