python中的TCP协议

TCP协议
传输控制协议,是一种面向连接的,可靠的,基于字节流的传输通信协议,由IETF的RFC 793定义。
传输数据需要经过创建连接,数据传送,终止连接三步骤。TCP协议要建立相关的链接,才能发送数据。
这一过程可以通俗的说为“三次握手,四次挥手”
TCP三次握手:发生在创建连接的时候,形象点说:(第一次)客户端问服务端你准备好了吗,(第二次)服务端告诉客户端装备好了,并且问客户端你准备好了吗,(第三次)客户端说我准备好了
这时会发生如下:
在这里插入图片描述
TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,
等待对方回答SYN+ACK[1],并最终对对方的 SYN 执行 ACK 确认。这种建立连接的方法可以
防止产生错误的连接。
TCP四次挥手:发生在终止连接的时候,通俗点说:第一次,客户端告诉服务端我不会给你发数据了,第二次服务端告诉客户端我收到你发生的信息了,第三次服务端给客户端发生数据说我也不给你发了,第四次客户端给服务端说我知道了,具体如下:
在这里插入图片描述
建立一个连接需要三次握手,而终止一个连接要经过四次挥手。
(1) 某个应用进程首先调用close,称该端执行“主动关闭”(active close)。该端的TCP
于是发送一个FIN分节,表示数据发送完毕。
(2) 接收到这个FIN的对端执行 “被动关闭”(passive close),这个FIN由TCP确认。
注意:FIN的接收也作为一个文件结束符(end-of-file)传递给接收端应用进程,放在已排
队等候该应用进程接收的任何其他数据之后,因为,FIN的接收意味着接收端应用进程在相
应连接上再无额外数据可接收。
(3) 一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字。这导致
它的TCP也发送一个FIN。
(4) 接收这个最终FIN的原发送端TCP(即执行主动关闭的那一端)确认这个FIN。
TCP特点
1.面向连接
双方必须先建立连接才能进行数据的传输,并且双方都必须为该链接分配必要的系统内核资源,以管理和连接上的传输,数据传送可以 通过一个连接进行,完成后双方必须断开此连接进一步释放系统,这种连接是一对一的。

2.可靠传输
TCP采用发送应答机制:TCP发送的每个信息必须得到对方应答才能认为信息传送成功
超时从传:发送端发出信息后自己启动定时器,如果在定时时间内没有 收到应答就从新发送,基本上防止了包的丢失,如果发送端在对方接受信息成功后未响应确认,那么就会进行重传。
错误效验:TCP用一个效验和函数用来检验数据是否有误,发送和接受时都要计算效验。
流量控制和 阻塞管理:假如10G的信息传给5G的用户,这样不会 全部传只传一部分,提高稳定性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值