首页 > 其他分享 >tcp三次握手

tcp三次握手

时间:2024-03-29 15:45:17浏览次数:21  
标签:状态 ACK 握手 SYN tcp 发送 TCP 三次 服务端

tcp是可靠的传输协议。为什么这么说?
首先我们得了解一下他的报文格式

  1. 源端口号和目的端口号,数据根据这两个端口号决定发给哪个应用。
    2.序号,只是让包有序一点而已。
    3.确认序列呢。顾名思义,就是确认对方有没有收到。如果对方没收到,要重新发送,直到送达。解决丢包问题的。
    4.还有一些状态位。SYN就是发起一个连接的,ack就是回复,RST是重新连接,FIN是结束连接。这些带有状态位的包的发送,会引起双方的状态变更。
    5.窗口大小,就是缓存大小。标识自己的处理能力。不要发的太快,吃不完;也别发的太慢,不够吃。TCP要做流量控制的嘛。
    6.当然,除了流量控制,TCP也要做拥塞控制,他的拥塞控制也只能控制自己发送的速度。

okok。前面铺垫了那么多,接下来终于来到了我们今天的重点了。
TCP三次握手

在HTTP传输数据之前,通常要进行TCP的三次握手。

  • 一开始,客户端和服务端都处于close状态。服务端打开某个端口的监听器,进入LISTEN状态。
  • 客户端主动发送SYN,之后处于SYN_SENT状态
  • 服务端收到SYN后,返回SYN,并且ACK客户端的SYN,之后处于SYN_RCVD状态
  • 客户端收到SYN和ACK后,发送对ACK的SYN,之后处于established状态。因为它一发一送成功了。
  • 服务端SYN的ACK后,处于established状态。因为它一发一送也成功了。
    总之,TCP三次握手的目的是保证双方都有发送和接受的能力。

标签:状态,ACK,握手,SYN,tcp,发送,TCP,三次,服务端
From: https://www.cnblogs.com/shaguomizhou/p/18103910

相关文章

  • CAPL如何使用socket套接字实现TCP通信(数据传输)
    书接上回《CAPL如何使用socket套接字实现TCP通信(建立连接)》,当TCP建立连接后,就可以传输数据了。不管是client还是server,都是使用相同的函数传输应用层数据。tcpSend(clientSocket,"12345",5);但这里有一点值得注意:server端传输数据的socket是serverDataSocket,而不是s......
  • TCP三次握手、四次挥手出现意外情况时,如何保证稳定可靠?
    TCP作为一个靠谱的协议,在传输数据的前后,需要在双端之间建立连接,并在双端各自维护连接的状态。TCP并没有什么特别之处,在面对多变的网络情况,也只能通过不断的重传和各种算法来保证可靠性。建立连接前,TCP会通过三次握手来保证双端状态正确,然后就可以正常传输数据了。当数据传......
  • TCP/IP:互联网通信的核心协议
    引言在当今数字化时代,互联网已经成为人类社会不可或缺的一部分,而TCP/IP协议则是支撑互联网运作的关键。无论是发送电子邮件、浏览网页,还是进行视频通话,TCP/IP协议都在背后默默地发挥着作用。本文将引领读者深入了解TCP/IP协议的核心概念,从其起源、结构到应用,全方位解析这一......
  • 用docker创建nginx反向代理tcp流量
    有这样一个需求,需要反向代理一个tcp连接,我打算用nginx来做,比较简单的实现掉./conf/nginx.conf配置文件usernginx;worker_processesauto;error_log/var/log/nginx/error.lognotice;pid/var/run/nginx.pid;events{worker_connections1024;}......
  • Linux下TCP/IP编程--TCP实战
    之前尝试过windows下的简单TCP客户端服务器编写,这次尝试下一下Linux环境下的TCP客户端代码#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>structC......
  • 在Linux中,如何追踪TCP连接和网络数据包,如使用tcpdump或Wireshark?
    在Linux环境中,追踪TCP连接和网络数据包主要通过使用命令行工具tcpdump和图形化网络分析软件Wireshark来实现。以下是详细的操作步骤:1.使用tcpdumptcpdump是一个强大的命令行网络抓包工具,用于实时捕获和分析网络流量。以下是如何使用tcpdump追踪TCP连接和数据包:1.基本用法......
  • 面试必问-TCP三次握手
    三次握手过程1.客户端处于close状态,向服务器发送建立连接的请求SYN和初始序列号2.服务器处于LISTEN状态,收到客户端发来的请求后回复SYN,服务器的初始序列号,ACK和确认应答序号为客户端初始序列号+1,服务器变为SYN_REVD状态3.客户端收到服务器后,恢复ACK和确认应答号为服务器初......
  • 微软应用商店第三次提交失败
    第二修改提交,继续失败。失败理由如下Theproductcrasheswhenselecting日语五十音图表,练习模式or挑战模式.TheissuewasobservedonmultipledevicesrunningWindowsbuild22621.1105ObservedOn:DellLatitude5502, MicrosoftsurfacelaptopGoTestedOn:De......
  • 基于STM32的ModBus实现(二)移植FreeMODBUS TCP
    一、ModBusTCPModbusTCP是一种基于TCP/IP协议的Modbus通信协议的变种。它允许Modbus协议在以太网上进行通信,提供了一种简单而有效的方式来连接不同类型的设备,如传感器、执行器、PLC等。ModbusTCP使用标准的TCP/IP协议栈,因此可以在现有的以太网基础设施上运行,而无需额外的硬......
  • HCIA——三、TCP四次挥手及其wireshark抓包
    ZYHCIA所有内容:TCPTCP四次挥手全过程第一次挥手第二次挥手第三次挥手第四次挥手补充wireshark抓包工具1、搭建拓扑图2、手配ip地址与子网掩码3、服务器启动HTTP服务4、客户端访问HTTP服务器全过程5、TCP数据包数据包信息第一行以及它所包含的信息:数据包信息第二行以及它......