tcp udp 面试题

本文深入探讨了TCP三次握手机制的必要性,解释了为何TCP建立连接需要三次握手,以及HTTP缓存处理流程和长连接的优点。同时,文章还详细介绍了DNS解析过程,TCP与IP协议在网络分层中的作用,以及TLS/SSL如何确保传输安全。
摘要由CSDN通过智能技术生成

TCP

  1. TCP三次握手机制,为什么要三次握手?

    考点:

    1. 为什么要握手?

      TCP最重要的特性就是可靠性,自己发出去的数据要等到对方去确认,并回复收到了(ack),TCP是支持双工协议,所以双方都要去维护自己的序列号(seq,不从0开始,随机生成的)。因为要获取序列号(和MSS,滑动窗口),所以要握手。

    2. 为什么要三次?

      因为关闭连接的时候,TCP协议允许连接处于半打开(半关闭)状态。而建立连接不允许连接处于半打开状态,所以Server要把自己的序列号回复过来。

  2. HTTP 缓存处理流程?

    Request 中 Cache-Control: max-age=30 ,告诉代理服务器,如果有缓存的话,如果超过30秒时,就不要给Client返回,让代理服务器去原服务器去取。

    Response 中的 Cache-Control: max-age=30 ,告诉客户端,只能到30秒,否则将视为过期。

  3. 地址栏输入URL到底发生了什么?

    考点:

    1. 应用层

      DNS域名解析-》代理服务器 -》可能缓存->网关(Nginx、Apache)-》Origin Server 【如上图所示】

    2. 请求编码

      http://[domain]/[path] -> 转换成 Method ,Path ,Version Protocol,Header等

    3. 网络分层

      1. TCP解决进程到进程之间的通信
      2. IP 解决主机到主机之间的通信
      3. 数据链路层 解决 局域网内部的通信
  4. HTTP长链接有哪些优点?

    考点:

    1.长链接和短连接的区分?

    ​ HTTP Header : connect : close / keepalive

    2.TCP协议

    1. 减少握手建立的消耗

    2. 降低了慢启动带来了传输效率的影响,支持(1字节-1GB数据大小,不限于1GB

      1.TCP天生代流量控制的,但中间的网络带宽等都是有限制的,所以TCP会从慢到快最终到一个合适的传输状态。

      1. 缺点:TCP字符流协议,长链接传输多个文件的时候,第一个文件没传递完成时不会传第二个,会导致TCP长链接串行传旭。因为TCP会有一个队头阻塞问题,(只要有一个丢包,即使传了对方应用层不会接收。)
  5. CLOSE_WAIT产生的原因?(出程序Bug了,可能忘记关闭Socket了,Socket泄露)

  6. 单播,广播,组播,多播。「TODO」

  7. 服务器的最大并发连接数是多少?

    考点:TCP四元组,并非是65536个端口号的限制。

    1. TCP四元组包括源IP,源端口,目的IP和目的端口。(不仅受制于端口) 2^48 = 2^16 * 2^32 (理论)

    2. Linux更多的并发数可以打开(ip local port range 打开)、配置多网卡,虚拟IP(实践)

    3. 高并发的限制?怎样处理高并发优化?

      不要处理一个请求时间过长,否则可能会导致超时。(需要用到事件驱动,因其无阻塞)

  8. 报文传输:TCP Header 过大 20字节 UDP 8字节

  9. TLS/SSL怎么保证安全问题?

    1. PKI证书体系:RSA-非对称加密
    2. 对称加密算法:速度快,不知道秘钥情况下,不能逆推。
    3. 秘钥交换协议:握手阶段协商(DH & ECCDH)
  10. HTTP 2.0 优点

    HTTP 1.1 缺点

    1. Header 太长 :cookie、user-agent 等 每次都发送,占用带宽
    2. 不支持多路复用

    解决:

    1. 消息推送,访问http//***/index.html 推送css和js。
    2. 多路复用:【Chrome下默认6个TCP连接】
    3. HPACK编码:(header压缩编码)
      1. 动态表
      2. 静态表 (常用61个)
      3. 静态 Huffman
      4. 证书编码
    4. Stream 优先级
      1. 父子依赖
      2. 权重优先级

Other

  1. 大厂更考验的是分析能力,即使不会也应该去分析一下。
  2. 小厂不希望你有太明显的短板,希望全方位能力。
TCPUDP是两种常见的网络传输协议,它们在网络通信中扮演着不同的角色。下面是一些TCPUDP面试题及其答案: 1. TCPUDP的区别是什么? TCP是面向连接的可靠传输协议,它提供了数据传输的可靠性和完整性,但是传输效率相对较低。UDP是无连接的不可靠传输协议,它提供了数据传输的高效性,但是无法保证数据的可靠性和完整性。 2. TCP的三次握手和四次挥手分别是什么? TCP的三次握手是指在建立TCP连接时,客户端和服务器之间需要进行三次握手来确认连接的建立。具体过程如下: 第一次握手:客户端向服务器发送SYN包,请求建立连接。 第二次握手:服务器向客户端发送SYN/ACK包,表示同意建立连接。 第三次握手:客户端向服务器发送ACK包,表示连接建立成功。 TCP的四次挥手是指在关闭TCP连接时,客户端和服务器之间需要进行四次挥手来确认连接的关闭。具体过程如下: 第一次挥手:客户端向服务器发送FIN包,请求关闭连接。 第二次挥手:服务器向客户端发送ACK包,表示已经收到关闭请求。 第三次挥手:服务器向客户端发送FIN包,请求关闭连接。 第四次挥手:客户端向服务器发送ACK包,表示已经收到关闭请求。 3. TCP的流量控制和拥塞控制是什么? TCP的流量控制是指通过滑动窗口机制来控制发送方的发送速率,以避免接收方无法处理过多的数据。TCP的拥塞控制是指通过拥塞窗口机制来控制网络中的拥塞程度,以避免网络拥塞导致数据丢失和传输延迟增加。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值