NETWORK [3] TCP 协议

TCP协议概述

        TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它由互联网工程任务组(IETF)的RFC 793定义,旨在提供在不可靠的互联网络上的可靠端到端字节流服务。TCP协议通过序列号、确认应答、重传机制、窗口控制等技术确保数据的正确、有序和可靠传输。此外,TCP还包括流量控制和拥塞控制机制,以适应网络条件变化,避免网络拥堵。

TCP三次握手过程

        TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在建立TCP连接之前,需要通过三次握手过程来确保双方能够同步通信参数,并建立起一个可靠的连接。以下是TCP三次握手的具体步骤:

  1. 第一次握手

    • 客户端发送一个TCP报文,该报文中的SYN(同步)标志位被设置为1,表示客户端请求建立连接。同时,客户端生成一个初始的序列号(client_isn),并将其放入TCP报文的序列号(Sequence Number)字段中。

    • 发送完毕后,客户端进入SYN_SENT状态,等待服务器的响应。

  2. 第二次握手

    • 服务器收到客户端的SYN报文后,回应一个确认报文,其中SYN标志位和ACK(确认)标志位都被设置为1。服务器也生成一个初始的序列号(server_isn),并将client_isn加1作为ACK号,放入TCP报文的确认号(Acknowledgment Number)字段中。

    • 服务器发送完毕后,进入SYN_RCVD状态,等待客户端的最终确认。

  3. 第三次握手

    • 客户端收到服务器的SYN+ACK报文后,检查ACK号是否为自己先前发送的序列号加1,如果正确,客户端将ACK标志位设置为1,并将server_isn加1作为ACK号,发送给服务器。

    • 客户端发送完毕后,进入ESTABLISHED状态,准备开始数据传输。

    • 服务器收到客户端的ACK报文后,同样设置自己的状态为ESTABLISHED,完成三次握手过程,连接正式建立。

        在整个三次握手过程中,双方不仅建立了连接,还同步了初始的序列号和确认号,为后续的可靠数据传输奠定了基础。

TCP协议本身确实具有心跳机制,称为SO_KEEPALIVE。这个机制允许TCP连接在没有数据交换的情况下定期发送心跳报文(ACK包),以检测对方是否仍然在线。如果在预定的时间间隔内没有收到回应,TCP会认为连接已经断开,并采取相应的措施。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值