面试题汇总(更新至3.23) --- 计算机网络篇 - 阿V

1. TCP和UDP区别

TCP传输控制协议),是面向连接可靠,基于字节流的传输协议,只支持单播,可以全双工通信,拥有拥塞控制流量控制。建立连接使用三报文握手,断开连接使用四报文挥手

UDP用户数据报协议),是无连接不可靠,基于报文流的传输协议,支持单播、多播、广播,不可以全双工通信。

 

2.  TCP三报文握手

第一次握手:客户端--》服务端(数据包:SYN=1,seq=x),客户端进入SYN_SENT状态。

第二次握手:服务端--》客户端(数据包:SYN=1,ACK=1,seq=y,ack=x+1),服务端进入SYN_RCVD状态。

第三次握手:客户端检查数据包是否准确,客户端--》服务端(数据包:ACK=1,seq=x+1,ack=y+1),服务端检查数据包是否准确,两者进入ESTABLISHED状态。

 

3. TCP四报文挥手 

第一次挥手:客户端--》服务端(数据包:FIN=1,ACK=1,seq=u,ack=v),客户端进入FIN_WAIT_1状态。客户端不再发送数据,但可以接收数据。

第二次挥手:服务端--》客户端(数据包:ACK=1,seq=v,ack=u+1),服务端进入CLOSE_WAIT状态。服务端开始处理剩下的数据(采用四报文握手的主要原因)。客户端接收ACK,进入FIN_WAIT_2状态。

第三次挥手:服务端--》客户端(数据包:FIN=1,ACK=1,seq=w,ack=u+1),服务端进入LAST_ACK状态。服务端不再发送数据。

第四次挥手:客户端--》服务端(数据包:ACK=1,seq=u+1,ack=w+1),客户端进入TIME_WAIT状态(防止最后的确认数据包丢失),服务端接收ACK,进入CLOSED状态,一段时间后,客户端也进入CLOSED状态。

 

4.  为什么会采用三次握手,若采用两次握手可以吗?

采用三次握手原因:防止接收端接收到失效的连接请求报文,因而产生错误。

若采用两次握手:

1. 如果发送端有一条失效了很久的请求连接报文段,因为网络滞留导致连接结束才到达服务端,如果只两次握手,此时接收端就会直接建立连接,而服务端发送的确认报文段也无客户端响应,导致服务端浪费资源,一直等待客户端响应。

2. 如果直接两次握手,只能说明发送端与接收端建立了正常通信,不能说明接收端与发送端建立正常通信

 

5. TCP如何实现可靠连接

1. 序列号:防止数据乱序

2. 确认应答机制/超时重传:防止数据丢包或重复包

3. 检验和:检查包内数据是否正确。

4. 流量控制:通过滑动窗口动态控制数据传输速度

5. 拥塞控制:防止网络瘫痪

 

 6. 解释TCP的滑动窗口如何实现

 

 

7.  设计一个可靠的UDP协议应该怎么做?

UDP不可靠原因:UDP传输过程中会出现丢包数据不完整乱序等问题。解决问题:

1. 防止丢包:加入确认应答机制和超时重传

2. 数据不完整:加个16或32位的CRC验证字段

3. 乱序:加个数据包序列号SEQ

8. HTTPS是什么?

TLS/SSL:传输层安全性协议TLS(Transport Layer Security),及其前身安全套接层SSL(Secure Sockets Layer)是一种安全协议,目的为互联网通信提供安全及数据完整性保障。

HTTP:超文本传输协议,基于TCP/IP通信协议来传递数据,属于应用层的面向对象的协议,互联网上应用最为广泛的一种网络协议

HTTPS:以安全为目标的HTTP通道,是HTTP的安全版。HTTPS的安全基础是SSL,SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通信提供安全支持。

 

9.  HTTP的请求有哪几种?各有什么用?

1. GET请求指定的页面信息,并返回实体主体。

2. HEAD:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头

3. POST:向指定资源提交数据进行处理请求

4. PUT:从客户端向服务器传送的数据取代指定的文档内容

5. DELETE:请求服务器删除指定的页面

6. CONNECT:将连接改为管道方式的代理服务器。

7. OPTIONS:允许客户端查看服务器性能

8. TRACE回显服务器收到的请求,主要用于测试

 

10.  TCP协议

源端口号/目的端口号:记录数据来源去处

序列号:建立连接时由计算机生成的随机数作为其初始值,通过SYN包传给接收端主机,每发送一次数据,就累加一次。从而解决网络包乱序问题。

确认应答号:确认收到数据,解决不丢包问题

6位标识符:

URG:紧急指针是否有效

ACK:确认是否有效,该位为1时,确认字段有效

PSH:提示接收端应用程序立刻从TCP缓冲区把数据读走。

RST:对方要求重新建立连接;携带RST标识的称为复位报文段,该位为1时,表示TCP连接中出现异常必须强制断开连接。

SYN:请求建立连接;携带SYN标识的称为同步报文段,该位为1时,表示希望建立连接,并在其序列号的字段进行序列号初始值设定。

FIN:通知对方准备断开连接,携带FIN标识的称为结束报文段,该位为1时,表示准备断开连接。

 

11. IP地址的作用,以及MAC地址的作用 

MAC地址是硬件地址,定义网络设备位置,由数据链路层负责。IP地址由IP协议提供的统一的地址格式,为互联网的每一个网络和主机分配一个逻辑地址,来抵消物理地址的差异

 

12.  用户从输入URL到显示页面整个过程 

1. DNS解析URL,浏览器查询DNS获取域名对应的IP地址

2. 浏览器向服务器请求连接(TCP三报文握手)。

3. 浏览器向服务器发送HTTP请求

4. 服务器接收请求,根据路径参数映射到请求处理器处理,并将处理结果返回浏览器

5. 浏览器解析并渲染页面

 

13.  TCP拥塞控制?以及达到什么情况的时候开始减慢增长速度 

拥塞控制:防止过多数据注入网络,导致网络瘫痪

原理:

1. 慢开始:最开始发送方拥塞窗口(cwnd)为1,每经过一次传输轮次RTT,拥塞窗口(cwnd)加倍,当cwnd超过慢开始门限,使用拥塞避免算法。

2. 拥塞避免算法:每经过一次传输轮次RTT,拥塞窗口(cwnd)+1,一旦发现网络拥塞,将慢开始门限设置为当前值一半重新慢开始

3. 快重传:接收方每收到一个失序报文段就立即发出重复确认,发送方只要收到3个重复确认就立即重传。

4. 快恢复:当发送方连续收到三个重复确认,就将慢开始门限减半,将当前窗口设置为慢开始门限,并采用拥塞避免算法

 

14.  GET与POST的区别

1. 功能上:GET从服务器获取资源,POST更新服务器资源

2. 请求参数形式:GET请求将数据放置HTTP报文的请求头中,POST请求将数据防止HTTP报文的请求体中。

3. 安全性:POST请求比GET请求安全。因为GET请求将数据明文出现在URL上。

4. 请求大小:GET请求长度受限于浏览器或服务器对URL长度的限制,而POST请求无限制

 

15. OSI网络体系结构 

7. 应用层:为用户的应用进程提供网络通信服务。

6. 表示层:数据编码,压缩和解压缩,数据的加密和解密。

5. 会话层:用户应用程序和网络之间的接口。

4. 传输层:提供可靠的数据传输。

3. 网络层:将网络地址翻译成对应的物理地址,并选择最适当的路径。

2. 数据链路层:接收物理层的比特流数据,封装成帧。接收网络层的帧,拆装为比特流数据。

1. 物理层:相邻计算机节点之间比特流的透明传送。

16. TCP/IP模型

4. 应用层

3. 传输层

2. 网络层

1. 物理链路层

17.  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZZW游戏制造

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值