进程之间的通信
运输层通信的端点:主机中的进程
复用和分用:省略
运输层的两个主要协议:传输控制协议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