最大报文长度和窗口大小的区别

来源:百度知道 编辑:UC知道 时间:2024/05/16 11:20:51
在TCPIP详解这本书中我看到有MSS(最大报文长度)和窗口。
这样的话我有几个问题:
1.我看书上说窗口大小也就是缓存大小。可以通过这个公式:容量=带宽(b/s)*往返时间(s),来计算窗口大小,是这样么?
2.最大报文长度书上的定义是TCP传往另一端的最大块数据的长度。那么如果两方在建立连接后,向对方通报了自己的mss和窗口大小(比如A通告的mss为512字节,窗口为1024字节,B通告的mss为1460字节,窗口为2048字节),这个怎么理解?我就是不明白最大报文长度和这个窗口有什么区别?
3.若是A,B建立了TCP连接,A和B各自的mss和窗口按按照第二点的括号里的数据(A通告的mss为512字节窗口为1024字节,B通告的mss为1460字节,窗口为2048字节),加入连接建立后双方应用程序都不读取数据,二这个时候双方都向对方发送了个2048字节的成块的用户数据,两方发送一个报文耗时1ms,间隔1ms再发下一个报文,这样的话A,B各自发了多少报文?用了多少时间? 这个里面的mss和窗口怎么理解?mss或是窗口是否可以变换大小?

tcp的窗口表示滑动窗口的大小 。 mss 表示主机允许接受的最大tcp净荷长度。
1 不太懂,按照通信网络基础中学的,滑动窗口的大小是与 n-ARQ协议效率 和传播时延, 帧长 ,误帧率密切相关的, 不好意思啊 这块学的不好,解释不清。
2 两个方向的mss值是可以不一样的。比如你的例子中 在不考虑拥塞控制的情况下,A向 B发tcp的数据域长度就可以是1460,而 B向 A发就是512了。窗口值一般是mss的倍数。
3 因为应用程序没有取,在不考虑差错重传的情况下,A会向B发送2048字节,但是 B只会向A发送1024。 A会向b发两个报文一个长度是 1460 一个是 2048-1460, b只会向 A发两个报文一个是512,第二个是512.

最大报文长度:
TCP提供的是一种面向连接的,可靠的字节流服务,TCP提供可靠性的一种重要的方式就是最大报文段长度(MSS)。通过MSS,应用数据被分割成TCP认为最适合发送的数据块,由TCP传递给IP的信息单位称为报文段或段(segment)。代表一个TCP socket的结构体struct tcp_sock中有多个成员用于确定应用数据被分割成最大为多大的数据块较为合适。
窗口:微机系统中一种新的操作环境。把微机的显示屏幕划分成许多的框,即为窗口。每个窗口负责显示和处理某一类信息。用户可随意在任一窗口上工作,并在各窗口间交换信息。计算机中有专门的窗口管理软件来管理窗口操作。
窗口大小,即为微机的显示屏幕划分成许多的框的大小。