首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
冯晓宇_
南京工业大学 测试工程师
发布于江苏
关注
已关注
取消关注
@Aosper:
嵌入式软件常用面试题汇总之Linux系统相关(2)
Linux系统之网络编程相关的面试题汇总对于应届生校招类,面试时候基本上只要关键词有达到就可以了。1.介绍下TCP协议?关键词:面向连接,可靠,有序,准确性。TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层协议。它负责在网络中提供可靠的、有序的数据传输服务。适用于需要确保数据完整性和可靠性的应用,如文件传输、远程登录和Web浏览。以下是TCP协议的主要特点和功能:面向连接: TCP在通信开始之前需要建立连接,确保通信的两端都知道对方的存在,并且彼此可以进行通信。连接的建立和断开分别使用三次握手和四次挥手的过程。三次握手(Connection Establishment):客户端向服务器发送连接请求(SYN)。服务器接收到请求后回复确认连接请求,并发送自己的连接请求(SYN-ACK)。客户端接收到服务器的确认后发送确认(ACK)。四次挥手(Connection Termination):发送方通知接收方,准备关闭连接。接收方收到通知后回复确认,并通知应用层停止发送数据。接收方完成数据发送后,发送关闭连接请求。发送方接收到关闭请求后,回复确认,完成连接的关闭。可靠性: TCP通过一系列的机制确保数据的可靠传输,包括序号、确认和重传机制。序号和确认: 每个TCP段都有一个序号,接收方使用确认号来指示已成功接收的最后一个字节的序号。序号和确认号用于维护有序的数据传输。重传机制: 如果发送方在一定时间内未收到对方的确认,或者接收方检测到丢失的数据,就会触发重传机制,重新发送未确认的数据。流控制: TCP使用滑动窗口机制进行流控制,确保发送方不会发送太多数据导致接收方无法处理。接收方通过通告窗口大小来告知发送方当前可接收的数据量。拥塞控制: TCP通过拥塞窗口控制算法来避免网络拥塞。发送方通过控制发送速率和动态调整拥塞窗口大小来适应网络状况。数据分段和重组: TCP将应用层数据分割成小的数据段进行传输,每个数据段包含序号。接收方根据序号将数据段重组成完整的数据流。首部格式: TCP首部包含各种控制信息,如源端口和目标端口、序号和确认号、窗口大小、标志位(SYN、ACK、FIN等)等。2.介绍下UDP协议?关键词:无连接,不可靠性,快速传输和低延迟UDP(User Datagram Protocol)是一种无连接的、简单的传输层协议。与TCP不同,UDP不提供可靠性、流控制和拥塞控制,它主要关注快速传输和低延迟。适用于对实时性要求较高的应用。以下是UDP协议的主要特点和功能:无连接: UDP是无连接的,通信的两端在发送和接收数据之前不需要建立连接。这使得UDP更加轻量和灵活,适用于一些实时性要求较高、容忍少量数据丢失的应用。不可靠性: UDP不提供可靠性保证,它不负责数据的重传和顺序控制。如果数据在传输过程中丢失或损坏,UDP不会进行任何恢复操作。简单: UDP的头部相对较小,仅包含必需的字段,不像TCP那样包含大量的控制信息。这使得UDP的开销较小,传输效率更高。快速传输: 由于UDP的简单性和无连接性质,它在传输数据时速度较快。这使得UDP常用于实时应用,如音频和视频流传输。广播和多播支持: UDP支持广播和多播,可以将数据同时发送给多个接收方。这对于一对多的通信场景非常有用。适用场景:实时应用: 由于UDP的低延迟和快速传输特性,它常被用于实时通信应用,如语音通话、视频会议和在线游戏。广播和多播: UDP适用于需要一对多通信的场景,比如视频直播和网络广播。简单请求-应答: 对于某些简单的请求-应答模式,UDP可能比TCP更适用。首部格式: UDP首部较为简单,包含源端口和目标端口、长度和校验和等字段。3.TCP与UDP具体区别?关键词:连接性,可靠性,流控制和拥塞控制连接性:TCP: 面向连接的协议,通信前需要通过三次握手建立连接,之后才能进行数据传输。提供可靠的、面向字节流的通信。UDP: 无连接的协议,通信的两端在传输数据之前不需要建立连接。每个UDP数据包都是独立的,没有先后顺序的要求。可靠性:TCP: 提供可靠的数据传输,通过序号、确认和重传机制来保证数据的可靠性。确保数据的有序性和完整性。UDP: 不提供可靠性保证,不进行数据的重传和顺序控制。适用于对数据实时性要求较高的场景,允许一定程度的丢失。流控制和拥塞控制:TCP: 使用滑动窗口和拥塞控制算法,以避免网络拥塞,确保数据的流畅传输。UDP: 不提供流控制和拥塞控制机制,数据包可能会因网络拥塞而丢失。首部开销:TCP: 首部较大,包含许多控制信息,导致相对较高的开销。UDP: 首部较小,只包含基本的信息,开销相对较小。适用场景:TCP:适用于对数据完整性和可靠性要求较高的应用,如文件传输、Web浏览、电子邮件等。适用于需要保持连接状态的应用,如HTTP、FTP等。UDP:适用于对实时性要求较高、可以容忍少量数据丢失的应用,如语音通话、视频流传输、在线游戏等。适用于广播和多播通信,如视频直播。数据分段:TCP: 提供面向字节流的通信,会将应用层数据分段并传输。UDP: 保留应用层的消息边界,每个UDP数据包都是独立的,不会分段。头部校验和:TCP: 包含头部校验和字段,用于检测数据包是否被损坏。UDP: 同样包含头部校验和字段,但是校验和的计算方式不同。4.什么时候选TCP 什么时候选UDP?TCP:流式套接字基于可靠的数据流传输服务,面向连接的特点决定了流式套接字的传输代价大,且只适合于一对一的数据传输;可靠的特点意味着上层应用程序在设计开发时不需要过多的考虑数据传输过程中的丢失、乱序、重复问题。因此,TCP的适用场合如下:大数据量的数据传输应用:流式套接字适合文件传输这类大数据量传输的应用,传输的内容可以是任意大的数据。在这种场景下,数据传输量大,对数据传输的可靠性要求高,且与数据传输的代价相比,连接维护的代价微乎其微。可靠性要求高的传输应用:流式套接字适合应用在可靠性要求高的传输应用中,在这种情况下,如果使用其他不可靠的传输服务承载数据,那会带来复杂的编码代价。UDP:数据报套接字基于不可靠的报文传输服务,这种服务的特点是无连接、不可靠。无连接的特点决定了数据报套接字的传输非常灵活,具有资源消耗小,处理速度快的优点。而不可靠的特点意味着在网络质量不佳的环境下,发生数据包丢失的现象会比较严重。因此,UDP的使用场合如下:音频、视频的实时传输应用:这类对实时性要求比较高,传输内容通常被切分为独立的数据报,UDP协议节省了很大的网络开销,应用UDP协议的实时性并增加控制功能是实现实时传输应用较好的解决方法。广播或多播的传输应用:TCP只能用于1对1的数据传输,如果应用程序需要广播或多播传送数据,那么必须使用UDP协议。简单高效需求大于可靠需求的传输应用:即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响的场景下。5.TCP是如何保证可靠数据传输的总结:序号和确认机制用于维护有序传输,重传机制和超时机制用于应对数据包的丢失,滑动窗口和流控制机制用于适应网络状况的变化。具体使用以下机制:序号和确认机制:序号: TCP在传输数据时为每个字节分配一个唯一的序号,用于标识数据的顺序。确认: 接收方通过确认号告知发送方已成功接收到的最后一个字节的序号。重传机制:如果发送方在一定时间内未收到接收方的确认,或者接收方检测到丢失的数据,发送方会重新发送未确认的数据。通过使用超时机制,发送方可以确定何时应该触发重传操作。滑动窗口:TCP使用滑动窗口机制来进行流控制,确保发送方不会发送太多数据导致接收方无法处理。接收方通过通告窗口大小来告知发送方当前可接收的数据量。流控制:TCP使用基于窗口的流控制机制,通过动态调整窗口大小,确保发送方不会超过接收方的处理能力。接收方通过TCP头部的窗口字段通告其可接收的数据量,发送方根据这个信息来控制发送速率。连接管理:TCP使用三次握手和四次挥手的连接管理机制,确保连接的建立和断开是可靠的。三次握手用于建立连接,四次挥手用于关闭连接。超时和重传:TCP使用超时机制来检测数据包是否丢失。如果在规定的时间内未收到确认,发送方会重传数据。通过动态调整超时时间,TCP可以适应网络条件的变化。校验和:TCP在首部中包含一个16位的校验和字段,用于检测数据包是否在传输过程中发生损坏。接收方使用校验和来验证接收到的数据的完整性。6.具体介绍下TCP的三次握手四次挥手?三次握手(建立连接):客户端向服务器发送连接请求:客户端(Client)发送一个TCP报文段,设置SYN(同步)标志位为1,表示请求建立连接。客户端选择一个初始序列号(ISN),用于标识发送的数据字节。服务器回复确认连接请求:服务器(Server)收到客户端的连接请求后,发送一个TCP报文段,设置SYN标志位为1,同时设置ACK(确认)标志位为1。服务器选择自己的初始序列号,并确认客户端的序列号(ISN+1)。客户端确认连接:客户端收到服务器的确认后,发送一个TCP报文段,设置ACK标志位为1,表示连接已经建立。此时,客户端和服务器之间的连接已经建立,可以开始传输数据。四次挥手(关闭连接):发起关闭:一方(假设是客户端)发送一个TCP报文段,设置FIN(结束)标志位为1,表示希望关闭连接。客户端进入FIN-WAIT-1状态。确认关闭请求:另一方(服务器)收到关闭请求后,发送一个TCP报文段,设置ACK标志位为1,确认收到关闭请求。服务器进入CLOSE-WAIT状态。关闭连接并发送FIN:服务器在关闭时,如果没有待发送的数据,会发送一个TCP报文段,设置FIN标志位为1,表示可以关闭连接。客户端收到服务器的FIN后,进入CLOSE-WAIT状态。确认关闭连接:客户端发送一个TCP报文段,设置ACK标志位为1,确认收到服务器的关闭请求。服务器收到确认后,进入LAST-ACK状态。客户端在发送确认后,等待一段时间,确保服务器收到最后的确认,然后进入TIME-WAIT状态。7.了解过七层网络模型与四层网络模型及每层的网络协议吗?两个常用的网络模型是OSI(Open Systems Interconnection)七层模型和TCP/IP四层模型。OSI七层模型:物理层(Physical Layer):负责传输比特流,定义物理传输媒介和接口标准。主要协议: IEEE 802.3(Ethernet)、IEEE 802.11(Wi-Fi)、T1/E1等。数据链路层(Data Link Layer):提供可靠的点对点通信,将比特流组织成帧,并进行错误检测和纠正。主要协议: PPP(Point-to-Point Protocol)、HDLC(High-Level Data Link Control)、Ethernet帧。网络层(Network Layer):实现数据包的路由和转发,提供端到端的逻辑地址。主要协议: IP(Internet Protocol)、ICMP(Internet Control Message Protocol)、OSPF(Open Shortest Path First)、BGP(Border Gateway Protocol)。传输层(Transport Layer):提供端到端的可靠数据传输服务,负责分段、流控制和错误恢复。主要协议: TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)。会话层(Session Layer):管理会话的建立、维护和终止,提供数据同步和恢复。主要协议: NetBIOS(Network Basic Input/Output System)、RPC(Remote Procedure Call)。表示层(Presentation Layer):处理数据格式和编码,确保应用层的数据能够正确解释。主要协议: JPEG、ASCII、EBCDIC。应用层(Application Layer):提供网络服务和应用程序之间的通信,是用户直接接触的层次。主要协议: HTTP(Hypertext Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)。TCP/IP四层模型:链路层(Link Layer): 与OSI模型的物理层和数据链路层相当。 主要协议: ARP(Address Resolution Protocol)、Ethernet。网络层(Internet Layer):与OSI模型的网络层相当。主要协议: IP(Internet Protocol)、ICMP(Internet Control Message Protocol)。传输层(Transport Layer):与OSI模型的传输层相当。主要协议: TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)。应用层(Application Layer):与OSI模型的应用层、表示层和会话层相当。主要协议: HTTP(Hypertext Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)。8.端口号与ip、网关的作用?在国际互联网(Internet)上有成千百万台主机(host),为了区分这些主机,人们给每台主机都分配了一个专门的“地址”作为标识,称为IP地址。 IP协议是由TCP、UDP、ARP、ICMP等一系列子协议组成的。其中,主要用来做传输数据使用的是TCP和UDP协议。在TCP和UDP协议中,都有端口号的概念存在。端口号的作用,主要是区分服务类别和在同一时间进行多个会话。网关(Gateway)又称网间连接器、协议转换器。网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。在使用不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。同时,网关也可以提供过滤和安全功能。大多数网关运行在OSI 7层协议的顶层--应用层。9.如果只有UDP协议,你如何保证可靠传输?需要在应用层或协议的上层实现一些机制,因为UDP本身不包含这些特性,可能可以这样做:应用层实现重传机制:在应用层实现自定义的重传机制,即在发送数据的一方,监测对方是否接收到数据,如果未收到确认,就进行重传。这需要在应用层维护数据的发送和接收状态。超时和定时器:应用层可以使用超时和定时器机制来确定何时进行重传。如果发送方在一定时间内未收到对方的确认,可以选择重传数据。数据包编号和顺序检查:在应用层为数据包编号,接收方在收到数据时检查序号,确保数据包的顺序正确。如果发现有丢失的数据包,可以请求发送方重新发送。应用层流控制:实现自定义的流控制机制,通过在应用层进行数据发送的速率控制,以防止发送方过快地发送数据,导致接收方无法处理。确认机制:在应用层实现确认机制,接收方收到数据后,发送确认消息给发送方。发送方在一定时间内未收到确认,可以选择重传。10.Socket编程中服务器端和客户端主要用到哪些函数?服务器端常用函数:socket():创建套接字,用于监听客户端的连接请求。示例:socket(AF_INET, SOCK_STREAM, 0);bind():将套接字与特定的IP地址和端口绑定。示例:bind(server_socket, (struct sockaddr*)&server_address, sizeof(server_address));listen():启动监听模式,使服务器可以接受客户端的连接请求。示例:listen(server_socket, backlog);accept():接受客户端的连接请求,创建一个新的套接字用于与客户端通信。示例:client_socket = accept(server_socket, (struct sockaddr*)&client_address, &client_address_len);recv() / send():在已连接的套接字上接收和发送数据。示例:recv(client_socket, buffer, sizeof(buffer), 0);close():关闭套接字,释放资源。示例:close(server_socket);客户端常用函数:socket():创建套接字,用于连接服务器。示例:socket(AF_INET, SOCK_STREAM, 0);connect():尝试连接到服务器的套接字。示例:connect(client_socket, (struct sockaddr*)&server_address, sizeof(server_address));send() / recv():在已连接的套接字上发送和接收数据。示例:send(client_socket, data, sizeof(data), 0);close():关闭套接字,释放资源。示例:close(client_socket);10.在百度上进行搜索时,会用到网络中的什么层?大概讲一下流程?在进行百度搜索的过程中,当你输入搜索关键词并按下回车时,应用层的协议(例如HTTP)会将搜索请求封装成数据包。传输层的协议(例如TCP或UDP)负责将数据包分段并添加源端口和目标端口信息。网络层的协议(例如IP)负责将数据包从源设备传输到目标设备,通过路由器进行转发。链路层和物理层负责在相邻网络节点之间传输数据帧,最终将数据送达目标。
点赞 4
评论 0
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
07-26 11:56
门头沟学院 Java
计算机方向,你被公司挂掉的原因有哪些?
计算机方向,你被公司挂掉的原因有哪些? 大家好,我是程序员小白条,今天来给大家围绕公司挂人的原因来展开一篇文章,有的公司初筛分HR和部门,一般HR就是看学历和目标院校了,部门可能要看实习经历是否对口,技术是否符合预期。 正文 简历关被挂 1)学历/学校不符合目标公司筛选标准 2)大厂通常有目标院校列表,非目标院校容易被系统自动过滤 3)部分岗位(如算法)对硕士学历有硬性要求,新能源等汽车,现在很多要求硕士起步了,甚至是测试行业! 项目经历缺乏竞争力 1)全是课程作业/培训班项目 2)项目描述过于简单,没有体现技术深度 3)缺乏可量化的成果展示 其实项目写的不好,本质上很多人本来就是速成的,或者...
八股传道之路
点赞
评论
收藏
分享
07-28 16:22
运维工程师
专科26应届找不到运维实习,简历求拷打
简历中的项目经历要怎么写
点赞
评论
收藏
分享
06-06 17:27
天津工业大学 golang
云智研发发了笔试后不久就发了面试,还需要做笔试吗🤔
如题,以及话说6月份了真的还招人吗🥹
我还是走开发吧:
金六银七
投递腾讯云智研发等公司10个岗位
点赞
评论
收藏
分享
07-15 00:33
江苏大学 Java
27届想找大厂实习,求简历指导!
代码飞升:
哈哈哈哈评论区三个打广告的
简历中的项目经历要怎么写
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
07-29 16:26
实习生工作越做越多是正常的吗……
日薪工资120,一开始的工作还好,但是不知道是不是看我每天都能做完工作量越来做多。我也试过拖延不做完,但是老板会让我带回家做,我还自暴自弃跟老板说我回到家很晚了,做完都凌晨了也要吗。老板也说要。然后我问他实习生加班有工资吗,他说工作日加班没工资。我很无语了。然后现在就是每隔几天就给我加新东西让我越来越多工作,但是工资算下来就一丢丢。做的都是dw,也学不到什么东西。没有餐补也没有住房补贴,我麻了。越做越难受,但是没找到新工作又跑不掉。要不是为了实习证明我早就跑了。好累啊
工作中哪个瞬间让你想离职
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
都是 dirty work,为什么别人的简历上就能言之有物🤔
2.1W
2
...
虾皮后端一面(已挂)
4372
3
...
虾皮秋招一面
4266
4
...
百度提前批,三面被推迟一周,喜提秋招第一凉
3643
5
...
7.30滴滴提前批一面凉经
3384
6
...
百度提前批 三面
3289
7
...
干活最少的实习生因为长得漂亮转正了
3075
8
...
他拿大厂SSP Offer打牌是什么概念啊?25届双非之光
3036
9
...
QQ提前批一面凉经
2560
10
...
7.30百度提前批一面
2487
创作者周榜
更多
正在热议
更多
#
你遇到最难的面试题目是_
#
15212次浏览
193人参与
#
反问环节如何提问
#
95545次浏览
1951人参与
#
中兴秋招
#
203819次浏览
2280人参与
#
简历上的经历如何包装
#
24496次浏览
728人参与
#
如何看待offer收割机的行为
#
815584次浏览
6088人参与
#
你最讨厌面试问你什么?
#
25209次浏览
282人参与
#
秋招最大的收获是什么?
#
38633次浏览
323人参与
#
我的实习收获
#
90906次浏览
1038人参与
#
26届的你,投了哪些公司?
#
37239次浏览
428人参与
#
滴滴求职进展汇总
#
233363次浏览
2116人参与
#
作业帮求职进展汇总
#
57019次浏览
376人参与
#
初创公司值得加入吗?
#
27329次浏览
194人参与
#
我对___祛魅了
#
43552次浏览
410人参与
#
数字马力求职进展汇总
#
184463次浏览
1500人参与
#
你跟室友的关系怎么样?
#
6125次浏览
94人参与
#
什么样的背景能拿SSP?
#
31606次浏览
202人参与
#
工作中哪个瞬间让你想离职
#
60747次浏览
545人参与
#
和同事相处最忌讳的是__
#
21261次浏览
217人参与
#
去年你投递实习了吗?
#
22892次浏览
331人参与
#
如何快速融入团队?
#
14968次浏览
182人参与
#
机械人的金三校招总结
#
36260次浏览
461人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务