建网站 主流软件网上定制西装

当前位置: 首页 > news >正文

建网站 主流软件,网上定制西装,风车网站做花盆磨具,优秀个人网站图片计算机网络篇——面试

  1. 到底什么是 TCP 连接? TCP 连接的定义 TCP#xff08;传输控制协议#xff09;是一个面向连接的传输层协议。TCP 连接是通过 三次握手 确立的可靠数据通信链路#xff0c;保证了在不可靠网络#xff08;如互联网#xff09;上的数据传输的准确…计算机网络篇——面试

  2. 到底什么是 TCP 连接? TCP 连接的定义 TCP传输控制协议是一个面向连接的传输层协议。TCP 连接是通过 三次握手 确立的可靠数据通信链路保证了在不可靠网络如互联网上的数据传输的准确性、有序性和完整性。 TCP 连接的特性 面向连接 通信前建立连接三次握手通信结束释放连接四次挥手。可靠传输 提供数据分段、确认ACK、重传机制确保数据不丢失、不重复。有序传输 数据按序号重组确保顺序。全双工 支持双向同时通信。流量控制与拥塞控制 防止发送过快或网络拥堵。 2. HTTP 1.0 和 HTTP 2.0 有什么区别? 特性HTTP 1.0HTTP 2.0连接复用不支持每次请求需建立新连接无连接复用。支持多路复用一个 TCP 连接可发送多个请求。传输格式基于纯文本。基于二进制帧效率更高。头部压缩不支持头部信息冗余较大。支持 HPACK 算法压缩减少网络传输量。服务器推送不支持。支持服务端主动推送资源Server Push。队头阻塞存在阻塞一个请求会影响整个连接性能。解决了应用层的队头阻塞问题但仍有 TCP 层问题。 3. HTTP 2.0 和 HTTP 3.0 有什么区别? 特性HTTP 2.0HTTP 3.0底层协议基于 TCP 协议。基于 QUIC 协议UDP。连接建立需要 TCP 三次握手TLS 握手延迟较高。支持 0-RTT 快速握手大幅降低延迟。队头阻塞存在 TCP 队头阻塞问题。无队头阻塞QUIC 的流独立。加密传输通过 TLS 实现加密。内置加密数据始终安全传输。部署需要依赖操作系统的 TCP 协议栈支持。基于用户态协议灵活易更新。 4. HTTP 和 HTTPS 有什么区别? 特性HTTPHTTPS安全性明文传输容易被窃听或篡改。数据加密传输防止窃听和篡改。协议基于 HTTP 协议。HTTPSSL/TLS 实现加密。端口默认使用端口 80。默认使用端口 443。性能无需加密计算性能略高。数据加密解密需额外计算性能略低。证书需求无需证书。需要申请 SSL 证书成本较高。 5. TCP 是用来解决什么问题? TCP 的主要问题解决 可靠传输 确保数据包正确、无丢失地到达目标。 解决序列号、确认机制、超时重传。 顺序传输 确保数据包按发送顺序到达。 解决序列号与接收端排序机制。 流量控制 避免发送端数据过快导致接收端处理不过来。 解决滑动窗口协议。 拥塞控制 避免网络拥堵降低整体传输性能。 解决慢启动、拥塞避免算法。 6. TCP 和 UDP 有什么区别? 特性TCPUDP连接方式面向连接需三次握手。无连接直接发送。可靠性可靠传输有确认和重传机制。不可靠传输无确认机制。数据顺序有序传输接收方数据按序排列。无序传输数据可能乱序。开销开销较大需要维护连接状态和控制信息。开销较小无需连接管理。速度速度较慢但稳定。速度快但可能丢包。适用场景文件传输、Web 浏览、邮件等需要可靠性的场景。视频直播、在线游戏、DNS 查询等需要低延迟的场景。 7. TCP 的粘包和拆包能说说吗? 粘包和拆包的定义 粘包 多个小数据包被合并为一个包接收端无法区分数据边界。拆包 一个大数据包被拆分为多个小包传输。 产生原因 粘包 发送端将多个小数据包合并为一个大数据包节约资源。TCP 流是无边界的接收端无法判断每个数据包的分界点。 拆包 单个数据包大小超过了 TCP 最大传输单元MTU。
    解决方法 固定长度协议 每个数据包规定固定长度接收端按长度解析。 分隔符协议 使用特定分隔符如 \n 或 \r\n标记数据边界。 长度前缀协议 在数据包前附加长度信息接收端根据长度解析。
    示意图 粘包发送端包1[Hello] 包2[World] 合并为 [HelloWorld] 接收端无法区分 Hello 和 World。拆包发送端包 [LargeData] 接收端分为 [Large] 和 [Data]代码举例

    粘包问题示例发送两条消息但接收端读取到的是拼接后的数据

    client.send(Hello.encode()) client.send(World.encode())# 接收端可能收到HelloWorld1. 说说 TCP 的三次握手? TCP 的三次握手是建立连接的过程用于确保通信双方都准备好数据传输并确认网络稳定。 三次握手步骤 第一次握手SYN 客户端发送一个带 SYN同步标志的数据包表示请求建立连接同时指明自己的初始序列号 (Seq x)。 第二次握手SYN-ACK 服务器收到客户端的 SYN 后发送一个带 SYN 和 ACK 标志的数据包表示同意连接并告知自己的初始序列号 (Seq y) 和确认号 (Ack x1)。 第三次握手ACK 客户端收到 SYN-ACK 后发送一个带 ACK 标志的数据包确认号 (Ack y1)表示握手完成连接建立。
    示意图 客户端 服务端|—SYN(x)—||–SYN-ACK(y)-||—ACK(x1)—| 连接建立成功2. 说说 TCP 的四次挥手? TCP 的四次挥手是断开连接的过程用于保证双方都可以正常关闭通信。 四次挥手步骤 第一次挥手FIN 客户端发送一个带 FIN 标志的数据包表示数据发送完毕请求关闭连接。 第二次挥手ACK 服务器收到 FIN 后发送 ACK 确认表示同意关闭连接但可能还有未处理完的数据。 第三次挥手FIN 服务器处理完数据后发送 FIN 请求表示可以关闭连接。 第四次挥手ACK 客户端收到 FIN 后发送 ACK 确认并进入 TIME_WAIT 状态等待一段时间以确保服务器收到 ACK。
    示意图 客户端 服务端|—FIN—||—ACK—||—FIN—||—ACK—| 连接断开成功3. 为什么 TCP 挥手需要有 TIME_WAIT 状态? TIME_WAIT 的作用 确保数据的可靠性 确保服务器收到客户端的最后一个 ACK如果服务器未收到会重新发送 FIN。 避免端口重用 等待旧连接的残留数据清理完毕避免新连接受到干扰。
    TIME_WAIT 的持续时间 通常为 2 × 最大报文段寿命2×MSL约 60~240 秒。 4. TCP 超时重传机制是为了解决什么问题? 超时重传机制的目的 确保数据可靠传输即使由于网络丢包、拥塞等原因导致数据包未被接收。 工作流程 发送方发送数据包并启动定时器。若在超时时间内未收到确认ACK则重新发送数据包。若多次超时仍无响应则认为连接中断。 关键参数 RTTRound Trip Time 确认包的往返时间。RTORetransmission Timeout 超时时间动态调整通常为 RTT 的倍数。 5. TCP 滑动窗口的作用是什么? 滑动窗口的作用 控制数据的流量防止发送方发送过快导致接收方处理不过来。 特点 动态调整窗口大小 窗口大小表示发送方可连续发送的最大数据量无需逐一等待确认。 提高传输效率 通过批量发送多个数据包减少等待时间。
    示意图 滑动窗口机制 窗口大小 4 发送方 [1] [2] [3] [4] | [5] [6] 接收方 ACK [1] 滑动窗口更新 [5] 可发送6. TCP/IP 四层模型是什么? TCP/IP 模型层次 应用层 提供用户直接使用的网络服务如 HTTP、DNS、SMTP。 传输层 提供可靠或不可靠的端到端通信如 TCP、UDP。 网络层 确定路由并传输数据包如 IP 协议。 网络接口层 定义数据在物理网络上的传输方式如 Ethernet。 7. OSI 七层模型是什么? 层次功能描述示例协议应用层为用户提供网络服务接口。HTTP、FTP、SMTP表示层数据格式转换和加密解密。SSL、TLS会话层建立、管理和终止会话。NetBIOS传输层提供可靠传输或无连接服务。TCP、UDP网络层选择路由并传输数据包。IP、ICMP、ARP数据链路层确保数据在同一网络中的节点间可靠传输。Ethernet、PPP物理层负责硬件设备间的数据传输。光纤、电缆等传输介质。 8. Cookie、Session、Token 之间有什么区别? 特性CookieSessionToken存储位置客户端浏览器。服务器端。客户端通常结合 Authorization 头传输。安全性较低易被篡改或劫持。较高敏感数据存储在服务器。高通过签名防篡改。生命周期有效期受限于设置的失效时间。随 Session 存续通常依赖 Cookie。有效期受限于令牌的过期时间。适用场景简单状态管理如购物车。用户认证、敏感数据操作。跨域认证、分布式系统。 9. 如何解决页面请求接口大规模并发问题? 解决思路 前端优化 合并请求减少接口调用次数。缓存策略使用浏览器缓存或 CDN。限流对请求进行排队或批量处理。 服务端优化 负载均衡 使用 Nginx 或 LVS 分担流量。分布式架构 数据库、缓存服务如 Redis分片部署。数据库优化 建立索引、读写分离。 缓存机制 使用 CDN 分担流量压力。热点数据缓存到 Redis 或 Memcached。 消息队列 使用 RabbitMQ、Kafka 等将请求异步化平滑高峰流量。 监控与扩展 监控系统性能动态扩展服务器。