首页 > 编程知识 正文

计算机网络技术面试题,计算机复试题

时间:2023-05-03 22:07:50 阅读:15871 作者:2957

本文主要总结面试过程中关于网络的常见面试问题,七层模型(四层模型)、三次握手、四次握手是面试过程中一定要问的问题,这里不做总结,有兴趣的话请另选我的博文。

1. TCP如何保证可靠性,并简述一下TCP建立连接和断开连接的过程?

a ) TCP保证可靠性(1)序列号、确认、超时重传; 当数据到达接收方时,接收方需要发出一个确认,指示接收到该数据段,确认序列号指示下一个接收到的数据序列号。 在发送侧延迟接收到确认响应的情况下,要么丢失发送数据,要么丢失确认响应,在此情况下,发送侧等待一定时间后再重发。 (2)窗口控制和高速重发控制/高速重发)重复确认响应); TCP使用窗口控制来提高传输速度,意味着在一个窗口大小内,不等待响应就一定发送下一个数据,窗口大小是指在不等待确认的情况下能够继续发送数据的最大值。 )3)如果拥塞控制窗口定义较大,发送方持续发送大量数据,则可能会引起网络堵塞,也可能导致网络瘫痪。 因此,TCP为了防止这一点进行了拥塞控制。

TCP建立连接和断开连接的过程。 请握手三次,挥手四次。

2. 请回答一下HTTP和HTTPS的区别,以及HTTPS的优缺点。

a (不同) (1) HTTP协议以明文形式在网络上传输数据,HTTPS协议传输在数据时用TLS加密,HTTPS具有更高的安全性。 )2) HTTPS在TCP握手3次后,还进行SSL握手。 )3) HTTPS协议需要服务器申请证书,客户端安装相应的根证书。 )4) HTTP协议端口号为80,HTTPS端口号为443。

HTTPS的优点: (1)在传输过程中使用密钥加密可以提高安全性。 ) HTTPS可以认证用户和服务器,并确保数据被发送到正确的用户和服务器。

HTTPS的缺点: (1) HTTPS握手阶段延迟较高(因为握手3次后有SSL握手)。 )2) HTTPS部署成本较高:一方面,HTTPS协议需要使用证书验证自身安全性,需要购买CA证书,另一方面HTTPS协议需要计算加密解密,消耗较多的CPU资源,增加所需的服务器配置和数量

3. HTTP返回码。

A(1xx )提示信息-表示已接收到请求,继续处理

2 )成功表示请求已被成功接受、理解和接受

3XX :重定向-要完成请求,需要进一步操作

4XX )客户端错误请求有错误或无法实现请求

5XX :服务器端错误服务器为常见状态代码、状态描述的详细说明:

200确定:客户端请求成功

206 partial content (服务器可以正确处理某些获取请求,实现断点重新分发,或者同时切片下载。 此请求必须包含range请求标头,以指示客户端期望的范围。 (当客户端持续请求未完成的下载时,这种情况经常发生。)

在上图的请求中,客户端告知服务器视频文件中需要172,032到13,325,503字节的数据。

300 multiple choices (可选重定向)请求的资源具有各种反馈信息,可供浏览器/用户选择。

301移动性能(永久重定向)此资源已永久移动到新位置。 今后,必须使用此对应返回的多个URI之一访问此资源。

302 moved temporarily (临时重定向)请求的资源当前暂时从不同的URI中选择。

发送303 moved temporarily (临时重定向)开机自检请求,接收303,然后直接重定向到get,发送get请求。 不需要向用户确认。

304 not modified :如果客户端发送有条件的GET请求,并允许该请求,并且文档/网页内容(自上次访问以来或根据请求条件)未发生更改,则服务器必须返回304。

403 Forbidden :服务器收到请求,但拒绝提供服务。

404 Not Found :请求资源不存在。 例如,输入了错误的URL。

502 )当充当网关或代理的服务器试图执行请求时,从上游服务器接收到无效响应。

(504 )当充当网关或代理的服务器试图执行请求时,它无法及时从辅助服务器(如上游服务器(例如HTTP )或DNS )接收到响应。4. 说一下IP地址的作用,以及MAC地址的作用。

a ) MAC地址是定义网络设备位置的硬件地址,主要由数据链路层负责。 IP地址是IP协议提供的统一地址格式,为internet上的每个网络和每个主机分配逻辑地址,以掩盖物理地址的差异。5.用户从输入URL到显示页面整个过程。

a ) DNS解析(TCP连接)发送HTTTP请求)服务器处理请求并返回HTTP消息(浏览器解析呈现页面)连接终止。6.请你说一说TCP拥塞控制?以及达到什么情况的时候开始减慢增长速度。

a )拥塞控制是指防止网络中注入过多的数据,导致网络中的路由器或链路过载。 流控制是点对点的业务控制,拥塞控制是对全局网络业务的整体控制。 双发送

方都有一个拥塞窗口(cwnd)。
(1)慢开始:最开始发送方的拥塞窗口为1,由小到大递增。每经过一个传输轮次,拥塞窗口cwnd加倍(乘2)。当cwnd超过慢开始门限,则使用拥塞避免算法,避免cwnd增长过长。
(2)拥塞避免(算法):当cwnd超过慢开始门限,每经过一个往返时间RTT,cwnd就增长1。在慢开始和拥塞避免过程中,一旦发现网络拥塞,就把慢开始门限设置为当前值的一半,并且重新设置cwnd为1,重新慢启动。
(3)快重传:接收方每收到一个失序的报文段后就立即发出重复确认,发送方只要收到3个重复确认就立即重传。
(4)快恢复:当发送方连续收到三个重复确认,就将慢开始门限减半,将当前的窗口设置为慢开始门限,并采用拥塞避免算法。(采用快恢复算法时,慢开始只在建立连接和网络超时时才使用)
7.请你说一说TCP/IP数据链路层的交互过程。
答:网络层等到数据链路层用mac地址作为通信目标,数据包到达网络准备往数据链路层发送的时候,首先会去自己的arp缓存表(存ip-mac对应关系)去查找该目标IP的mac地址,如果查到了,就将目标ip的mac地址封装到链路层数据包的包头。如果缓存中没有找到,会发起一个广播(who is ip XXX tell ip XXX),所有收到广播的机器看这个ip是不是自己,如果是自己,就一单播的形式将自己的mac地址回复给请求的机器。
8.请你说说传递到IP层怎么知道报文该给哪个应用程序,它怎么区分UDP报文还是TCP报文?
答:根据端口区分;看ip头中的协议标识字段,17是udp,6是tcp。
9.网络编程的基本步骤(socket)。
答:
TCP:
服务端:socket–>bind–>listen–>accept–>recv/send–>close;
客户端:socket–>connect–>send/recv–>close.
UDP:
服务端:socket–>bind–>recvfrom/sendto–>close;
客户端:socket–>sendto/recvfrom–>close.
10.TCP和UDP的区别和各自适用的场景。
答:区别:
(1)连接:TCP是面向连接的传输层协议,即传输数据之前必须先建立好连接;UDP是面向无连接的。
(2)服务对象:TCP是点对点的两点间服务,即一条TCP连接只能有两个端点;UDP支持一对一,一对多,多对一,多对多的交互通信。
(3)可靠性:TCP是可靠交付:无差错,不丢失,不重复,按序到达;UDP是尽最大努力交付,不保证可靠交付。
(4)拥塞控制,流量控制:TCP拥有拥塞控制和流量控制保证数据传输的安全性;UDP没有拥塞控制,网络拥塞不影响源主机的发送效率。
(5)报文长度:TCP是动态报文长度,即TCP报文长度根据接收方窗口大小和当前网络拥塞情况决定;UDP面向报文,不合并,不拆分,保留上面传下来的报文边界。
(6)首部开销:TCP首部开销大,首部20个字节;UDP首部开销小,8字节(源端口,目的端口,数据长度,校验和)
适用场景:
若通信数据完整性大于实时性,则应选择用TCP协议(文件传输、重要状态等);反之,则使用UDP协议(如视频传输、实时通信等)。
11.TCP四次挥手的时候,先发起方为什么会有一个TIME_WAIT状态,它的作用是什么?
答:(1)保证最后一次握手报文能到接收方,如果接收方未收到会再次发送FIN+ACK,发起方可以进行超时重传。
(2)TIME_WAIT时间一般是2MSL。2MSL后这次连接的所有报文都会消失,不会影响下一次连接。
12.请你说一下GET和POST的区别。
答:(1)概括:对于GET方式请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST方式请求,浏览器会先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
(2)区别:
1)get参数通过url传递,post放在request body中。
2)get请求在URL中传递参数的长度有限制(根据浏览器不同长度限制也不同),而post没有
3)get比post更不安全,因为参数暴露在URL中
4)get请求只能进行url编码,post支持多种编码方式
5)get 请求会被浏览器主动cache (缓存),post 则不会,除非手动设置
6)get请求会完整保留在浏览历史记录里,而post中的参数不会被保留
7)get和post本质上是TCP连接,并无差别,但是由于http的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同
8)GET产生一个TCP数据包,post产生两个数据包。
13.请说一下阻塞,非阻塞,同步,异步。
答:阻塞和非阻塞:调用者在事件没有发生的时候,一直等待事件发生,不能处理其他任务是阻塞。调用者在事件没有发生的时候,可以去处理别的事务这是非阻塞。
同步和异步:调用者循环查看事件有没有发生,这种情况是同步。调用者不用自己去查看事件有没有发生,而是等待注册在时间上的回调函数自己通知自己,这是异步。
14.请你简单说一下http协议。
答:1)简介
HTTP是一个基于TCP/IP通信协议来传递数据的协议。HTTP是一个属于应用层的面向对象的协议。HTTP协议工作于客户端-服务端架构之上,浏览器作为HTTP客户端通过URL向Web服务器发送所有请求,Web服务器根据接收到到的请求向客户端发送相应信息。
2)特点:①简单快速:客户端向服务器发送请求时,只需传送请求方法和路径即可。②灵活:HTTP允许传输任意类型的数据对象。③无连接:限制每次连接只处理一个请求。服务器处理完客户请求,并收到客户应答后,即断开连接。④无状态:协议对于事务处理没有记忆能力。⑤支持B/S及C/S模式。⑥默认端口80。⑦基于TCP协议。
3)HTTP过程概述:
HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应内容包括协议版本、成功或者错误的代码、服务器信息、响应头部和响应数据。
15.请你简单说一下数字证书是什么,里面包含哪些内容。
答:数字证书是在一个身份和该身份的持有者所拥有的的公/私钥对之间建立的一种联系,由认证中心(CA)或认证中心的下一级认证中心颁发。根证书是认证中心与用户之间建立信任的基础。在用户使用数字证书之间必须首先下载和安装。
认证中心(CA)是一家能向用户签发数字证书以确认用户身份的管理机构。为了防止数字凭证的伪造,认证中心的公共秘钥必须是可靠的,认证中心必须公布其公共密钥或由更高级的认证中心提供一个电子凭证来证明其公共密钥的有效性,后一种方法导致了多级别认证中心的出现。
内容包括:(1)证书的版本信息;(2)证书的序列号;(3)证书所使用的签名算法;(4)证书的发行机构名称;(5)证书的有效期;(6)证书所有人的名称;(7)证书所有人的公开密钥;(8)证书发行者对证书的签名。

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