zoukankan      html  css  js  c++  java
  • TCP/IP协议三次握手、四次断开

    1、tcp报文格式

      

      1行代表一个字节;

      第一行:代表源端口和目的端口,分别占16位;

      第二行:32位序列号:表示客户端向服务端发送的报文的序号是多少,这个序号是计算机随机生成的一个代表该报文的唯一标示符;表示为seq;

      第三行:32位确认序号,表示为ack,对上一条发送的信息的消息的一个确认;

      第四行:该行中的ACK表示确认标识位,大写表示,该ACK只有1位,只能表示0或1;

          SYN表示发起一个新的连接,如果是1,表示连接是新发起的;

          FIN表示结束一个连接,如果是1表示结束连接;

    2、TCP三次握手

      

      TCP/IP协议是传输层面向连接的一个安全可靠的协议,三次握手的机制是为了保证能建立一个安全可靠的连接,第一次握手是由客户端发起,客户端会向服务端发起一个报文,报文中SYN是置1的,当服务端收到这个报文后,就知道客户端要向我发起一个新的连接,于是服务端就向客户端发送一个确认消息包,该消息包ACK置1;到目前为止,客户端能确认发送的消息服务端能收到,但是无法确认服务端发送的消息客户端是否收到;所以还需要第三次client发送一个ACK为1的确认收到消息;

    3、四次断开

      

      客户端发起断开消息,带着FIN、seq消息;服务端收到了客户端断开的消息后,服务端确认客户端已经准备好断开的动作了,但是这时候不能确保服务端是否还有消息要向客户端发送;当服务端也将消息发送完成了,这时候服务端也会向客户端发送断开连接的消息;当客户端收到服务端断开连接的消息后,同样也需要回复服务端,消息收到,确认断开;

  • 相关阅读:
    POJ 2996 Help Me with the Game (模拟)
    PCL系列——怎样逐渐地配准一对点云
    sublime text3同时编辑多行
    博客搬家
    将博客搬至CSDN
    centos7用xshell可以连接, xftp连接失败!(墙裂推荐)
    重启ssh服务出现Redirecting to /bin/systemctl restart sshd.service
    重装wordpress
    ubuntu 16.04 启用root用户方法
    Ubuntu创建新用户并增加管理员权限(授权有问题)
  • 原文地址:https://www.cnblogs.com/zhangzhide/p/13200886.html
Copyright © 2011-2022 走看看