任务一 TCP传输控制协议18
知识点
1. 传输层控制协议是什么
传输层有两大协议:TCP、UDP。 TCP就是传输控制协议,属于传输层;UDP是用户数据报协议。
传输层协议作用:端到端(进程到进程)通信,使用端口号区分不同应用程序。
2. TCP协议是什么
TCP是TCP/IP传输层,面向连接、可靠传输的协议。 特点(必背):
- 面向连接:通信前必须建立连接,通信结束正常断开连接
- 可靠传输:保证数据完整、有序、不重复送达目的主机
- 全双工通信:双方可以同时收发数据
- 基于字节流:把数据看成连续字节流,没有报文边界
对比:UDP无连接、不可靠。
3. 简述TCP连接的建立过程(三次握手)
目标:通信双方协商初始序列号,确认收发能力正常。
- 第一次握手:客户端 → 服务器,SYN报文(同步,请求建立连接),客户端序列号seq=x
- 第二次握手:服务器 → 客户端,SYN+ACK报文。SYN:服务器请求连接,seq=y;ACK确认收到客户端SYN,确认号ack=x+1
- 第三次握手:客户端 → 服务器,ACK报文,ack=y+1。服务器收到ACK,连接正式建立。
一句话背诵:SYN、SYN+ACK、ACK,三次握手建立TCP连接
4. TCP报文的基本结构中各字段的作用是什么
TCP报文段 = TCP首部 + 数据 最小首部20字节,选项字段最长40字节,最大60字节。
| 字段 | 作用 |
|---|---|
| 源端口号、目的端口号 | 标识两端应用进程,传输层寻址 |
| 序号seq | 本报文段数据第一个字节的编号,字节流编号 |
| 确认号ack | 期望收到下一字节的序号,ack=N代表N之前全部收到 |
| 数据偏移 | TCP首部长度(单位:4字节) |
| 控制位(标志位) | SYN、ACK、FIN、RST、PSH、URG(考试重点:SYN建立,FIN断开) |
| 窗口 | 流量控制,告诉对方本机接收缓冲区剩余大小 |
| 校验和 | 校验TCP首部+数据,检测传输差错 |
| 紧急指针 | URG标志生效,标记紧急数据位置 |
考试一句话:TCP报文段包含源端口、目的端口、序号、确认号、控制标志、窗口、校验和等字段。
5. TCP可靠数据传输是如何做到的
4个核心机制:
- 序号与确认应答(ACK):每个字节分配序号;接收方收到数据返回ACK确认,告诉发送方哪些数据已经收到。
- 超时重传:发送数据启动计时器,超时没收到ACK,重新发送报文,解决丢包。
- 流量控制:滑动窗口机制。接收方通过窗口大小告诉发送方,不要发送超出缓冲区能力的数据,防止接收缓冲区溢出。
- 拥塞控制:慢启动、拥塞避免等,防止网络链路过载。
6. 简述TCP连接的终止过程(四次挥手)
TCP全双工,两个方向独立关闭,需要四次报文交互。
- 第一次挥手:客户端发送FIN报文,请求关闭客户端→服务器方向的数据传输
- 第二次挥手:服务器返回ACK,确认收到客户端FIN。此时服务器还能继续向客户端发数据
- 第三次挥手:服务器数据发送完毕,发送FIN报文,请求关闭服务器→客户端方向传输
- 第四次挥手:客户端返回ACK确认,服务器收到ACK,连接彻底释放。
一句话背诵:FIN、ACK、FIN、ACK,四次挥手断开TCP连接。