本文介绍: 嵌入式面试题–计算机网络

说明:

  • 面试群,群号: 228447240
  • 面试题来源于网络书籍,公司题目以及博主原创或修改(题目大部分来源于各种公司);
  • 文中很多题目,或许大家直接编译器写完,1分钟就出结果了。但在这里博主希望每一个题目,大家都要经过认真思考,答案不重要,重要的是通过题目理解所考知识点,好应对题目更多的变化;
  • 博主与大家一起学习,一起刷题,共同进步;
  • 写文不易,麻烦给个三连!!!

1.TCPUDP的区别

答案:

TCP
传输控制协议
,
提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP
连接,之后才能传输数据。
UDP
用户数据报协议,是一个简单的面向数据报的运输层协议。
UDP
不提供可靠性,它只是把应用程序传给IP
层的数据报发送出去,但是并不能保证它们能到达目的地。
(1

TCP
是面向连接的,
UDP
是面向无连接的
(2

UDP
程序结构较简单
(3

TCP
是面向字节流的,
UDP
是基于数据报的
(4

TCP
保证数据正确性,
UDP
可能丢包
(5

TCP
保证数据顺序到达,
UDP
不保证

2.TCPUDP的优缺点

答案:

TCP优点:可靠稳定
TCP
的可靠体现在
TCP
在传输数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完之后,还会断开来连接用来节约系统资源。
TCP缺点:慢,效率低,占用系统资源高,易被攻击
在传递数据之前要先建立连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞机制等都会消耗大量时间,而且要在每台设备上维护所有的传输连接。然而,每个连接都会占用系统的CPU
,内存等硬件资源。因为TCP
有确认机制、三次握手机制,这些也导致
TCP
容易被利用,实现
DOS
、DDOS、
CC
等攻击。
UDP优点:快,比TCP稍安全
UDP
没有
TCP
拥有的各种机制,是一种无状态的传输协议,所以传输数据非常快,没有
TCP
的这些机制,被攻击利用的机会就少一些,但是也无法避免被攻击。
UDP缺点:不可靠,不稳定
因为没有
TCP
的这些机制,
UDP
在传输数据时,如果网络质量不好,就会很容易丢包,造成数据的缺失。

3.TCP UDP适用场景

答案:

TCP
传输一些对信号完整性,信号质量有要求的信息。
UDP
对网络通讯质量要求不高时,要求网络通讯速度要快的场景。

4.OSI典型网络模型,简单说说有哪些

答案:

5.请说一下socket网络编程中客户端和服务端用到哪些函数?

答案:

1服务器端函数:

        (1)socket创建一个套接字

        (2)bind绑定ip和port

        (3)listen使套接字变为可以被动链接

        (4)accept等待客户端的链接

        (5)write/read接收发送数据

        (6)close关闭连接

2客户端函数:

       (1)创建一个socket,用函数socket()

        (2)bind绑定ip和port

        (3)连接服务器,用函数connect()

        (4)收发数据,用函数send()和recv(),或read()和write()

        (5)close关闭连接

6.TCP如何保证可靠性?

答案:

1.检验和:

        通过检验和的方式,接收端可以检测出来数据是否有差错和异常,假如有差错就会直接丢弃TCP段,重新发送。TCP在计算检验和时,会在TCP首部加上一个12字节的伪首部。检验和总共计算3部分:TCP首部、TCP数据、TCP伪首部.

2.序列号/ 确认应答、超时重传

        数据到达接收方之后,接收方会发送一个确认应答,表示已经收到数据段,并且确认序号会说明了它下一次需要接收的数据序列号,如果发送方没收到确认应答,那么发送方方会进行重发,这个等待时间一般是2*RTT(往返时间)+一个偏差值。

如果一个包多次重发没有收到接收端的确认包,就会强制关闭连接

3.窗口控制与重发控制/快速重传(重复确认应答)

        TCP会利用窗口控制来提高传输速度,意思是在一个窗口大小内,不用一定等到应答才能发送下一段数据,窗口大小就是无需等待确认而可以继续发送数据的最大值,如果不使用窗口控制,每一个没收到应答的数据都要重发。

7.简述 TCP 滑动窗口以及重传机制

答案:

1)滑动窗口协议是传输层进行流控的一种措施,接收方通过通告发送方自己的窗口大小,从而控制发送方的发送速度,从而达到防止发送方发送速度过快而导致自己被淹没的目的。滑动可以理解为缓冲区的大小,告诉发送方,自己还能接受多少数据

TCP的滑动窗口解决了端到端的流量控制问题,允许接受方对传输进行限制,直到它拥有足够的缓冲空间来容纳更多的数据。

2)TCP在发送数据时会设置一个计时器,若到计时器超时仍未收到数据确认信息,则会引发相应的超时或基于计时器的重传操作,计时器超时称为重传超时(RTO) 。另一种方式的重传称为快速重传,通常发生在没有延时的情况下。若TCP累积确认无法返回新的ACK,或者当ACK包含的选择确认信息(SACK)表明出现失序报文时,快速重传会推断出现丢包,需要重传。

8.简述 TCP 慢启动

答案:

慢启动(Slow Start),是传输控制协议(TCP)使用的一种阻塞控制机制。慢启动也叫做指数增长期。慢启动是指每次TCP接收窗口收到确认时都会增长。增加的大小就是已确认段的数目。这种情况一直保持到要么没有收到一些段,要么窗口大小到达预先定义的阈值。如果发生丢失事件,TCP就认为这是网络阻塞,就会采取措施减轻网络拥挤。一旦发生丢失事件或者到达阈值,TCP就会进入线性增长阶段。这时,每经过一个RTT窗口增长一个段。

9.三次握手和四次挥手

答案:

1)三次握手目的:是为了确认客户端和服务器都能收发   

        第一次:

        作用:客户端确认自己可以发 ,服务器确认自己能收客户端发送信息给服务器,服务器接受客户端信息     

        第二次:

        作用:客户端确认自己能收,服务器能发也能收     服务器确认自己能发服务器发送应答给客户端,客户端接收应答和报文

        第三次:

        作用:服务器确认客户端可以收到客户端应答服务器

第一次:客户端将标志位SYN设置为1,随机产生一个seq=x,并将该数据包发送给服务端,客户端进入SYN_SENT状态,等待服务端确认

第二次:服务端收到数据包后,由标志位SYN=1可知client请求连接,服务端将标志位SYN和ACK都置1,ack=x+1,并将该数据包发送给客户端确认连接请求,服务端进入SYN_RCVD状态

第三次:客户端收到确认后,检查ack是否为x+1,ACK是否为1,如果正确,将数据包发给服务端,服务端检查ACK是否为1,ack是否为y+1,如果是,则连接成功,服务器和客户端都进入ESTABLISHED

2)四次挥手

客户端发送FIN=1给客户端,告诉服务端数据已经发送完毕,请求终止连接,此时客户端不能发送数据(不包括协议,比如应答这些),但还能接收数据,

服务端接受FIN包之后给客户端回一个ACK包告诉它自己已经收到,此时没有断开socket连接,而是等待剩下的数据传输完成

服务端等待数据传输完毕之后,向客户端发送FIN包,表明可以断开连接

客户端收到后,回应一个ACK包表明已经收到,等待一段时间,确保服务端没有数据再发来,然后彻底断开

10.说说 TCP 2次握手行不行?为什么要3次

答案:

TCP协议双方都必须维护一个序列号,三次握手的过程及时通信双方互相告知序列号起始值,并确认对方已经收到了序列号。

如果只是两次握手,至多只有连接发起方的起始序列号能被确认,另一方选择的序列号则是得不到确认,服务器这边无法判断客户端是否能接收。

11.三次挥手可以吗

答案:

假设是客户端主动断开,在第一次挥手中客户端发起请求断开,接着服务器回了个应答(第二次),表示我已经收到请求。等一段时间,等服务器的数据发送完成之后再向客户端发起断开(第三次)。客户端接受到之后发起应答(第四次)。

如果是三次挥手那么只能是第二和第三次合并,即收到第一次挥手之后,发起应答和断开请求,但是这样会存在服务器有些数据还没发送完成就发起断不开

  一句话:服务器回应你的请求断开,服务器可能还有数据没发送,所以应答和FIN就分开发。

12.简述域名解析过程

答案:

(1)输入域名后,系统首先会在本地的hosts文件检查是否有这个网址的映射,如果有就调用这个IP地址完成域名的解析。

(2)如果没有,就会去查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成解析。

(3)如果上面两种都没有,首先会找TCP/IP参数设置的首选DNS服务器,我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名在本地配置区域资源中,则解析。

原文地址:https://blog.csdn.net/weixin_45257157/article/details/135731201

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_60530.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注