当前位置: 技术问答>linux和unix
TCP/IP中的紧急指针问题
来源: 互联网 发布时间:2015-04-14
本文导语: 在TCP的首部中,书上说: 紧急指针字段加上序号字段得到发送的紧急数据的最后一个八位组的32bit序号。我就是不明白,刚开始在进行三次握手时,两方都有一个初始序号,以后的报文的序号是前一个报文序号加1,...
在TCP的首部中,书上说:
紧急指针字段加上序号字段得到发送的紧急数据的最后一个八位组的32bit序号。我就是不明白,刚开始在进行三次握手时,两方都有一个初始序号,以后的报文的序号是前一个报文序号加1,那怎么会:紧急指针字段加上序号字段得到发送的紧急数据的最后一个八位组的32bit序号?
哪位高人给我指点一下,可能是我对序号的理解错误。谢谢了!
紧急指针字段加上序号字段得到发送的紧急数据的最后一个八位组的32bit序号。我就是不明白,刚开始在进行三次握手时,两方都有一个初始序号,以后的报文的序号是前一个报文序号加1,那怎么会:紧急指针字段加上序号字段得到发送的紧急数据的最后一个八位组的32bit序号?
哪位高人给我指点一下,可能是我对序号的理解错误。谢谢了!
|
"最后一个八位组的32bit序号"是个什么意思?怎么听起来这么别扭?
而且URG和三次握手好像没有什么关系吧?
"以后的报文序号是前一个报文序号加1"也不对吧?不一定加一阿,如果有数据的话,还要加数据长度的.TCP头的URG和16bit urgent pointer是指定了一个范围,也就是从当前包的No.到 No.+ Offset之间的数据都属于URG状态的数据。
不知道我说清楚了没有。
而且URG和三次握手好像没有什么关系吧?
"以后的报文序号是前一个报文序号加1"也不对吧?不一定加一阿,如果有数据的话,还要加数据长度的.TCP头的URG和16bit urgent pointer是指定了一个范围,也就是从当前包的No.到 No.+ Offset之间的数据都属于URG状态的数据。
不知道我说清楚了没有。
|
不是。实际上每次能够传送的紧急数据虽然很多,但因为只有一个pointer用来指出其位置(实际是指向结束位置的后一个字节),所以没有办法获得紧急数据的长度。
|
以后的报文的序号是前一个报文的序号加上前一个报文的长度,不是加一。现在就可以理解了吧。
|
紧急指针指向紧急数据的最后一个字节的下一个字节。
|
只能知道一个字节是。指针指向的字节的前一个。