Chinaunix

标题: 请教:TCP中的序列号字段为32位,是否一次传输的数据最大4G? [打印本页]

作者: jiazhengw    时间: 2006-10-21 11:35
标题: 请教:TCP中的序列号字段为32位,是否一次传输的数据最大4G?
近来学TCP的滑动窗口机制,产生了一个问题。TCP包的序列号是随机产生的,并且接收方的序列号也是随着收到的包的字节的增加而增加的。那么,既然它的位数为32位,表示的最大数据长度为2^32字节,那么在FTP传送文件时,岂不是最大一次传送的文件长度为4G吗?而且它初始序列号为随机产生,如果产生了一个接近2^32的数据,岂不是一次连接传送的数据更小?如果使用取模方法计算的话,觉得对于滑动窗口计算字节来说是不连续的。不知道这个问题是怎么解决的,请牛人指教。多谢!!!
作者: langue    时间: 2006-10-21 11:40
序列号 32 位,伪随机。另外,为什么一个包里只能有 1 个字节?
作者: colddawn    时间: 2006-10-21 13:26
初始序列号随机,这个没错。
每一个包确认传输后序列号+1,这个也没错。
当序列号增长至2^32之后,再增长是会回滚为0继续增长的,这个你知道吗?
如果你确实是在学习TCP/IP协议栈,那请你不要看了前几节就来发问,因为你的问题答案就在你课本的后几节。
作者: jiazhengw    时间: 2006-10-22 08:57
谢谢指教!只是我的书太初级了一些,没有这方面的内容呀,所以才有这方面的疑问,呵呵!能不能介绍一下这方面较好较深入一些的书呢?多谢!
作者: langue    时间: 2006-10-22 09:06
TCP/IP Illustrated

假设你看的不是这套,看了以后,你就会越发觉得原先的书是 “初级” 了。
作者: colddawn    时间: 2006-10-22 09:54
我还是觉得TCP/IP详解最好,从不了解协议到精通的人都适合,Stevens写书的功力实在是太强了。
作者: langue    时间: 2006-10-22 09:56
原帖由 colddawn 于 2006-10-22 09:54 发表
我还是觉得TCP/IP详解最好,从不了解协议到精通的人都适合,Stevens写书的功力实在是太强了。


嗯,TCP/IP 详解就是 TCP/IP Illustrated,不过只怕在中国没有多少愿意看原版书的人。
作者: jiazhengw    时间: 2006-10-22 12:42
多谢了!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2