TCP的三次握手与四次挥手
时间: 2024-11-20 22:25:56 浏览: 4
### TCP的三次握手与四次挥手
#### 实验步骤
1. **查看主机IP及MAC地址**:
- 使用 `ipconfig /all` 命令在命令提示符中查看主机的IP地址和MAC地址。
2. **抓包分析**:
- 启动Wireshark抓包工具。
- 打开浏览器访问任意网站,并使用 `ping` 命令查询该网站的IP地址。
- 关闭浏览器,过一段时间后停止捕获数据包。
3. **过滤和分析数据包**:
- 在Wireshark的过滤栏中设置过滤条件,筛选出与目标网站IP地址相关的TCP数据包。
- 使用“跟踪流”功能查看捕获数据包的TCP首部结构,并记录相关信息。
#### 记录表格
##### 三次握手:
| 握手次数 | 序号 | 确认号 | SYN 标志 | ACK 标志 |
| -- | --- |
| 第一次握手 | | | | |
| 第二次握手 | | | | |
| 第三次握手 | | | | |
##### 四次挥手:
| 挥手次数 | 序号 | 确认号 | FIN 标志 | ACK 标志 |
| --- | --- | --- | --- | --- |
| 第一次挥手 | | | | |
| 第二次挥手 | | | | |
| 第三次挥手 | | | | |
| 第四次挥手 | | | | |
#### 思考题
1. **序号与确认号的变化及其意义**:
- 三次握手中,客户端发送的第一个包(第一次握手)带有SYN标志,序号为初始序列号ISN;服务器收到后回复一个带有SYN和ACK标志的包(第二次握手),确认号为ISN+1,同时携带自己的初始序列号;客户端再回复一个带有ACK标志的包(第三次握手),确认号为服务器的初始序列号+1。
- 四次挥手中,客户端发送第一个带FIN标志的包(第一次挥手),表示不再发送数据;服务器回复一个带有ACK标志的包(第二次挥手),确认号为客户端的序号+1;服务器随后也发送一个带FIN标志的包(第三次挥手),表示自己也不再发送数据;客户端最后回复一个带有ACK标志的包(第四次挥手),确认号为服务器的序号+1。
2. **SYN和FIN标志位的设置及其意义**:
- SYN标志位用于发起连接请求,表示同步序列号。
- FIN标志位用于终止连接请求,表示没有更多数据要发送。
3. **建立连接与释放连接的过程**:
- **三次握手**:客户端发送SYN包,服务器回应SYN-ACK包,客户端再发送ACK包,完成连接建立。
- **四次挥手**:客户端发送FIN包,服务器回应ACK包,服务器随后发送FIN包,客户端再回应ACK包,完成连接释放。
4. **三次握手与四次挥手的原因**:
- **三次握手**:为了防止已失效的连接请求报文段突然又传送到服务端,造成错误。通过三次握手可以确保双方都准备好进行通信。
- **四次挥手**:因为TCP连接是全双工的,每个方向都需要单独关闭,因此需要四个包来完成连接的完全关闭。
阅读全文