TCP/IP三次握手面试常问问题

TCP/IP的三次握手确保了连接的可靠性,通过客户端和服务器的状态转换保证了双方的确认交互。两次握手无法保证服务器到客户端的确认,而四次握手则显得冗余。三次握手在保证数据完整性和效率间找到了平衡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.三次握手过程 

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

2.三次握手5个状态

客户端:主动打开(closed)、同步发送(SYN-SENT)、已建立连接(ESTAB-LISHEND)
服务器端:主动打开(CLOSED)、收听(LISTEN)、同步收到(SYN-RCVN)、已建立连接(ESTAB-LISHEND)

3.为什么是TCP/IP三次握手不是四次两次握手?

1.为什么不是两次握手?
必须保证报文的有去有会,才能够保证数据包的完整性,两次握手只能保客户端到服务器有去有回,不能保证服务器到客户端的有去有回,因此必须是三次握手,保证客户端到服务器有去有回,服务器到客户端的有去有回。
2.为什么不是四次握手?
四步也可以,但是四步有点多有浪费,三步都能完成握手,何必四次呢

<think>嗯,用户现在问的是关于TCP/IP协议的考试题。首先,我需要理解用户的需求。他们可能在准备考试,需要复习TCP/IP相关的知识点和常见考题。之前的对话中,用户询问了Shell脚本的面试题,现在转向网络协议,可能是在准备技术岗位的面试或者认证考试,比如网络工程师或者CCNA之类的。 接下来,我要考虑用户可能需要的具体内容。TCP/IP协议栈包括很多层,每层有不同的协议和功能。考试题通常会涉及各层的功能、协议、数据单元、典型问题三次握手、四次挥手、IP地址和子网划分、路由协议等。此外,常见的故障排查命令如ping、tracert、netstat也可能被问到。 用户可能希望得到分门别类的常见考题,以及核心知识点,这样他们可以系统地复习。我需要整理这些内容,确保覆盖基础概念、各层协议、关键机制、地址管理、应用层协议、故障排查以及综合应用题。 同时,要注意用户之前对Shell脚本的回答结构,可能希望类似的清晰结构,分模块归纳,便于理解和记忆。所以,我需要按照不同的类别来组织问题,比如基础概念、各层协议、关键机制、地址子网、应用协议、故障排查和综合应用。 另外,需要注意考试题可能包括理论题和实际操作题,比如计算子网掩码、分析网络拓扑等。因此,在整理时不仅要包括概念,还要有实例和计算步骤,帮助用户理解和应用。 还要考虑用户可能的误解点,例如混淆TCP和UDP的区别,三次握手的详细过程,子网划分的错误等。在回答中需要特别强调这些易错点,帮助用户避免常见错误。 最后,确保内容准确,符合TCP/IP协议的标准,引用正确的RFC文档(如果有必要的话),但可能用户不需要太深入的细节,重点在于考试常考的内容。所以,需要平衡深度和广度,提供足够的信息,但不过于冗长。</think>以下是TCP/IP协议核心考点及典型考试题型解析,分模块整理帮助系统化备考: 📌 一、基础概念必考 1. **协议栈分层对比** ```text 应用层(HTTP/FTP) → 传输层(TCP/UDP) → 网络层(IP/ICMP) → 数据链路层(ARP) ``` - 典型问题TCP与UDP的区别?(连接性、可靠性、速度、数据顺序保证) 2. **数据单元名称** - 传输层:TCP段(Segment)/UDP数据报(Datagram) - 网络层:分组(Packet) - 链路层:帧(Frame) 📌 二、协议机制详解 1. **TCP三次握手(连线题高频)** ```mermaid sequenceDiagram Client->>Server: SYN=1, Seq=x Server->>Client: SYN=1, ACK=x+1, Seq=y Client->>Server: ACK=y+1, Seq=x+1 ``` - 重点问题:为什么需要三次握手?(防止历史连接建立,确认双方收发能力) 2. **TCP四次挥手(挥手过程排序题)** ```mermaid sequenceDiagram A->>B: FIN=1 B->>A: ACK B->>A: FIN=1 A->>B: ACK (等待2MSL) ``` - 高频考点:TIME_WAIT状态的作用?(确保最后ACK到达,防止旧数据干扰新连接) 📌 三、IP地址与子网划分 1. **CIDR计算题** ```text 给定IP:192.168.10.130/26,求: - 子网掩码 → 255.255.255.192 - 网络地址 → 192.168.10.128 - 可用主机范围 → 192.168.10.129-190 ``` 2. **私有地址范围(填空题)** ```text Class A: 10.0.0.0 ~ 10.255.255.255 Class B: 172.16.0.0 ~ 172.31.255.255 Class C: 192.168.0.0 ~ 192.168.255.255 ``` 📌 四、典型协议分析 1. **ARP协议工作原理** - 问题:当主机A访问192.168.1.5时如何获取MAC地址? ```text 1. 查ARP缓存 2. 无记录则广播ARP请求 3. 目标主机单播回复 ``` 2. **ICMP协议应用** - 典型工具:ping(测试连通性)、traceroute(路径追踪) 📌 五、网络排错实战 1. **常用诊断命令** ```bash netstat -ano # 查看端口状态 tcpdump -i eth0 # 抓包分析 route print # 查看路由表 ``` 2. **连通性故障分析步骤** ```text 1. 检查物理连接 2. ping 127.0.0.1(本地协议栈) 3. ping 网关IP(局域网连通性) 4. ping 公网IP(外网连通性) 5. nslookup域名(DNS解析) ``` 📌 六、综合应用题 **场景:浏览器访问http://www.example.com的全过程** 1. DNS解析获取IP地址 2. TCP三次握手建立连接 3. HTTP请求发送 4. 服务器返回网页数据 5. TCP四次挥手断开连接 💡 高频易错点提醒: 1. MTU与MSS的区别(MTU=数据链路层最大传输单元,MSS=TCP层最大报文段长度) 2. NAT地址转换原理(解决IPv4地址短缺) 3. 滑动窗口机制(流量控制与拥塞控制) 4. TCP状态转换图(CLOSE_WAIT过多可能出现的服务端问题) 建议通过Wireshark抓包分析实际通信过程,结合实验理解理论概念,考试遇到拓扑图分析题时先标注各设备IP和子网掩码再逐步推导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zhu1241jie

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

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

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

打赏作者

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

抵扣说明:

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

余额充值