计算机网络常见面试题
最近各企业已经逐步开始了网上面试的招聘方式,本篇文章主要总结一下作者所遇到的计网的面试题和在网上看到的面试题,仅供参考。
一、TCP与UDP总结:
区别:
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付 ;Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。
3、TCP面向字节流,UDP面向报文。
4、UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。
5、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5、TCP对系统资源要求较多,UDP对系统资源要求较少。
使用场景:
TCP:TCP一般用于文件传输(FTP HTTP 对数据准确性要求高,速度可以相对慢),发送或接收邮件(POP IMAP SMTP 对数据准确性要求高,非紧急应用),远程登录(TELNET SSH 对数据准确性有一定要求,有连接的概念)等等
UDP: UDP一般用于即时通信(QQ聊天 对数据准确性和丢包要求比较低,但速度必须快),在线视频(RTSP 速度一定要快,保证视频连续,但是偶尔花了一个图像帧,人们还是能接受的),网络语音电话(VoIP 语音数据包一般比较小,需要高速发送,偶尔断音或串音也没有问题)等等。
使用的协议和端口:
TCP:
- FTP:定义了文件传输协议,使用21端口。
- Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。
- SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。
- POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。
- HTTP:是从Web服务器传输超文本到本地浏览器的传送协议,端口默认80。
UDP:
- DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。
- SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。
- TFTP(Trival File TransferProtocal),简单文件传输协议,该协议在熟知端口69上使用UDP服务。
数据流模式和数据报模式:
数据流模式:发送数据和接收数据的次数没有关系。TCP就是数据流模式:面向连接,同一台主机传输数据,传输有序数据,可多次读取。
数据报模式: 发送了几次数据,就要接收几次数据,一 一 对 应。UDP就是数据报模型:无连接,只知道IP,多台主机传输数据,对应次数读取。
TCP的流量控制和拥塞控制(tcp可靠传输):
流量控制:主要针对的是端到端传输中控制流量大小并保证传输可靠性(未收到ack就不滑动)。流量控制往往是指点对点通信量的控制,所要做的是抑制发送端发送数据的速率。
拥塞控制:主要是一个全局性过程,涉及到所有主机,路由器,以及与降低网络传输性能有关的所有因素。防止过多的数据注入到网络中。如果有发生丢包则通过拥塞控制减小窗口,确定出合适(慢启动 拥塞避免 快重传 快恢复)的拥塞窗口(增性加乘性减)。-------《计算机网络》(谢希仁)
TCP的三次握手和四次挥手:
这个网上有个讲的很详细的详解见该博客。
二、HTTP(超文本传输协议)
HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。
HTTP是一个基于TCP/IP通信协议来传递数据,默认端口号为80。
HTTP工作原理
HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。
HTTP请求/响应步骤
1、客户端与服务器建立连接:客户端(浏览器)和服务器的HTTP端口建立TCP套接字连接。
2、发送HTTP请求:客户端(浏览器)通过TCP向服务器发送一个HTTP请求报文。
3、服务器接收并响应请求:服务器解析请求,找到请求资源。服务器将资源复制到TCP上,由客户端(浏览器)接收响应。
4、关闭TCP连接:根据connection的状态,服务器端决定是否关闭TCP,客户端被动接受这些决定。
5、客户端(浏览器)解析HTML:客户端解析接收的响应,根据状态行中的状态码进行对应的处理,客户端根据成功的响应中的HTML和其他文档的内容对HTML进行格式化,并展示在页面。
状态码:
2XX系列:代表请求已成功被服务器接收、理解、并接受。
- 200状态码:表示请求已成功,请求所希望的响应头或数据体将随此响应返回
- 201状态码:表示请求成功并且服务器创建了新的资源,且其 URI 已经随Location 头信息返回。
3XX系列:代表需要客户端采取进一步的操作才能完成请求,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。
- 301状态码:被请求的资源已永久移动到新位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
- 302状态码:请求的资源临时从不同的URI响应请求,但请求者应继续使用原有位置来进行以后的请求。
- 304状态码:自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。
4XX系列:表示请求错误。代表了客户端看起来可能发生了错误,妨碍了服务器的处理。
- 401状态码:请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
- 403状态码:服务器已经理解请求,但是拒绝执行它。与401响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。
- 404状态码:请求失败,请求所希望得到的资源未被在服务器上发现。
5xx系列:代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。
- 500状态码:服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。
- 503状态码:由于临时的服务器维护或者过载,服务器当前无法处理请求。
计算机网络的七层:
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 。
各层协议:
网络层协议:IP协议、ICMP协议、ARP协议、RARP协议 //
传输层协议:TCP协议、UDP协议 //
应用层协议:FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS //

浙公网安备 33010602011771号