zoukankan      html  css  js  c++  java
  • tcp 建立连接三次握手

    众所周知,tcp是安全的,可靠的,但是为什么呢。要理解这一点,首先先了解tcp的建立连接的原理。

    三次握手


    1. 第一次握手:由客户端向服务器发送请求,SYN 表示请求连接,seq是序列号(随机选取)。
    2. 第二次握手:由服务器对数据包进行确认,因为已经收到了A发过来的请求序列号,所以确认ack=x+1,同时客户端告诉B自己的序列号也就是seq=y。
    3. 第三次握手:由客户端告诉服务器准备建立连接,A此条消息的序列号是x+1,所以seq=x+1,而ack=y+1是表示准备客户端准备接受服务器序列号为y+1的数据包

              到这一步数据就建立连接完成。

    1. seq是数据包本身的序列号
    2. SYN表示建立连接
    3. ACK是期望对方继续发送的那个包的系列号
    4. PSH表示有数据传输
    5. RST表示连接重置
    6. FIN表示关闭连接

      环冗余校验(CRC):首先把检验和字段置为0。然后,对首部中每个16bit 进行二进制反码求和(整个首部看成是由一串16bit的字组成),结果存在检验和字段中。当收到一份IP数据报后,同样对首部中每个16bit进行二进制反码的 求和 , 那么如果说在传输过程中出现任何错误,接收方在计算发送方的校验和时所得到的结果为1,同上,如果长度超出,那就是出现错误了,同样为1 。

          所以,说tcp安全是有这么几次的累加和校验,和循环冗余校验(CRC),可靠表现在ACK确认机制。


  • 相关阅读:
    C 库函数 ------ qsort()
    递归之美
    C函数库 ------ ctype.h
    scanf 多行输入判断结束
    POSIX库、glibc库、pthreads库、libc库、newlib、uClibc
    Docker 私有仓库搭建
    在daemon.json中配置主机后无法启动docker
    MySQL配置HeartBeat实现心跳监控和浮动IP
    Heartbeat基础知识-运维小结
    (二) Docker中启动镜像
  • 原文地址:https://www.cnblogs.com/lwqstyle/p/8352763.html
Copyright © 2011-2022 走看看