IP电话机、视频可视电话通信产品及组网方案

IP电话的TCP连接和释放过程

时间:2019-09-10 15:25 作者:admin 分享到:
        TCP连接和释放过程如下:
        (1)连接建立
        TCP连接建立的三次握手过程如下图所示。A、B分别为客户和服务器,A发出 TCP段,要求建立连接。其中.目的端口号为服务器的保留端口号,源端口号是A端该连 接分配的自由端口号,SYN = 1,表示序列字段包含A端为该连接分配的初始序号,设初 始序号为X,ACK=0,表示确认号无效。

                                                                                                                                                图      TCP连接建立的三次握手过程
       该段到达B后.B的TCP实体査验是否有进程在该段指明的目的端口守听,如有就 将该段送交守听进程,该进程可决定接受还是拒绝该连接请求。如接受,则回送确认段, 其中SYN=1表示序列号段包含B端为该连接分配的初始序号,设初始序号=Y,ACK = 1,表示确认号有效,并置确认号= X+1。A收到此段后,也返回一个确认段,其中SYN =0,置序号= X+1,ACK = 1,确认号=Y+1。至此,连接建立成功,A、B双方已正确交 换并确认了发送数据的初始序列号。
       另外需要注意-点,连接请求中的初始序号不能为0。其原因是当K机崩溃后重新 恢复时,如果以同样的初始序号重新进行连接建、>.•对方就会认为原有的连接依然存在, 而不理会此次连接请求。一般采用基于时钟的方法随机选择初始序号。
       下面简单介绍一个建立TCP连接的测试实例。
       ① 客户机(源IP地址= 205. 169. 85. 68)向服务器发送的TCP连接请求
       下面是捕获到的客户机(源IP地址= 205. 169. 85. 68)向服务器发送的TCP连接请 求的IP数据报的数据和解码结果,黑体字部分为TCP段。IP电话数据报和TCP段的结构
        45 00 00 2c ab 47 40 00 20 06 68 f0 cd a9 55 44 cd a9 55 fd 05 e3 00 50 01 fl 54 4d 00 00 00 00 60 02 20 00 d5 20 00 00 02 04 05 b4
       IP数据报报头内容如下:
       45协议版本= Ipv4 IP数据报报头长度=5
       〇〇服务类型〇〇2c总长度=44
        ab 47标识符40 00标志和分片偏移量
        20寿命(TTL) = 32 06协议=06(TCP) 68 f0首部校验和
       cda9 55 44 源 IP 地址= 205. 169. 85. 68
       cd a9  55   44目的 IP 地址= 205.169.85.253
       TCP段头部内容如下:
       05e3 源端口 = 1507 00 50 目的端口=80([1打1>)
       1 fl 54 4d初始序号 00 00 00 00 确认号
       60 头部长度=6 〇2 标志码= 00000010(SYN=1) 2〇00 窗口
       d5 20校验和00 00紧急指针
       2 04 05 b4 选项
       由以上结果可见,客户机(源IP地址= 205. 169. 85. 68)向服务器发送TCP连接请 求,TCP段头部中的SYN置为1,设置初始序号为01 fl 54 4d。
       ② 服务器(IP地址= 205.169. 85. 253)发送的对TCP连接的确认
      下面是捕获到的服务器(IP地址= 205. 169. 85. 253)向客户机发送的TCP连接确认 的IP数据报数据和解码结果,黑体字部分为TCP段。
      45 0000 2c 27 e5 00 00 40 06 0c 53 cd a9 55 fd cd a955 44 00 50 05 e3 fO 67 b2 f9 01 n 54 4e 60 12 7f eO dl cd 00 00 02 04 05 b4 cda9 55 fd 源 IP 地址= 205.169.85.253
      cd a9 55 44 目的 IP 地址=205. 169. 85.68
      0 50 源端口=80(111^>)05 63目的端口 = 1507 fO 67 b2 f9发送序号01 fl 54 4e确认序号
      60头部长度 = 6 12标志码 = 00010010(ACK=lSYN=l)7fe0窗口 dl cd校验和00 00紧急指针 02 04 05 b4 选项
     从以上结果可见,服务器(IP地址= 205. 169. 85. 253)向客户机发送TCP连接确认, 在TCP头部置ACK=1,确认序号=01 fl 54 4e(注意,为上一消息中的初始序号01 fl54 4d+l),置SYN = 1,发送序号初始值=fO 67 b2 f9。
      ③ 客户机(源IP地址= 205. 169. 85. 68)发送的对服务器TCP连接请求的确认 下面是捕获到的客户机(源IP地址二205. 169. 85. 68)向服务器发送的对服务器 TCP连接请求的确认的IP数据报测试数据和解码结果,黑体字部分为TCP段的内容。
      45 00 00 28 ad 47 40 00 20 06 66 f4 cd a9 55 44 cd a9 55 fd 05 e3 00 50 01 fl 54 4e fO 67 b2 fa 50 1022 38 47 33 00 00 IP数据报头部部分内容解码如下: cda9 55 44 源 IP 地址= 205. 169. 85. 68 cd a955 fd 目的 IP 地址=205. 169. 85. 253 TCP段头部内容解码如下:
      05e3 源端口 = 1507 00 50 目的端口 = 80(HTTP)
      1 fl 54 4e发送序号 fO 67 b2 fa确认号
       50 头部长度=5 10 标志码=00010000(ACK = 1) 22 38 窗口
       47 33校验和00 00紧急指针
       从以上结果可见,客户机(源IP地址= 205.169. 85. 68)发送对服务器TCP连接请求 的确认,在TCP头部置ACK=1,确认号=fO 67 b2 fa(等于上一条消息的发送序号fO 67 b2 f9 + l)
       经过以上3条消息,客户机和服务器建立了 TCP连接,向对方发送了初始序号并完 成了对对方初始序号的确认。
       (2)连接释放
       连接释放也采用£次握手过程,如图2-4-4所示。连接释放可1丨I任方发起,释放过 程将连接视作两条独立的单工连接。如A方发出释放请求(FIN = 1),并收到B方对该 释放段的确认以后.则A—B的连接关闭,即A—B停止发送数据,但B—A仍可发送数 据。要关闭B—A的连接需反向执行同样的操作。在下图屮收到A发来的释放 请求后.要经过一定时间才能发出至A的释放请求,因为B需通知应用进程并获得关闭 连接的命令,其间可能涉及人机交互操作。为了防止超时重传,B应立即向A返回释放 确认,以先行关闭A—B的连接。
        如果发出释放请求的一方在2倍分组最大生存时间内未收到确认,则自行释放该连 接。其后,另一端将检测到对方进程已不在通信状态,于是也将超时释放连接。
版权所有:IP电话:http://www.g3voip.com 转载请注明出处

热销IP电话产品hot products