目录
一、传输层介绍
1、传输层概念
传输层是计算机网络体系结构中的中间一层,负责在网络中不同主机之间提供端到端的数据传输服务。它位于网络层和应用层之间,为应用程序提供了一种透明的数据传输机制。
2、传输层主要功能
- 数据分段
- 可靠的数据传输
- 错误检测(校验)
- 流量控制
二、TCP协议
1、TCP协议介绍
TCP是面向连接的、可靠的进程到进程通信的协议。TCP提供全双工服务,即数据可在同一时间双向传输,每一个TCP都有发送缓存和接收缓存,用来临时存储数据。
2、TCP报文格式
- 源端口号:发送方的端口号,用于标识发送方的应用程序。
- 目标端口号:接收端进程的端口号。接收端收到数据段后,根据这个端口号来确定把数据送给哪个应用程序的进程
- 序号:发送端为每个字节进行编号,便于接收端正确重组;用于标识TCP数据流中第一个字节的序列号。
- 确认号:对发送端的确认信息。表示期望接收的下一个字节的序列号,用于确认已接收到的数据。
- 首部长度:用它可以确定TCP首部数据结构的字节长度。一般情况下TCP首部是20字节,但首部长度最大可以扩展为60字节。
- 控制位:
- 窗口大小:是指发送方在等待接收方确认的数据量。窗口大小定义了在不接收确认之前发送方可以发送的数据量。
- 校验和:用于检验TCP头部和数据的完整性。
- 紧急指针:仅在URG标志被设置时有效,用于指示紧急数据的边界。
- 选项:可选字段,用于在TCP头部中包含一些可选信息,如最大段大小、时间戳等。
3、TCP的三次握手
3.1、TCP三次握手流程图
3.2、TCP三次握手详解
- PC1主动向PC2发出请求报文,随机产生序号为x,并且同步位(SYN)为1。
- PC2收到PC1的请求报文后,发送SYN+ACK报文,并且随机产生一个序号为y,Ack确认号为x+1,且同步位为1,确认位为1(SYN=1,ACK=1)。
- PC1收到PC2的回复后,发送ACK报文,序号(Seq)为 x+1,确认号(Ack)为 y+1,确认位(ACK)为1。
4、TCP的四次挥手
4.1、TCP四次挥手流程图
4.2、TCP四次挥手详解
- 第一次挥手:PC1发送一个FIN/ACK报文给PC2,表示PC1不再发送数据,并请求关闭连接。
- 第二次挥手:PC2收到PC1的信息后,发送ACK报文,且确认位为1(ACK=1)
- 第三次挥手:当PC2数据接受完,会发送FIN/ACK报文给PC1,且结束标志位1,确认位为1(FIN=1,ACK=1)表示自己数据已经接收完毕。
- 第四次挥手:PC1收到PC2回复的报文后,发送ACK报文,且确认位为1(ACK=1)
5、TCP常见端口号以及功能
三、UDP协议
1、UDP协议介绍
UDP 是一种简单的面向无连接的传输层协议,它提供了在网络上发送数据的功能,但不提供可靠性、流量控制、错误恢复或顺序传输等功能。UDP被设计为尽可能简单和轻量,适用于一些对实时性要求较高、数据量较小、容忍少量丢失的应用场景,比如语音通话、视频流等。
2、UDP协议的功能
- 面向无连接
- 提供不可靠网络访问
- 传输性能高
- 无数据恢复性
- 花费的开销小