计算机网络笔记
运输层
概述
如何为在不同主机上的应用进程提供直接的通信服务是运输层的任务,运输层协议又称为端到端协议,根据需求不同,运输层为应用层提供了两种不同的运输协议,即面向连接的TCP和无连接的UDP 。
运输层端口号 复用和分用的概念
- 端口号:因为不同的操作系统对于进程号PID的表示方法不同,故使用统一的方法对TCP/IP体系的应用进程进行标识,这个方法就是端口号。
- 发送方层层封装叫复用,接收方层层解封叫分用
TCP与UDP
-
TCP和UDP的区别
(1)无连接的UDP 面向连接的TCP
(2)UDP可单播,多播,广播;TCP仅支持单播
(3)UDP面向应用报文(UDP对应用进程交下来的报文既不合并,也不拆分),TCP面向字节流
(4)UDP不可靠,TCP可靠 -
TCP的流量控制
(1)所谓流量控制,就是让发送方的发送速率不要太快,要让接收方来得及接收
(2)接收方可以利用滑动窗口机制,来限制发送方的发送窗口大小来实现流量控制
(3)当发送方收到接收方的零窗口通知后,会启动计时器,当计时器到时时主动发送零窗口探测报文,防止双方一直等待下去。 -
TCP的拥塞控制(判断拥塞的依据:发生超时重传)
发送窗口swnd 拥塞窗口cwnd 慢开始门限ssthresh
当cwnd < ssthresh时,使用慢开始算法
当cwnd > ssthresh时,使用拥塞避免算法
(1)慢开始:每传输成功一轮,cwnd就成倍增长,直到ssthresh
(2)拥塞避免:当cwnd达到ssthresh后,每传输成功一轮,cwnd就线性加一,直到发生超时重传,判定为网络拥塞,将ssthresh改为当前发送窗口的一半,将发送窗口置1,并重新开始慢开始算法。
(3)快重传:目的是使发送方尽快进行重传,而不是等超时重传计时器超时再重传,对于个别丢失的报文段,发送方不会出现超时重传,也就不会误认为网络出现了拥塞,而白白降低cwnd。
(4)快恢复:当收到三个重复确认时,判断发生了部分报文的丢失,将ssthresh更新为目前发送窗口的一般,并令cwnd=ssthresh -
TCP连接的建立
采用三报文而不是两报文来建立连接,是为了防止已失效的连接请求报文段突然又传到了TCP服务器 ,导致TCP服务器浪费资源。 -
TCP连接的释放
为什么要等2MSL(最长报文段寿命)?(1)保证TCP服务端可以正确关闭连接(2)使此次连接产生的报文段都在网络中消失,不影响下次建立连接