**
计算机网络(四)运输层
**
(1)TCP
(a)功能
① TCP提供一种面向连接的,可靠的字节流服务。
② 面向连接-两个使用TCP的应用(通常为客户端,服务器端)在彼此交换数据之前必须先建立一个TCP连接。
③ 在一个TCP连接中,仅有两方进行彼此通信(单播通信,广播和多播不适用)。
④ 应用数据被分割成TCP认为最适合发送的数据块。
⑤ 当TCP发送一个段后,启动一个计时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。
⑥ 当TCP收到来自TCP连接另一端的数据,它将发送一个确认(不是立即发送,通常将推迟几分之一秒)。
⑦ TCP收到的IP报文段可能是无序的,所以TCP报文段也会失序,如有必要,会将数据重排再发送到应用层。
⑧ IP数据报会发生重复,TCP的接收端需丢弃重复数据。
⑨ TCP提供流量控制,连接每一方都有固定大小的缓冲区。
(b)字节流
① 字节流由8bit字节构成。
② TCP对字节流的内容不作任何解释(不管传输的数据是什么)。
③ 传输过程中,数据被划分成一个个数据报,为了方便传输,两端数据需一样。
(c)TCP的首部**
① TCP数据在IP数据报中封装。
② 每个TCP端都包含源端和目的端的端口号,用于寻找发送端与接收端应用进程。这两个值加上IP首部中的源端IP地址与目的端IP地址唯一确定一个TCP连接。
③ 连接的端点:Socket=(IP地址,端口号)
④ 序号:标识TCP发端向接收端发送数据字节流的标识,为每个字节进行计数,每进行一次传输+1。 SYN (消耗一个序号),FIN(消耗一个序号),ACK(无序任何代价,为1时确认序号字段有效,代表发送成功),ack
⑤ 连接请求报文段不能携带数据,但要消耗一个序号
(d)为应用层提供双全工服务(两端既可以作为发送端,也可以接收端)。**
(e)TCP三次握手与四次挥手**
(f)相关协议
① 停止等待协议(ARQ)
1)为满足TCP保证传输可靠性(滑动窗口协议的简化版)
2)自动重传请求
3)A向B发送一个分组时,都要停止发送,等待B的确认应答了然后只要A接收到B的确认应答,才能发送下一个分组。
4)计时器的超时时间要大于应答的平均返回时间,否则会出现很多不必要的重传,降低传输效率。但超时时间也不能太长。
5)必须设置超时计时器。每发送一个分组就要启动计时器,超时就要重发分组。
6)必须给每个分组进行编号。以便按序接收,并判断该分组是否已被接收。
② 滑动窗口协议(连续ARQ协议)
1)在ARQ协议发送者每次只能发送一个分组,在应答到来前必须等待。而连续ARQ协议的发送者拥有一个发送窗口,发送者可以在没有得到应答的情况下连续发送窗口中的分组。这样降低了等待时间,提高了传输效率。
2)在连续ARQ协议中,接收者也有个接收窗口,接收者并不需要每收到一个分组就返回一个应答,可以连续收到分组之后统一返回一个应答。这样能节省流量。
3)发送窗口由三个指针构成,且指针是不断发生变化的
(g)相关问题
① 流量控制:作用于接收者,控制发送者的发送速度从而使接收者来得及接收。往往是点对点,端到端的问题。(防止分组丢失,是构成TCP可靠性的一方面)
② 拥塞控制:作用于网络的,防止过多的数据注入到网络中,避免出现网络负载过大的情况。(缓解网络压力,保证分组按时到达)
1)在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况就叫做网络拥塞。
2)若出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降。
3)资源:数位链路容量(即带宽)、交换结点中的缓存和处理机等
4)https://blog.youkuaiyun.com/qq_41431406/article/details/97926927(四种拥塞控制算法详解)