TCP协议

TCP协议

一、主要特点:

1、TCP是面向连接的运输层协议,也就是说应用程序在使用TCP协议之前必须先建立TCP连接,在数据传输完毕后,必须释放已经建立的连接。在生活中,如打电话。
2、每一条TCP连接只能有两个端点,即,每一条TCP连接都是点对点的。在生活中,电话的两端。
3、TCP提供可靠的交付服务,即,通过TCP连接发送的数据具有无差错、不丢失,不重复,按序到达的特点。
4、TCP提供全双工通信。TCP允许通信双方的应用进程在任何时候都能发送数据。主要因为TCP连接的两端都设有发送缓存和接收缓存,用来存放双向通信的数据。在发送时,应用程序把数据传送给TCP缓存后,就可以做自己的事,而TCP在合适的时候把数据发送出去。在接收时,TCP把收到的数据放入缓存,上层的应用程序在合适的时候读取缓存中的数据。
5、面向字节流。虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用程序交下来的数据仅仅看成一连串无结构的字节流,TCP并不知道所传字节流的含义。TCP不保证接收方应用程序所接收到的数据块和发送方应用程序所发送的数据块具有大小对应关系,但接收方应用程序收到的字节流必须和发送方应用程序发出的字节流完全一样,当然,接收方的应用程序必须有能力识别收到的字节流,把它还原成有意义的应用层数据。

二、三次握手建立连接

有一个客户端A和服务器B
A主动打开连接,向服务器发送请求报文,处于监听状态的服务器B收到后,如同意建立连接,则向A发送确认,TCP客户进程A收到确认后,还要向服务器B发送确认。此时,TCP连接已经建立,A进入已建立连接状态,当B收到A的确认后,也进入已建立连接状态。(个人理解)

三、四次挥手释放连接

数据传输结束后,通信双方都有可能释放连接。现在A和B都处于已建立连接状态。A的应用进程先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接,此时A进入终止等待1状态,等待B的确认,B收到连接释放报文段后即发出确认,然后B进入了关闭等待状态。TCP服务器进程B这时会通知其应用进程,因此A到B这个方向的连接就释放了,这时的TCP连接处于半封闭状态,即,A已经没有数据要发送了,但B若发送数据,A仍要接收,也就是说B到A方向的连接未关闭,可能会持续一些时间。A收到B的确认后,进入终止等待2状态,等待B连接释放报文。若B已经没有要向A发送的数据,其应用进程就会通知TCP释放连接额,这时B就进入了最后确认状态,等待A的确认 ,A收到B的连接释放报文后,必须对此发出确认,然后进入时间等待状态。2MSL(最长报文段寿命)之后,A才进入关闭状态。RFC793建议设为2分钟(1MSL)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值