计算机网络-TCP运输连接管理

1 运输连接概述

  • TCP 是面向连接的协议
  • TCP 连接有三个阶段:连接建立,数据传送,连接释放
  • TCP 连接的管理就是使 TCP 连接的建立和释放都能正常地进行

TCP 连接建立过程中要解决的三个问题:

  1. 要使每一方能够确知对方的存在,确认双方接收和发送的功能是能够正常工作的
  2. 要允许双方协商一些参数(如最大窗口值、是否使用窗口扩大选项和时间戳选项以及服务质量等)
  3. 能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配

TCP连接的建立采用的是客户—服务器方式:

  • 主动发起连接建立的应用进程叫做客户 (client)
  • 被动等待连接建立的应用进程叫做服务器 (server)

2 TCP的连接建立

  • TCP 建立连接的过程叫做握手
  • 握手需要在客户和服务器之间交换三个 TCP 报文段。称之为三报文握手
  • 采用三报文握手主要是为了防止已失效的连接请求报文段突然又传送到了,因而产生错误

三次报文握手的过程:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意:大写的ACK和小写的ack代表的含义不同,大写ACK代表确认位,小写ack代表确认号,ack=x+1代表之前序号x报文已经正确收到了,并期待收到x+1报文,服务器B也选择了序号seq=y,这里的xy代表双方各自发送的序号的独立的

在这里插入图片描述
在这里插入图片描述

注意:当A收到B的确认后还会发送一次确认报文给B,即确认的确认,主要是为了防止已失效的连接请求报文段突然又传送到了,因而产生错误,考虑这样一种情况,比如说A的第一个连接报文由于在某个站点滞留,B收到之后会认为A又重新发了一次连接,这个时候B会发送确认报文同意建立新的连接,当A收到确认连接的报文时由于这个确认是对一个并不存在的连接请求,A不去理睬B的确认,B如果没有对确认的再次确认么就会误以为连接已经建立好了而等待A去发送数据,但A并没有数据要发送,双方就进入了一个误会的状态,所以第三次的握手对确认的再确认时非常必要的

在这里插入图片描述

3 TCP的连接释放

  • TCP 连接释放过程比较复杂,数据传输结束后,通信的双方都可释放连接
  • TCP 连接释放过程是四报文握手

四次报文握手的过程:
在这里插入图片描述

注意:上述操作实际上是A告诉B,A的数据已经发送完了,现在需要把发送方向这个连接释放掉

在这里插入图片描述

注意:B接收到了A的释放连接报文,会发出确认报文,ack=u+1表示已经收到了A发出的释放连接报文,而自己的序号seq=v,这里uv仍然是独立的,意味着B这个时刻不一定需要释放连接,因为B可能还有数据要发送,所以说TCP连接处于半关闭状态

在这里插入图片描述
在这里插入图片描述

注意seq=vseq=w中的vw是相互独立的,实际上是B在发送数据时,又消耗了一部分字节。在最后一次A到B的确认报文中,seq=u+1这里的u和第一轮B向A发送的确认报文中的ack=u+1u是一样的

在这里插入图片描述
在这里插入图片描述

注意:A 必须等待 2MSL 的时间(MSL即报文最长寿命时间)

  • 第一,为了保证 A 发送的最后一个 ACK 报文段能够到达 B
  • 第二,防止 “已失效的连接请求报文段”出现在本连接中,简单来说就是设一个长一点的等待时间,在这段时间内所有请求都消失在网络里,这样让新的请求来的时候不会产生误会
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值