【无标题】


这次,我们在实验环境中,通过一个完整的TCP从三次握手建立连接,互相各发送一个数据报,然后通过四次握手断开连接的流程,来看看一般的TCP网络通讯 是怎么一个样子的。我们还是在172.16.48.13(以下简称13)上建立一个TCP客户端进程,连接172.16.48.1(以下简称1)的 5002端口。然后向1发送一个数据报,1收到后,向13也发送一个数据,然后13发送FIN主动断开连接。1也随后发送它的FIN,完成断开连接,这整 个过程,总共有11个数据报,其中三次握手3个,数据通讯4个,断开连接4个。下面我们列出这11个数据报的主要内容,为简洁起见,略去如源和目的端口等 一些非关键信息。
                    序号            确认序号            标志            数据
三次握手建立连接:
13发送SYN:          0x000007bc(0)   0x00000000(0)       SYN             无
1发送ACK,
并同时发送SYN:      0xab2b9dc7(0)   0x000007bd(1)       SYN ACK         无
13发送ACK:         0x000007bd(1)   0xab2b9dc8(1)       ACK             无
数据收发:
13发送数据报:      0x000007bd(1)   0xab2b9dc8(1)       PSH ACK         21字节负载数据
1发送ACK:          0xab2b9dc8(1)   0x000007d2(22)      ACK             无
1发送数据报:       0xab2b9dc8(1)   0x000007d2(22)      PSH ACK         34字节负载数据
13发送ACK:         0x000007d2(22)  0xab2b9dea(35)      ACK             无
四次握手断开连接:
13发送FIN:         0x000007d2(22)  0xab2b9dea(35)      FIN ACK         无
1发送ACK:          0xab2b9dea(35)  0x000007d3(23)      ACK             无
1发送FIN:          0xab2b9dea(35)  0x000007d3(23)      FIN ACK         无
13发送ACK:         0x000007d3(23)  0xab2b9deb(36)      ACK             无
    表中序号后面的括号中是十进制的相对序号,从零开始。三次握手完成,两端因为各发送一个SYN而各占用一个序号,数据收发阶段,13发送一个21字节的数 据报,占用21个序号,1发送一个34字节的数据报而占用34个序号,断开连接阶段,两端因为各发送一个FIN而各占用一个序号。所以,最后,13共占用 1+21+1=23个序号(0-22),而1共占用1+34+1=36个序号(0-35)。
    从表中可以看到,如果一端发送一个数据报后,不需要对端回应,紧接着发送第二个数据报,则这两个数据报实际上会ACK对端的同一个数据报,表中,13的第 一个ACK和(PSH ACK),都应答了1的(ACK,SYN)。在数据通讯阶段,TCP协议对收到的每一个数据报都要进行ACK确认,否则对方会超时重传。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值