TCP三次握手详解

TCP三次握手是建立可靠TCP连接的关键步骤,包括客户端发送SYN请求,服务器回复SYN+ACK,以及客户端再次确认的过程。握手确保连接的可靠性,防止旧连接请求的误操作。同时,半连接队列和全连接队列的概念被介绍,以及SYN攻击的防范措施,如调整系统参数限制并发SYN连接数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TCP三次握手

1.TCP特性
  1. 说明:

    1. TCP提供一种面向连接的、可靠的字节流服务
    2. 在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP
    3. TCP使用校验和,确认和重传机制来保证可靠传输
    4. TCP给数据分节(给每一个传送的数据字节都编号)进行排序,并使用累积确认保证数据的顺序不变和非重复
    5. TCP使用滑动窗口机制来实现流量控制,通过动态改变窗口的大小进行拥塞控制
  2. 注意:

    TCP 并不能保证数据一定会被对方接收到,因为这是不可能的。TCP 能够做到的是,如果有可能,就把数据递送到接收方,否则就(通过放弃重传并且中断连接)通知用户。因此准确说 TCP 也不是 100% 可靠的协议,它所能提供的是数据的可靠递送或故障的可靠通知。

2.TCP首部
  1. 说明:

    1. TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的通信协议,数据在传输前要建立连接,传输完毕后还要断开连接。
    2. 客户端在收发数据前要使用 connect() 函数和服务器建立连接。建立连接的目的是保证IP地址、端口、物理链路等正确无误,为数据的传输开辟通道。
    3. TCP建立连接时要传输三个数据包,俗称三次握手(Three-way Handshaking)。

    TCP/IP

    • 解释:

      1. 序号:seq(Sequence)序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。
      2. 确认序号:ack(Acknowledge)序号,占32位,只有ACK标志位为1时,确认序号字段才有效,ack=seq+1。
      3. 标志位:每个标志位占用1Bit,共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下:

        1. URG:紧急指针(urgent pointer)有效。
        2. ACK(Acknowledge):确认序号有效。
        3. PSH(Push):接收方应该尽快将这个报文交给应用层。
        4. RST(Reset):重置连接。
        5. SYN(Synchronous):发起一个新连接。
        6. FIN(Finish):释放一个连接。
      4. 需要注意的是:

        1. 不要将确认序号 ack(表示确认信息)与标志位中的 ACK(为1表示确认有效)搞混了。
        2. 确认方 ack等于发起方 seq+1,两端配对。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值