TCP长短连接

TCP长短连接

 

1、什么是TCP长连接

从应用层来看,就是clientserver建立一次连接,发送多个数据包,直到不再与server通信时关闭连接。connect----send----recv----send----recv----... ...----close

从传输层来看,使用的是keep alive timer实现(TCP对每个连接建立7个定时器:connection establishmentretransmissiondelayed ACKpersistkeep aliveFIN_WAIT_2time_wait),keep alive定时器会在应用层没有数据发送时每隔2小时发送一个tcp包,序列号是当前segment sequence-1,包内容为空,然后接收ACK

目的:

1、防止对方掉电或者crash后能释放连接;

2、通过NAT代理或者防火墙的时候,由于NAT和防火墙会因为内存大小的原因而丢弃不活跃的连接,这就导致连接丢失,而keep alive定时器到期后发送的tcp包使连接在NAT或者防火墙上排到连接队列的前面,避免被NAT或者防火墙释放连接。

2、什么是TCP短连接

从应用层看,就是client发哦server建立一次连接,通信一次,断开连接。

connect----send----recv----close   connect----send----recv----close

如果需要实现不释放连接而发送多次数据,需要在应用层实现心跳发送。

3、优缺点:

长连接:一旦建立连接,以后发送数据就避免了三次握手连接和四次握手关闭的开销,但是需要额外发送keep alive定时器到期发送的tcp包;

短连接:每次发送数据都需要先三次握手建立连接,发送数据后需要四次握手关闭连接,每次发送数据都需要额外开销,无维护连接的额外开销。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值