传输层
传输层概述
传输层作用:IP层提供点到点的连接;传输层提供端到端的连接
。
传输层协议:TCP
、UDP
TCP协议:传输控制协议
,可靠的
、面向连接
的协议,传输效率低
。
UDP协议:用户数据报协议
,不可靠
、无连接
的协议,传输效率高
。
TCP/UDP的封装格式:
- TCP/UDP 报文段(Segment)将若干个字节构成一个分组
- TCP/UDP 报文段封装在IP数据报中
传输层报文分析
TCP报文结构
源端口号:源端口和IP地址的作用是标识报文的返回地址
目的端口号:目标端口指明接收方计算机上的应用程序接口
备注:源端口是随机的,目标端口是固定的
序列号:seq
- 序列号是这个报文的第一个字节的序号
- 在TCP传送的数据流中,每一个字节一个序号
- 在TCP传送的数据流中,如果一个报文段的起始序号是1,次报文段数据部分的大小共158字节,则下一个报文段的序号为159,使用序列号,保证了tcp传输的有序性
确认号:ACK,确认号,表示在回复对端,你发的(在该序号之前的所有数据,我都已经收到)
首部长度:由固定头部和可选项组成, 最小为20字节,最大为60字节
保留:为将来定义新的用途保留,现在一般置0
控制位:共6个,每一个标志位表示一个控制功能
SYN=1:代表请求建立连接(同步位)
ACK=1:代表同意建立连接(确认位)
FIN=1:代表请求断开连接(停止位)
URG=1:代表紧急指针开启—紧急指针:特别着急的数据段优先传递
PSH=1:代表提示接收端应用程序要立刻将数据从缓冲区里面取走.
RST=1:数据没有传输完成断开了,在次请求建议连接
窗口:滑动窗口,代表数据在发送之前,设备间要进行协商,依照最小单位为准发送
校验和:此校验和是对整个的 TCP 报文段,包括 TCP 头部和 TCP 数据
TCP的三次握手、四次挥手
TCP的三次握手
是建立连接的过程,具体步骤如下:
- 第一次握手:客户端向服务器发送一个SYN(同步)包,请求建立连接,其中包含客户端的初始序列号(seq)。
- 第二次握手:服务器收到客户端的SYN包后,向客户端发送一个SYN + ACK(确认)包,其中包含服务器的初始序列号(seq)和确认号(ack),ack的值为客户端的seq值加1。
- 第三次握手:客户端收到服务器的SYN + ACK包后,向服务器发送一个ACK包,其中的确认号为服务器的seq值加1,此时连接建立成功。
三次握手的目的是为了确保客户端和服务器之间的通信能够正常进行,同时避免因为网络延迟等原因导致的重复连接请求。
TCP的四次挥手
是关闭连接的过程,具体步骤如下:
- 第一次挥手:客户端向服务器发送一个FIN(结束)包,表示客户端请求关闭连接。
- 第二次挥手:服务器收到客户端的FIN包后,向客户端发送一个ACK包,表示服务器已经收到客户端的关闭请求。
- 第三次挥手:服务器向客户端发送一个FIN包,表示服务器也请求关闭连接。
- 第四次挥手:客户端收到服务器的FIN包后,向服务器发送一个ACK包,表示客户端已经收到服务器的关闭请求。此时连接彻底关闭。
四次挥手的目的是为了确保客户端和服务器都能够正确地关闭连接,避免数据丢失或不一致的情况发生。
UDP报文结构
源端口:源端口和IP地址的作用是标识报文的返回地址
目的端口:目标端口指明接收方计算机上的应用程序接口
UDP长度:代表整个UDP的数据报是多大
UDP校验和:是一个检查机制,在发送数据包之前检查一下数据包的完整性
UDP的应用
协议名称 | 端口(UDP) | 说明 |
---|---|---|
69 | TFTP | 简单文件传输协议 |
53 | DNS | 域名服务 |
123 | NTP | 网络时间协议 |
67/68 | DHCP | 动态主机配置协议 |