一、概念
传输层位于通信子网和资源子网之间,提供端到端,可靠,全双工的通信。
二、寻址
TCP协议中传输层地址就是TCP端口号,比如FTP: 20/21, TELNET: 23, SMTP: 25, DNS: 53, HTTP: 80
三、连接
三次握手建立连接,四次挥手释放连接
四、传输层协议
(1)UDP
面向报文,只在IP的数据报服务上增加了端口和差错检测的功能,是一种不可靠的传输。
UDP的报头只有8个字节:源端口+目的端口+长度+校验和
(2)TCP
1. 概念
面向字节流,面向连接,提供点对点的可靠全双工通信。
面向字节表示TCP根据对方的窗口值和拥塞程度来决定一个报文段需要多少字节,而UDP的报文长度是由应用进程决定的。
2. 连接
TCP连接的端点叫做套接字
套接字socket =(IP地址:端口号)
3. 超时重传
TCP每发送一个报文段,就对该报文段设置一次超时计时器,超时即重传。
4. 流量控制
采用滑动窗口机制,发送窗口受到接收窗口的调制
一旦收到零窗口通知,就启动持续计时器,一旦时间到期,则发送零窗口检测报文,防止死锁僵局。
5. 拥塞控制
TCP基于窗口进行拥塞控制,维护拥塞窗口cwnd
慢开始:cwnd初始为1,每经过一个传输轮次,翻倍。
当cwnd达到慢开始门限ssthresh之后,进入拥塞避免算法:
拥塞避免算法:cwnd每经过一个传输轮次加1
当没有按时收到确认时,认为发生拥塞,则进入乘法减小
乘法减小:将ssthresh设置为出现拥塞时的拥塞窗口的一半,将cwnd的值重新设置为1,执行慢开始
在TCP Reno协议中,加入了快重传算法
快重传算法:在收到3个重复的确认之后执行快重传算法,将ssthresh设置为当前cwnd的一半,将cwnd的值设置为减半后的ssthresh,然后执行拥塞避免算法,让cwnd线性增加