计算机网络面试题(2)
7.在浏览器中输入www.baidu.cn后执行的全部过程
-
客户端浏览器通过DNS解析www.baidu.cn的IP地址;
-
通过IP地址找到客户端浏览器到服务器的路径,根据IP建立TCP连接(三次握手)
-
TCP连接成功后,客户端浏览器发起http请求 .
-
服务器响应http请求 ,回传网页信息
-
关闭TCP连接(四次挥手)
-
浏览器解析网页信息,最终显示web页
8.TCP和UDP的区别
UDP
全称是用户数据报协议,在网络中处理数据包,是一种无连接的协议。UDP不提供数据包分组、组装和不能对数据包进行排序。
它有以下几个特点:
-
面向无连接
首先 UDP 是不需要和 TCP一样在发送数据前进行三次握手建立连接的,想发数据就可以开始发送了。并且也只是数据报文的搬运工,不会对数据报文进行任何拆分和拼接操作。具体来说就是:在发送端,应用层将数据传递给传输层的 UDP 协议,UDP 只会给数据增加一个 UDP 头标识下是 UDP 协议,然后就传递给网络层了;在接收端,网络层将数据传递给传输层
-
有单播,多播,广播的功能
UDP 支持一对一,一对多,多对多,多对一的方式 -
UDP是面向报文的
UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。因此,应用程序必须选择合适大小的报文 -
不可靠性
面向无连接,数据想发就发,这样的情况肯定不可靠。不对数据做任何处理,发送数据也不会关心对方是否已经正确接收到数据了。 -
头部开销小,传输数据高效。
UDP 头部包含了以下几个数据:
两个十六位的端口号,分别为源端口(可选字段)和目标端口 整个数据报文的长度,因此 UDP 的头部开销小,只有八字节
TCP
两台计算机之间的通信需要畅通且可靠,这样才能保证正确收发数据,就用到了TCP。
TCP协议全称是传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议。
特点:
-
面向连接
是指发送数据之前必须在两端建立连接,三次握手 -
仅支持单播传输
每条TCP传输连接只能有两个端点,只能进行点对点的数据传输,不支持多播和广播传输方式。 -
面向字节流
TCP在不保留报文边界的情况下以字节流方式进行传输。 -
可靠传输
TCP为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了数据包的按序接收。然后接收端对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。 -
提供拥塞控制
当网络出现拥塞的时候,TCP能够减小向网络注入数据的速率和数量,缓解拥塞 -
TCP提供全双工通信
TCP允许通信双方的应用程序在任何时候都能发送数据,TCP连接的两端都有缓存,用来临时存放数据。
9.DNS域名系统,简单描述其工作原理
DNS是应用层协议,不限于HTTP和SMTP以及FTP,用于将用户提供的主机名解析为IP地址。
具体过程:
-
主机上包含DNS的客户端,PC或手机;
-
浏览器请求访问http://www.baidu.com/;
-
DNS客户机端向DNS服务器端发送请求查询报文
-
缓存解析结果
-
DNS客户端收到域名对应的IP地址报文。
-
浏览器收到来自DNS的IP地址,客户端HTTP服务器发起TCP连接。
DNS查询过程: www . baidu .com
(1)先检查自己本地的hosts文件是否有这个网址映射关系,若有,直接调用IP地址映射,完成域名解析;
(2)hosts里没有这个域名的映射,则查找本地DNS解析器缓存,若有,直接返回,完成域名解析;
(3)若hosts与本地DNS解析器缓存都没有相应的网址映射关系,找本地DNS服务器,若要查询的域名,包含在本地配置区域资源中,完成域名解析;
- 如果要查询的域名,也不在本地DNS服务器缓存,但本地DNS服务器缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析(此解析不具有权威性)。
- 若本地DNS服务器地址解析失败,则根据本地DNS服务器是否设置转发器进行查询:
非转发模式
本地DNS服务器转发请求至13台根DNS,根DNS服务器根据域名(.com)回传负责该顶级域名服务器A的IP;
本地DNS服务器收到IP信息后,连接负责.com域的服务器A。服务器A收到请求后,如A能解析则解析完成,若A无法解析,它就会找管理.com下级域(baidu.com)的DNS服务器B的IP给本地DNS服务器;
当本地DNS服务器收到这个地址后,就会找域服务器B,重复上面的动作,进行查询,直至找到www .baidu .com主机。
转发模式
DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器若不能解析,找根DNS或把转请求转至上上级,以此循环。
从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是的交互查询就是迭代查询。
.
10.TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?
TCP三次握手过程:https://blog.****.net/weixin_44519974/article/details/105422521
不可以采用二次握手。
谢希仁版《计算机网络》中的例子:
"已失效的连接请求报文段”的产生在这样一种情况下:
client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放后的某个时间才到server。
本来这是一个早已失效的报文段,但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。
于是就向client发出确认报文段,同意建立连接。
假设不采用“三次握手”,那么只要server发出确认,新的连接就建立了。
现在client并没有发出建立连接的请求,因此不会理睬server的确认,也不会向server发送数据,但server却以为新的运输连接已经建立,并一直等待client发来数据。这样,server的很多资源就白白浪费掉了。
采用“三次握手”的办法可以防止上述现象发生。
例如刚才那种情况,client不会向server的确认发出确认,server由于收不到确认,就知道client并没有要求建立连接。”
这个例子很清晰的阐释了“三次握手”对于建立可靠连接的意义。
来源:https://www.nowcoder.com/questionTerminal/dd2e0e9a1618496baabad2abc56d9609
11.了解交换机、路由器、网关的概念,并知道各自的用途。
-
交换机
是一种用于信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。
用途:人工交换 电路程控 集线比较 -
路由器:路由器就是连接两个以上个别网络的设备。
用途:连通不同的网络 信息传输 -
网关:又称网间连接器、协议转换器。
用途:网关在网络层上以实现网络互连,是最复杂的网络互连设备.