计算机网络面经
-
什么是网络协议,为什么要进行网络分层? 网络协议是计算机在通信过程中要遵循的一些约定好的规则 网络分层的原因:
- 易于实现和维护,因为分层之间是独立的,层与层之间不会受到影响
- 有利于相关标准的制定
-
计算机网络的各层协议及作用
-
应用层:通过应用进程之间的交互来完成特定的网络作用,常见的应用层协议有域名系统DNS、HTTP协议等; -
表示层:表示层的主要作用是数据的表示、安全、压缩。可确保一个系统的应用层所发送的信息可以被另一个系统的应用层所读取; -
会话层:建立通信链接,保持会话过程通信链接的畅通,同步两个节点之间的对话,决定通信是否被中断以及通信中断时决定从何处重新发送。 -
传输层:负责两台主机进程之间的通信提供数据传输服务。主要协议:TCP和UDP -
网络层:选择合适的路由。主要协议:IP协议 -
数据链路层:信道差错控制。主要协议:PPP等 -
物理层:比特流传输。 无论是哪种分层模式,TCP属于传输层,IP属于网络层,搞清楚这一点,别的就很简单!
-
DNS域名管理服务:
-
TCP和UDP有什么区别
协议名 | 是否面向连接 | 可靠性 | 传输形式 | 传输效率 | 消耗资源 | 应用场景 | 首部字节 |
---|
TCP | 面向连接 | 可靠 | 字节流 | 慢 | 多 | 文件/邮件传输 | 20~60 | UDP | 无连接 | 不可靠 | 数据报文段 | 快 | 少 | 视频/语音传输 | 8 |
?
-
TCP的三次握手和四次挥手 TCP的三次握手和四次挥手是通过头部的字段实现的,TCP头部包括32位序列号seq,32位的确认序号,还有一个ACK标志位。只有当ACK的标志位为1时,确认序号字段才有效,ack=seq+1 标志位作用:
- SYN:发起一个新连接
- FIN:释放一个连接
- ACK:确认序号有效
三次握手: 本质:为了确认发送端和接受端都具备收发信息的能力。 重点:流畅叙述三次握手的流程以及其中字段的含义,并记住每次握手时接收端和发送端的状态 建立连接的流程(三次握手):
- 第一次握手:客户端发送syn包(syn=x)到服务器,并进入syn_wait状态,等待服务器确认;
- 第二次握手:服务器收到syn包,必须确认客户的syn(ack=x+1),同时自己也发送一个SYN包(syn=y),即发送SYN+ACK,并进入SYN_RECV状态
- 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABILSHED状态,连接建立完成。
关闭连接的流程(四次挥手): - 第一次挥手:主动关闭方发送一个FIN,用来关闭主动方和被动关闭方之间的数据传送,此时还可以接受数据。(我不会再给你发数据了)
- 第二次挥手:被动关闭方接收到FIN之后,发送一个ACK给对方(收到)
- 第三次挥手:被动关闭方发送一个FIN,用来关闭被动与主动之间的数据传送。(我也不会给你发数据了)
- 第四次挥手:发送一个ACK(收到)
?
关键:为什么要进行三次握手,中间出现问题了怎么办?
- 第一次握手:客户端发送网络包,服务端收到了。这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。
- 第二次握手:服务端发包,客户端收到了。这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。
- 第三次握手:客户端发包,服务端收到了。这样服务端就能得出结论:客户端的接收、发送能力,服务端的发送、接收能力是正常的。
经历了上面的三次握手过程,客户端和服务端都确认了自己的接收、发送能力是正常的。之后就可以正常通信了。 要注意的是,每次只有接收到包的一方可以做出结论。
出现问题:
- 第一次握手失败:SYN传输失败,两边都不会申请资源。如果一段时间之后之前的SYN发送成功了,此时客户端只会接收它最后发送的SYN以及SYN+ACK回应,其它的一概忽略。
- 第二次握手失败:服务器发送的SYN+ACK传输失败,客户端没有收到这条响应,不会申请资源,服务器会申请资源,在一段时间没有收到ACK之后,将资源释放
- 第三次握手失败:如果第三次握手的ACK传输失败,服务器端会一直发送SYN+ACK包,一段时间后会释放资源。客户端觉得自己已经连接好了,一段时间后会给服务器发送数据,服务器会以RST对客户端进行响应(防止泛洪攻击)。
关键:为什么要进行四次挥手,中间出现问题了怎么办?
-
第一次挥手:主动关闭方发出FIN,表示我不想再发数据了,但我还可以收数据(FIN_WAIT_1) -
第二次挥手:被动接收方表示收到(CLOSE_WAIT) -
第三次挥手:被动接收方表示我也不想发数据了(LAST_ACK) -
第四次挥手:主动关闭方回复收到(FIN_WAIT_2),等待2MSL之后,进入CLOSED
|