计算机网络第五章——运输层
作者:互联网
进程之间的通信
-
运输层通信的端点:主机中的进程
-
复用和分用:省略
-
运输层的两个主要协议:传输控制协议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