zoukankan      html  css  js  c++  java
  • TCP协议三次握手过程分析(改)

    TCP(Transmission Control Protocol) 传输控制协议

    TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:

    位码即tcp标志位,有6种标示:SYN(synchronous---同步的---建立联机) ACK(acknowledgement---确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)

    seq(Sequence number---随机序号) ack(Acknowledge number---确认序号)

      在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。

    • 第一次握手:建立连接时,客户端A发送SYN包(syn=A,随机产生的seq=x)到服务器B,并进入SYN_SEND状态,等待服务器确认;
    • 第二次握手:服务器B收到SYN包(由syn=A,知道是客户A要求建立连接),然后发送ACK包(ack=A,ack number=x+1,),同时自己也发送一个SYN包(syn=B,随机产生的seq=y),即SYN+ACK包,此时服务器B进入SYN_RECV状态;
    • 第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包 ACK包(ack=B,ack number=y+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据. 

    实例: 

    IP 192.168.1.116.3337 > 192.168.1.123.7788: SYN  3626544836
    IP 192.168.1.123.7788 > 192.168.1.116.3337: ACK  3626544837 + SYN 1739326486
    IP 192.168.1.116.3337 > 192.168.1.123.7788: ACK  1739326487 

    第一次握手:192.168.1.116发送位码syn=A,随机产生seq number=3626544836的数据包到192.168.1.123,192.168.1.123由SYN=A知道192.168.1.116要求建立联机; 

    第二次握手:192.168.1.123收到请求后要确认联机信息,向192.168.1.116发送ACK包(ack number=3626544837,ack=A),+SYN包(syn=B,随机产生seq=1739326486)包; 

    第三次握手:192.168.1.116收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为A。若正确,192.168.1.116会再发送ACK包(acknumber=1739326487,ack=B),192.168.1.123收到后确认seq=seq+1,ack=B则连接建立成功。 

  • 相关阅读:
    UWP 2018 新版 NavigationView 尝鲜
    UWP 五星评价(不跳转到龟速商店)
    UWP 查找模板中的控件
    Win10版本号区分
    基于Windows 机器学习(Machine Learning)的图像分类(Image classification)实现
    海瑞菌的web前端学习直播间
    【javascript】对原型对象、原型链的理解
    公众号【海瑞菌】的近期总结
    我的2018年【年末总结】--2019年初计划
    【js操作url参数】获取指定url参数值、取指定url参数并转为json对象
  • 原文地址:https://www.cnblogs.com/skyl/p/3798757.html
Copyright © 2011-2022 走看看