首页 > 编程知识 正文

教师面试答辩100题,网络技术面试题及答案

时间:2023-05-06 21:06:03 阅读:15901 作者:3766

计算机面试常见问题1.5层协议体系结构及各层的作用1.APP应用层的任务是通过应用流程之间的交互完成特定的网络应用。 APP应用层协议定义了APP应用程序进程之间的通信和交互方式,每个APP应用程序都有不同的APP应用层协议。 常见的是域名系统DNS、www APP应用的HTTP协议

2 .传输层主要负责为两台主机的进程之间的通信提供通用的数据传输服务,APP应用进程利用该服务传递APP应用层的消息。 的数据传输服务意味着多个网络可以使用同一传输层服务,而不是针对特定的网络APP应用程序。 传输层协议主要有两种类型的TCP。 提供面向连接、面向字节流的可靠的数据传输服务。 UDP )提供在无连接的情况下尽最大努力传输数据(但不保证数据传输可靠性)的数据传输服务。

3 .网络层在计算机网络通信的两台主机之间,可能经过许多数据链路和通信子网,网络层的任务是选择合适的网间路由和交换节点,保证数据及时传输。

网络层使用IP 协议,因此分组为IP 数据报,简称数据报

4 .在数据链路层的两台主机之间进行的数据传输总是在一定的数据链路上进行。 因此,需要专用的链路层协议。 数据链路层将从网络层传递的ip数据报组装成帧,并在相邻链路节点上传送帧。 每一帧都包含必要的数据和控制信息。

5 .物理层角色是实现相邻计算机节点之间的比特流的透明传输,尽可能屏蔽特定传输介质和物理设备之间的差异

2.TCP三次握手四次握手的过程:服务器新建套接字绑定地址,进入侦听状态,客户端新建套接字绑定地址,调用connect 向服务器发出SYN请求以建立连接,然后进入syn_sent状态,在服务器收到客户端的连接请求后,将该连接放入内核队列。 然后,接着发送syn和确认消息段ack,进入syn_recd状态,当客户端接收到来自服务器的syn-ack消息段时,客户端向服务器发送ack确认消息段,establible

三次握手的目的:三次握手是为了让通信双方确认自己和对方收发数据的能力,建立可靠的通信渠道。

第一次握手:服务器知道自己的接受能力正常,对方的发送能力正常。 第二次握手:客户端知道自己的收发能力正常,服务器收发能力正常。 第三次握手:服务器知道自己的收发能力正常,服务器收发能力正常。

为什么不能握手两次或握手四次,挥手三次的目的是为了让通信双方确认自己和对方的数据收发能力,建立可靠的通信信道,但如果只握手两次,服务器不知道自己的发送能力和对方的接收能力,建立了可靠的通信信道因为握手三次就能达到目的,所以不需要握手四次,会产生额外的资源浪费。

第二次握手还了ACK,为什么还要还SYN? 返回ack是为了告诉客户端我收到的消息是您发送的信号,表面上客户端到服务器的通信正常,返回syn是为了建立服务器到客户端的连接。

半连接队列是指服务器在第一次从客户端接收syn后处于syn_rcvd状态。 此时,双方还没有建立连接。 此时,服务器将此状态的连接放入内核的队列中

此队列称为半连接队列。

4挥手过程:客户端主动调用close方法,向服务器发送fin结束报文段,同时进入fin_wait1状态。 服务器接收到客户端发送的fin结束消息段后,服务器返回ack确认消息段并进入close_wait状态。 在这种情况下,如果仍需要向服务器发送数据,则客户端仍然需要接受,并且在客户端接收到服务器的确认消息段ack之后,客户端接收到服务器的确认消息段ack的服务器的所有数据服务器真的调用close方法,向客户端发送fin结束消息段进入last_ack状态,等待最后一个ack的到来。 客户端收到服务器的fin退出消息后,向服务器发送ack确认消息进入time_wait状态,服务器收到客户端的ack后,进入关闭状态断开连接,客户端处于关闭状态

为什么握手是3次,挥手的时候需要4次呢? 在第二次握手过程中,由于同时发送了ack和syn,握手过程减少了一次。 但是,四次握手不能同时发送服务器的ack和fin。 这是因为服务器收到客户端的fin请求后,无法立即断开连接。 由于服务器可能尚未发送数据,因此可以只返回一个ack段作为响应,并在数据发送完成后向客户端发送fin段。

为什么在TIME_WAIT状态变为CLOSED状态之前MSL是消息在网络上的最大生存时间,并且客户端上次发送ack时,ack可能无法到达服务器? 如果服务器在一个MSL之后没有接收到ack,则提示客户端重发ack。 这样,一次传输时间最大是2MSL,并且客户端即使超过2MSL也没有接收到来自服务器的重发请求

一台主机发生大量CLOSE_WAIT的原因是什么? 我该怎么办? 没关系

能是被动关闭一方最后忘记调用close释放资源,只需要在对应位置加上close即可解决问题

3.TCP/UDP区别

TCP提供面向连接,面向字节流的可靠的数据传输服务。TCP主要应用在需要通信数据可靠性的场景比如邮件,文件传送。TCP不支持广播。

UDP提供无连接,尽最大努力保证数据传输(但不保证传输可靠性)的面向数据报的数据传输服务。UDP的主要应用场景是一些即时性要求较高的场景比如 视频电话,语音电话,直播等。UDP支持广播。

4.TCP 协议如何保证可靠传输

1.确认应答机制:TCP接受方收到数据后会返回ack告诉发送方收到数据,并指示发送方下一次从哪里开始发送。

2.超时重传机制:如果发送方在一定时间内没有接收到接收方发来的应答,发送方就会重新发送刚才的数据。

3.连接管理机制:TCP通过三次握手四次挥手建立连接

4.流量控制:TCP连接的每一方都有一个固定大小的缓冲空间,TCP接收方只能允许发送方发送接收缓冲区能够容纳的数据,当接收方来不及处理数据的时候,就会提示发送方降低发送速率,防止丢包,TCP利用滑动窗口实现流量控制。

5.拥塞控制:TCP发送方维护了一个拥塞窗口,拥塞窗口的大小取决于网络的拥塞程度,发送方让自己的发送窗口大小等于拥塞窗口和接收方接受窗口两者的较小值。

6.TCP接收端会丢弃重复的数据。

7.TCP保证它的首部和数据的检验和,一旦这个检验和有错,TCP将丢弃这段数据并不标记收到这段数据。

4.2滑动窗口和流量控制

TCP利用滑动窗口来实现流量控制,控制发送方的发送速率确保接收方来得及接受。接收方的确认报文中的窗口字段可以控制发送方发送窗口大小,从而影响发送方的发送速率。

4.3拥塞控制四种算法

1.慢启动:在刚开始准备进行网络数据传输时,主机并不知道当前网络的阻塞状况,因此就先发送少量数据,然后逐渐增大发送窗口的大小,也就是增大拥塞窗口的大小。

2.拥塞避免:拥塞窗口达到一定阈值之后,将从指数增长变为线性增长,一个RRT增加1;

3.快重传和快恢复:当接收方收到一段不按顺序传来的数据段时,会立即向发送方发送一个重复确认,来指定那个数据段丢失,当发送方连续收到三个这样的重复确认时,就会重新发送丢失的那段数据,而且不影响其他数据段的传送。

和快恢复:当接收方收到一段不按顺序传来的数据段时,会立即向发送方发送一个重复确认,来指定那个数据段丢失,当发送方连续收到三个这样的重复确认时,就会重新发送丢失的那段数据,而且不影响其他数据段的传送。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。