计算机网络第五章——运输层

进程之间的通信

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

复用和分用:省略

运输层的两个主要协议:传输控制协议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页

三次握手

四次握手

栏目