1、运输层概述
计算机网络体系结构中的物理层、数据链路层和网络层共同实现了主机到主机的通信,但是实际上在计算机网络中进行通信的真正实体是位于通信两端主机中的进程。为运行在不同主机上的应用进程提供直接的通信服务是运输层的任务,运输层协议又称为端到端协议。根据应用需求的不同,因特网的运输层为应用层提供了两种不同的运输协议,分别是面向连接的TCP和无连接的UDP。
2、运输层复用与分用的概念
3、UDP与TCP对比
4、TCP的流量控制和拥塞控制
TCP拥塞控制包括慢开始、拥塞避免、快重传和快恢复。通过这四种算法可以实现高网络吞吐量,同时避免网络拥塞。
5、TCP实现可靠传输的方式
1.TCP基于以字节为单位的滑动窗口来实现可靠传输。发送方未收到接收方的确认时,可以将发送窗口内还未发送的数据全部发送出去;接收方只接收序号落入接收窗口内的数据。
2、发送方的发送窗口并不总是和接收方的接收窗口一样大,发送方可以根据网络当时的拥塞情况适当减小自己的发送窗口尺寸。
3、对于没有按序到达接收方的数据,接收方通常将其临时存放在接收窗口中,等待缺少的字节收到后,再按序交付上层的应用进程。
4、收发双方必须实现累积确认和捎带确认机制,这样可以减小传输开销。接收方可以在合适的时候发送确认(累积确认),也可以在自己有数据要发送时把确认信息顺便捎带上(捎带确认)。要注意的是:接收方不应过分推迟发送确认,造成超时重传。并且稍待确认发生的频率很低,因为很少有应用程序同时在两个方向上发送数据。
5、TCP是全双工通信,通信过程中每一方都在发送和接收报文段,每一方都有自己的发送窗口和接收窗口。
6、TCP连接的建立(三次握手)
TCP使用三报文握手建立连接的过程
第三次握手能否取消?
不能,第三次握手可以防止历史连接的建立,失效的、在网络中滞留时间过长的客户端连接请求会让服务端误认为连接被建立,而实际上此时的客户端主机已经没有数据需要发送了。
需要注意,TCP标准规定SYN=1的报文段不能携带数据,但需要消耗一个seq序号。SYN=0的确认报文如果不携带数据则不消耗序号。
7、TCP连接的释放(四次挥手)
为什么在客户端发送完最后一条确认数据后需要进入事件等待状态,而不能直接关闭?
1、如果客户端不进入事件等待,那么如果最后一条报文丢失,会导致服务端不断重传报文而收不到确认,使服务端无法进入关闭状态。
2、等待2MSL的时间可以使本次连接产生的所有报文段都从网络中消失,下一个TCP连接中就不会出现旧的报文数据。