天天看点

累计确认 计算机网络,计算机网络第五章——运输层

进程之间的通信

运输层通信的端点:主机中的进程

复用和分用:省略

运输层的两个主要协议:传输控制协议TCP和用户数据报协议UDP

运输层的端口:

服务器端口范围

0~1023

客户端端口范围

49152~65535常用端口号

应用程序

FTP

TELNET

SMTP

DNS

TFTP

HTTP

SNMP(trap)

HTTPS

熟知端口号

21

23

25

53

69

80

161

162

用户数据报协议UDP

UDP是无连接的,尽最大努力交付,面向报文,没有拥塞控制,支持一对一、一对多、多对一、多对多交互通信,首部开销小

传输控制协议TCP

特点:TCP是面向连接的、可靠交付、全双工通信、面向字节流

停止等待协议

优点是简单,缺点是信道利用率太低

信道利用率

U = TD/(TD + RTT + TA)

TD是A发送分组需要的时间,等于分组长度/数据率

TA是B发送确认分组需要的时间

连续ARQ协议

通常A最终总是可以收到对所有发出的分组的确认

使用上述的确认和重传机制,我们就可以在不可靠传输网络上实现可靠通信

TCP报文段的首部格式

累计确认 计算机网络,计算机网络第五章——运输层

源和目的端口:各占2个字节,分别写入源端口和目的端口。

序号:本报文段发送的数据的第一个字节的序号。

确认号:是“确认报文”中期望收到对方下一个报文的第一个数据字节的序号。

确认 ACK:发送方在一定时间内没有收到服务端的ACK确认包后,就会重新发送TCP数据包。发送方收到了

ACK,表明接收方已经接收到数据,保证了数据的可靠达到。

同步 SYN:该标志仅在三次握手建立TCP连接时有效。它提示TCP连接的服务端检查序列编号,该序列编号为TCP连接初始端(一般是客户端)的初始序列编号。

窗口:指明现在允许对方发送的数据量,因为接收方的缓存是有限的。窗口值是动态变化的。

可靠传输的实现

以字节为单位的滑动窗口

A的发送窗口并不总是和B的接收窗口一样大

TCP标准没有规定对不按序列到达的数据应如何处理,通常是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程。

TCP要求接收方必须有累计确认的功能,这样可以减小传输开销

超时重传时间的选择:重要的公式计算在225页

TCP的流量控制

利用滑动窗口实现流量控制

例题:

主机A和主机B建立TCP连接后,A准备向B发送的数据如下表所示:

发送窗口的初始值为400,每个报文段的长度为100字节,数据报文段序号的初始值为seq=301,请分析

301 400

401 500

501 600

601 700

701 800

801 900

901 1000

(1) A发送完seq=301的数据后未收到B发来的任何确认信息,请给出当前发送窗口的范围,并给出其中发送已确认,已发送未确认,可发送还未发送,不允许发送的字节范围

发送窗口的范围301~700

发送已经确认

已发送未确认:301~400

可发送还未发送:401~700

不允许发送:701~1000

(2) A发送完seq=601的数据后收到B发来的ACK=1,ack=501,rwnd=300的报文。请给出当前发送窗口的范围,并给出其中发送已确认,已发送未确认,可发送还未确认,不允许发送的字节范围

发送窗口的范围501~800

发送已确认:301~500

可发送还未发送:501~700

不允许发送:701~800

不允许发送:801~1000

TCP的拥塞控制

防止过多的数据注入网中,使网络中的路由器或链路过载

重传并不会缓解网络的拥塞,反而会加剧网络的拥塞

拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素拥塞控制方法:232页

三次握手

四次握手

标签:运输,发送窗口,字节,报文,确认,TCP,发送,计算机网络,第五章

来源: https://blog.csdn.net/kedacpu/article/details/106796339