传输层

120 阅读3分钟

什么是传输层

传输层是整个网络体系结构中的关键层次之一,主要负责向两个主机中进程之间的通信提供服务。由于一个主机同时运行多个进程,因此运输层具有复用和分用功能。传输层在终端用户之间提供透明的数据传输,向上层提供可靠的数据传输服务。传输层在给定的链路上通过流量控制、分段/重组和差错控制来保证数据传输的可靠性。传输层的一些协议是面向链接的,这就意味着传输层能保持对分段的跟踪,并且重传那些失败的分段。

传输层有哪些协议

传输层最常见的两个协议分别为传输控制协议TCP和用户数据报协议UDP

TCP的首部格式

TCP的首部格式如下图所示:

① Source Port是源端口,16位。

② Destination Port是目的端口,16位。

③ Sequence Number是发送数据包中的第一个字节的序列号,32位。

④ Acknowledgment Number是确认序列号,32位。

⑤ Data Offset是数据偏移,4位,该字段的值是TCP首部(包括选项)长度除以4。

⑥ Reserved 是保留位,4位,为将来使用而保留的一组控制位。在生成段中必须为零。

⑦ 控制位(标志位): 6位,

CWR 表示减少拥塞窗口

ECE 表示从对方到本方的网络有拥塞

URG表示Urgent Pointer字段有实际意义

ACK表示Acknowledgment Number字段有实际意义

PSH表示Push功能

RST表示复位TCP连接

SYN表示SYN报文(在建立TCP连接的时候使用)

FIN表示数据发送完毕(在关闭TCP连接的时候使用)

⑧ Window表示接收缓冲区的空闲空间,16位,用来告诉TCP连接对端自己能够接收的最大数据长度。

⑨ Checksum是校验和,16位。

⑩ Urgent Pointers是紧急指针,16位,只有URG标志位被设置时该字段才有意义,表示紧急数据相对序列号(SequenceNumber字段的值)的偏移。

TCP协议

面向控制协议TCP,在tcp协议中数据与数据之间的传输必须要建立连接 SYN=1 请求建立连接 SYN=1 ACK=1 同意建立连接 FIN=1 请求断开连接 FIN=1 ACK=1 同意断开连接

TCP协议的特点

1.面向连接 2.通信方式可靠 3.传输慢

三次握手

在TCP协议中,通信双方将通过三次TCP报文的交换过程被称作TCP连接建立实现的三次握手 当连接建立后,如图pc1发送一个序号为x 同步为1的请求连接的报文,pc2收到请求建立连接的报文会回复一个序号为y 同步位为1 确认位为1 确认号为x+1 同意建立连接的报文,之后pc1收到同意连接的报文后会向pc2回复一个序号为x+1 确认位为1 确认号为y+1的确认报文。 image.png

四次挥手

如下图,客户机A向服务器发送给您一个序号为u 同步为1的请求断开连接的报文,客户端进入FIN wait状态,此时当服务器发出ACK报文后服务器会进入CLOSE WAIT 状态,发送FIN/ACK报文后服务器会进去LAST ACK状态等待客户端的最后一个ACK报文,而此时客户机收到服务器的ACK报文会进入FIN WAIT2状态,随后向服务器发送ACK报文进入CLOSED状态,最终服务器收到客户机发出的确认包后关闭连接,进入CLOSED状态。 image.png

UDP协议的特点

1.无连接丶不可靠的传输协议 2.花费代价小

UDP报文的首部格式

image.png UDP长度:用来指出UDP的总长度,为首部加上数据。 校验和:用来完成对UDP数据的差错检验,它是UDP协议提供的唯一的可靠机制。