网站建设风景课程设计报告站长之家论坛
文章目录
- 1 概述
 - 2 TCP 传输控制协议
 - 2.1 报文格式
 - 2.2 三次握手,建立连接
 - 2.3 四次挥手,释放连接
 
- 3 扩展
 - 3.1 实验演示
 - 3.2 网工软考
 
1 概述
- 在 TCP/IP 协议簇 中有两个传输协议 
- TCP:Transmission Control Protocol,传输控制协议,是面向连接的、可靠的。
 - UDP:User Datagram Protocol,用户数据报协议,是面向无连接的、不可靠的。
 
 
2 TCP 传输控制协议
2.1 报文格式

| 参数 | 英文名 | 说明 | 
|---|---|---|
| 源端口 | Sorce Port | |
| 目的端口 | Destination Port | |
| 序号 | Sequence Number | 保证数据的可靠性 | 
| 确认号 | Acknowlegement Number | |
| 首部长度 | Header Length | |
| 保留 | Reserved | |
| 控制位 | Control bits | |
| 窗口大小 | Window Size | 进行流量控制 | 
| 校验和 | Checksum | |
| 紧急指针 | Urgent | |
| 可选项 | Options | 
【其中,控制位有以下参数,其值为 1 时,表示启用。】
| 控制位 | 全称 | 描述 | 
|---|---|---|
| URG | Urgent | 紧急。表示本报文中是否包含紧急数据 | 
| ACK | Acknowledgement | 确认。表示前面的字段是否有效 | 
| PSH | Push | 推送。表示立即将数据推送给上层 | 
| RST | Reset | 重置。表示是否重置连接 | 
| SYN | Synchronization | 同步。在建立连接时使用,用来同步序号。 ① 当 SYN=1,ACK=0 时,表示这是一个请求建立连接的报文段。 ② 当 SYN=1,ACK=1 时,表示对方同意建立连接。  | 
| FIN | Finish | 完成。表示数据已经发送完成,可以释放连接。 | 
2.2 三次握手,建立连接

说明
① 序号 seq:表示本次通信的字节流序号。初始序号 x、y 是自动生成的,如上图:seq = x 表示 客户端 本次的初始序号为 x,seq = y 表示 服务器 本次的初始序号为 y。
② 确认号 ack:确认上一步的序号,并进行 + 1 (目的:表明数据包是连续的)。
③ 当 控制位 ACK = 1 时,确认号 ack 才有值。
2.3 四次挥手,释放连接

说明
① 请求释放连接 中的 x、y 为上一次通信中的值
② MSL:Maximum Segment Lifetime(最大段时长)
3 扩展
3.1 实验演示
【eNSP:网络拓扑图,对接口 Ethernet 0/0/2 抓包】
 
【客户端 Client1 和 服务器 Server1 配置】
 
【抓包参数信息】
 

3.2 网工软考
【2021上半年 - 21,22】TCP使用的流量控制协议是( ),TCP头中与之相关的字段是( )。
 (21)A.停等应答
    B.可变大小的滑动窗口协议
    C.固定大小的滑动窗口协议
    D.选择重发ARQ协议
 (22)A.端口号
    B.偏移
    C.窗口
    D.紧急指针
参考答案:21=B,22=C
通过数据抓包,可以看到,窗口大小是变化的

【2019下半年 - 22】建立TCP连接时,被动打开一端在收到对端SYN前所处的状态为( )。
 A. LISTEN
 B. CLOSED
 C. SYN RESECEIVD
 D. LASTACK
参考答案:A
