计算机网络, 面试

1.
● 你知道TCP协议、IP协议、HTTP协议分别在哪一层吗?
考察点:网络七层模型
参考回答:

运输层,网络层,应用层。

2.
IP地址的分类
参考答案

答:
A类地址:以0开头, 第一个字节范围:1~126(1.0.0.0 - 126.255.255.255);
B类地址:以10开头, 第一个字节范围:128~191(128.0.0.0 - 191.255.255.255);
C类地址:以110开头, 第一个字节范围:192~223(192.0.0.0 - 223.255.255.255);
D类地址:以1110开头,第一个字节范围:224~239(224.0.0.0 - 239.255.255.255);(作为多播使用)
E类地址:保留

其中A、B、C是基本类,D、E类作为多播和保留使用。
以下是留用的内部私有地址:
A类 10.0.0.0–10.255.255.255
B类 172.16.0.0–172.31.255.255
C类 192.168.0.0–192.168.255.255

3.
● 请说明一下http和https的区别
考察点:http协议
参考回答;

https协议要申请证书到ca,需要一定经济成本;2) http是明文传输,https是加密的安全传输;3) 连接的端口不一样,http是80,https是443;4)http连接很简单,没有状态;https是ssl加密的传输,身份认证的网络协议,相对http传输比较安全。

4.
DNS域名系统,简单描述其工作原理。
参考答案

答:当DNS客户机需要在程序中使用名称时,它会查询DNS服务器来解析该名称。客户机发送的每条查询信息包括三条信息:包括:指定的DNS域名,指定的查询类型,DNS域名的指定类别。基于UDP服务,端口53. 该应用一般不直接为用户使用,而是为其他应用服务,如HTTP,SMTP等在其中需要完成主机名到IP地址的转换。

5.
三次握手:

  1. 客户端发送SYN请求,进入SYN_SEND状态
  2. 服务端收到SYN请求,并返回一个ACK应答,并发送一个SYN其请求,服务器进入SYN_RECV状态
  3. 客户端收到服务端的SYN请求和ACK应答,发送ACK应答,客户端进入ESTABLISH状态,服务端收到应答后进入ESTABLISH。
    如果没有收到应答,数据包都会根据TCP的重传机制进行重传。

6.
四次挥手(四次握手):

  1. 客户端发送FIN包,请求断开连接

  2. 服务端收到FIN包后返回应答,

  3. 客户端收到FIN的应答后, 从客户端到服务端方向的连接就释放了,TCP 连接处于半关闭状态

  4. 服务端发送FIN请求包,

  5. 客户端收到FIN请求包后,发送应答

  6. 服务器收到ACK应答后,tcp连接就关闭了

7.
三次握手原因

假如只进行一次握手,客户端发送连接请求后,没有收到服务端的应答,是没法判断连接是否成功的。
假如只进行两次握手,客户端发送连接请求后,会等待服务器端的应答。但是会出现的问题是,假如客户端的SYN迟迟没有到达服务器端,此时客户端超时后,会重新发送一次连接,假如重发的这次服务器端收到了,且应答客户端了,连接建立了。但是建立后,第一个SYN也到达服务端了,这时服务端会认为这是一个新连接,会再给客户端发送一个ACK,这个ACK当然会被客户端丢弃。但是此时服务器端已经为这个连接分配资源了,而且服务器端会一直维持着这个资源,会造成浪费
三次握手,两次握手的问题在于服务器端不知道SYN的有效性,所以如果是三次握手,服务器端会等待客户端的第三次握手,如果第三次握手迟迟不来,服务器端就会释放相关资源。但是有人会问,假如第三次握手没有到达服务器端呢?但是这时客户端认为连接已经建立了。但是其实这种情况下,只要客户端向服务器端写数据,就会收到服务器端的RST应答,这时客户端就能知道出现问题了。

8.
Tcp与udp区别

1, TCP提供面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。
2, TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报。
3, TCP注重数据安全性,UDP数据传输快,因为少了许多操作,但是其安全性却一般。
4, TCP对应的协议和UDP对应的协议
TCP对应的协议:
(1) FTP:定义了文件传输协议,使用21端口。
(2) Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。
(3) SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。
(4) POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。
(5)HTTP:是从Web服务器传输超文本到本地浏览器的传送协议。
UDP对应的协议:
(1) DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。
(2) SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。
(3) TFTP(Trivial File Transfer Protocal),简单文件传输协议,该协议在熟知端口69上使用UDP服务。

确保传输可靠性的方式
1.校验和
计算机网络, 面试
2.***和确认应答
计算机网络, 面试
3.超时重传
4.连接管理
5.流量控制
接收端会在确认应答发送ACK报文时,将自己的即时窗口大小填入,并跟随ACK报文一起发送过去。而发送方根据ACK报文里的窗口大小的值的改变进而改变自己的发送速度。如果接收到窗口大小的值为0,那么发送方将停止发送数据。并定期的向接收端发送窗口探测数据段,让接收端把窗口大小告诉发送端。
6.拥塞控制

拥塞控制
 慢开始 (slow-start) 使用慢开始算法后,每经过一个传输轮次 拥塞窗口 cwnd 就加倍
 拥塞避免 (congestion avoidance)
拥塞窗口大于慢开始门限时, 每一轮拥塞窗口加1

无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(重传定时器超时):
ssthresh = max(cwnd/2,2)
cwnd = 1
执行慢开始算法

 快重传 (fast retransmit)
发送方只要一连收到三个重复确认,就知道接收方确实没有收到报文段,因而应当立即进行重传(即“快重传”),
 快恢复 (fast recovery)
(1) 慢开始门限 ssthresh = 当前拥塞窗口 cwnd / 2 ;
(2) 新拥塞窗口 cwnd = 慢开始门限 ssthresh ;
(3) 开始执行拥塞避免算法,使拥塞窗口缓慢地线性增大。

10.
请你讲一下路由器和交换机的区别?

1、工作层次不同:交换机比路由器更简单,路由器比交换器能获取更多信息

交换机工作在数据链路层,而路由器工作在网络层

2、数据转发所依据的对象不同

交换机的数据转发依据是利用物理地址或者说MAC地址来确定转发数据的目的地址

而路由器是依据ip地址进行工作的

3、传统的交换机只能分割冲突域,不能分割广播域;而路由器可以分割广播域
4.路由器有交换机的功能,但是路由器比交换机复杂的多

11.请你谈谈DNS的寻址过程。
1)检查浏览器缓存、检查本地hosts文件是否有这个网址的映射,如果有,就调用这个IP地址映射,解析完成。

(2)如果没有,则查找本地DNS解析器缓存是否有这个网址的映射,如果有,返回映射,解析完成。

(3)如果没有,则查找填写或分配的首选DNS服务器,称为本地DNS服务器。服务器接收到查询时:

如果要查询的域名包含在本地配置区域资源中,返回解析结果,查询结束,此解析具有权威性。

如果要查询的域名不由本地DNS服务器区域解析,但服务器缓存了此网址的映射关系,返回解析结果,查询结束,此解析不具有权威性。

(4)如果本地DNS服务器也失效:

如果未采用转发模式(迭代),本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后,会判断这个域名(如.com)是谁来授权管理,并返回一个负责该*域名服务器的IP,本地DNS服务器收到*域名服务器IP信息后,继续向该*域名服务器IP发送请求,该服务器如果无法解析,则会找到负责这个域名的下一级DNS服务器(如http://baidu.com)的IP给本地DNS服务器,循环往复直至查询到映射,将解析结果返回本地DNS服务器,再由本地DNS服务器返回解析结果,查询完成。

如果采用转发模式(递归),则此DNS服务器就会把请求转发至上一级DNS服务器,如果上一级DNS服务器不能解析,则继续向上请求。最终将解析结果依次返回本地DNS服务器,本地DNS服务器再返回给客户机,查询完成。