TCP的三次握手和四次握手

TCP 三次握手四次挥手 首先介绍一些专业术语的意思: Source Port:源端口,16位。 Destination Port:目的端口,16位。 Acknowledgment Number:确认序列号,32位。 Sequence Number:发送数据包中的第一个字节的序列号,32位。 ACK:表示Acknowledgment Number字段有意义 SYN:表示SYN报文(在建立TCP连接的时候使用) 阅读详情

 

 源端口、目标端口: 计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机烤口某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通信。源端口、目标端口是用16位表示的,可推算计算机的端口个数”2^16位,即 65536 (0-65536)


序列号:表示本报文段所发送数据的第一个字节的编号。在TCP连接中所传送的字节流的每一个字节都会按顺序编号。由于序列号由32位表示,所以每2^32个字节,就会出现序列号回绕,再次从0 开始 无限循环


确认号: (ack)表示接收方期望收到发送方下一个报文段的第一个字节教据的编号。也就是告诉发送方: 我希望你(指发送方)下次发送的数据的第一个字节数据的编号为此确认号: 传输是否有问题?


首郎长度:表示TCP报文段的首部长度,共4位,由于TCP首部包含一个长度可变的选项部分,需要指定这个TCP报文段到底有多长,它指出 CP 报文段的数据起始处距离 TCP 报文段的起处有多远。该字段的单位是32位(即4个字节为计算单位) ,4位二进制最大示15,所以数据偏移也就是TCP首部最大60字节


控制位


URG(紧急位) : 表示本报文段中发送的数据是否包含紧数据。后面的紧急指计字段(urgent pointer) 只有当URG=1时才有效ACK(确认位):表示是否前面确认是字段是否有效。只有当ACKe1时,前面的确认是字段才有效、TCP规定,连接建立后,ACK必须为1.带ACK标志的TCP报文段称为确认报文段

ACK(确认位):表示是否前面确认号字段是否有效,只有当ACK=1时,前面的确认号字段才有效。TCP规定,连接建立后,ACK须为1,带ACK标志的TCP报文段称为确认报文段

 -PSH(急切位):提示接收端应用程序应该立即从TCP接收缓中区中读走数据,为接收后续数据腾出空间,如果为1,则表示对方应当立即把数据提交给上层应用,而不是缓存起来,如果应用程序不将接收到的数据读走,就会一直停留在TCP接收缓冲区中

RST(重置位):如果收到一个RST=1的报文,说明与主机的连接出现了严重错误(如主机崩溃),必须释放连接,然后再重新建立连接。或者说明上次发送给主机的数据有问题,主机拒绝响应,带RST标志的TCP报文段称为复位报文段

 SYN(同步位):在建立连接时使用,用来同步序号。当SYN=1,ACK0时,表示这是一个请求建立连接的报文段,当SYN=1,ACK=1时,表示对方同意建立连接。SYN=1,说明这是一个请求建立连接或同意建立连接的报文。只有在前两次握手中SYN才置为1,带SYN标志的TCP报文段称为同步报文段

FIN(断开位):表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果HN=1,即告诉对方:“我的数据已经发送完毕,你可以释放连接了”带FIN标志的TCP报文段称为结束报文段

 

三次握手原理:         重点

①客户端向服务器发送SYN同步请求,请求与服务器建立连接

②服务器收到此SYN同步请求后,会针对客户端的SYN同步请求进行ACK响应的同时也会发送一个SYN同步请求,

③当客户端收到服务器发过来的SYN同步请求时,会给予一个ACK响应。


为什么要三次握手?
因为TCP是可靠的传输层协议,它在传输数据前,会建立双向数据通信通道,当保证双向数据传输的通道没有问题时,才会发送数据,起到保护数据的作用。


四次断开原理:
客户端向服务器发送FIN断开请求,服务器接收到此请求后,回复一个ACK。 服务器向客户机发送FIN断开请求,客户机收到此请求后,回复一个ACK。


三次握手握三次,为什么断开要断四次?
数据传输方向是双向的,-一个方向的数据通道关闭需要一次请求和一 -次确认, 而我们有两个数据方向,因此需要断四次。三次握手是因为第二次握手时既有应答又有连接请求,二个动作在一起,因此少了1次握手。


TCP半关闭状态是什么情况?
客户机向服务器发送了FIN请求,服务器也给予了ACK响应。但是,服务器向客户机还有数据要传输,因此服务器并没有向客户机立即发送FIN请求。

stm32控制舵机_使用URT-1控制飞特舵机上手教程(SM40BL舵机为例) 使用URT-1控制飞特舵机上手教程(SM40BL舵机为例):1,参阅URT-1使用说明.pdf2, 材料清单:① URT-1驱动板② 连接驱动板与电脑的MINI USB 连接线③ 给舵机供电的电源④ 舵机与舵机连接线⑤ 杜邦线(可选)3,将URT-1驱动板与电脑连接4,安装驱动,参阅文件CH340驱动,检查设备管理器串口号。5,舵机连接URT-1驱动板,驱动板接电源,参考下图:6,打开FD软件进行... 阅读详情

相关推荐

代谢组数据分析(十九):随机森林构建代谢组预后模型

建立胃癌(GC)预后模型时,从队列3中的181名患者中,使用右删失结果数据进行了随机分层抽样,分为训练数据集(n = 121)测试数据集(n = 60)。训练了一个包含1000棵树的随机生存森林(RSF)模型,根据它们基于排列的特征重要性来选择突出的特征。通过再次训练随机生存模型,并选取28种代谢物,建立了显示出色预测能力(AUROC = 0.832,95% CI:0.697-0.951)的最佳模型,用于预测测试数据集中GC患者的生存结果。

专注生信领域 1629

TCP三次握手四次挥手过程

TCP三次四次挥手过程1、TCP报文段首部2、TCP三次握手过程及常见问题2.1 TCP三次握手过程2.2 常见问题2、TCP四次挥手过程及问题2.1 TCP四次挥手过程2.2 常见问题 1、TCP报文段首部          要理解TCP三次握手四次挥手的过程,首先需要了解TCP报文段的某些首部的含义...

weixin_39754631的博客 1573

基于16QAM调制软解调+LDPC编译码通信链路matlab误码率仿真【包括程序,中文注释,程序操作视频】

1.版本:matlab2022a。2.包含:程序,中文注释,程序操作视频。3.领域:16QAM调制+软解调+LDPC4.仿真效果:仿真效果可以参考博客同名文章《基于16QAM调制软解调+LDPC编译码通信链路matlab误码率仿真》5.内容:基于16QAM调制软解调+LDPC编译码通信链路matlab误码率仿真。生成随机的二进制信息序列,对信息序列进行LDPC编码,将编码后的码字序列进行16QAM调制,得到调制信号,将调制信号通过AWGN信道,添加高斯白噪声。对接收到的信号进行16QAM软解调,使用BP算法进行译码,比较译码后的信息序列与原始信息序列,统计误码比特数,计算误码率。其中,软解调是相对于硬解调而言的一种解调方式。硬解调是将接收到的信号直接判决为最接近的星座点,然后输出对应的比特序列。而软解调则是不仅给出判决结果,还给出每个比特为 “0” 或 “1” 的概率信息,即软信息。6.注意事项:注意MATLAB左侧当前文件夹路径,必须是程序所在文件夹位置,具体可以参考视频录。

TCP协议——三次握手四次挥手

理解tcp三次握手四次挥手及相关问题

Dirty_artist的博客 1449

TCP三次握手四次挥手

一、三次握手 三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端服务器总共发送3个包 主要作用就是为了确认双方的接收能力发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备 过程如下: 第一次握手:客户端给服务端发一个 SYN 报文,并指明客户端的初始化序列号 ISN©,此时客户端处于 SYN_SENT 状态 第二次握手服务器收到客户端的 SYN 报文之后,会以自己的 SYN 报文作为应答,为了确认客户端的 SYN,将客户端的 ISN+1作为.

Silvia 9549

tcp三次握手四次挥手的过程

TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP 协议提供可靠的连接服务,连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号确认号 并交换 TCP窗口大小信息。 1.第一次握手:建立连接。客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;然后,客户端进入SYN_SEND状态,等待服务器的确认; 2.第二次握手服务器收到SYN报文段。服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确.

weixin_51930116的博客 4908

tcp三次握手四次挥手

liTCP 提供面向有连接的通信传输,面向有连接是指在传送数据之前必须先建立连接,数据传送完成后要释放连接。 无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。 同时由于TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议,TCP是全双工模式,所以需要四次挥手关闭连接。

chinusyan的专栏 3371

TCP三次握手四次挥手

客户端先向服务端发送 SYN 包请求建立连接,然后服务端向客户端发送 SYN+ACK 包同意连接,客户端收到 SYN+ACK 包后发送 ACK 包,服务端收到这个 ACK包 后,连接建立。因为这个过程中互相发送了三包数据,所以称之为三次握手。下面假设主动关闭方为客户端,被动关闭方为服务端。发送一个 FIN 包,表示它已经完成了数据发送,并希望关闭连接。发送一个 ACK 包来确认收到的 FIN 包。发送一个 FIN 包,表示它也准备好关闭连接。发送一个 ACK 包来确认收到的 FIN 包。

naozibuok的博客 1266

tcp三次握手四次挥手

1.第一次握手:第一次握手就是客户端发送一条tcp数据包,数据包里面将SYN标志位置为1,选择一个初始序列号J。2.第二次握手:当服务端接收到客户端发来的这条tcp数据包以后,会将SYN标志位置为1,ACK标志位也置为1,表示确认接收到你刚刚发来的这条信息并且也你建立连接,然后将确认应答号置为J+1,然后也选择一个初始序列号K。

weixin_74994990的博客 1601

TCP三次握手四次断开

在仅进行两次握手的情况下,假设客户端发送的连接请求因网络延迟等原因长时间未到达服务器,当客户端超时重传请求并成功建立连接、完成数据传输并释放连接后,之前延迟的那个请求才到达服务器三次握手不仅能够确保连接的可靠性,还能够同步双方的序列号,避免历史连接的初始化,以及交换TCP窗口大小信息,为后续的数据传输做好准备。这个包的SYN标志位被置为1,表示客户端请求建立连接。综上所述,三次握手能够有效地避免连接建立过程中的错误资源浪费,确保连接的可靠性有效性,所以 TCP 建立连接需要三次而不是两次握手

cxy6_9的博客 1464

TCP三次握手四次挥手的理解

三次握手原理: 第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端...

mxlFuture的博客 5万+

TCP三次握手四次挥手详解

在建立TCP的过程中,会用到三次握手四次挥手,三次握手四次挥手到底是什么?在哪里用到? 简介 确切的说在Java的socket编程中,是不用关心三次握手四次挥手的,这是TCP/IP分层中的传输层需要完成的事情,但是作为原理是有必要了解的 那么在TCP协议编程的过程中,哪一步用到了三次握手四次挥手?通过一张图来看一下: 这是一个利用TCP构建的一个C/S模型,这里只做简略介绍(Java构建C...

博客 1545

TCP三次握手四次挥手,以及为什么要三次握手,而不是二次?

对话模型诠释三次,两次,四次握手场景 三次握手: “喂,你听得到吗?” “我听得到呀,你听得到我吗?” “我能听到你,今天balabala……” 两次握手: “喂,你听得到吗?” “我听得到呀”“喂喂,你听得到吗?” “草,我听得到呀!!!!” “你TM能不能听到我讲话啊!!喂!”“……” 四次握手: “喂,你听得到吗?” “我听得到呀,你听得到我吗?” “我能听到你,你能听到我吗?” “……不想...

eddyjoe的博客 2955

简述TCP三次握手四次挥手

为了准确无误地把数据送达目标处,TCP 协议采用了三次握手策略。 1.1 TCP三次握手漫画图解 如下图所示,下面的两个机器人通过 3 次握手确定了对方能正确接收发送消息(图片来源:《图解 HTTP》)。 简单示意图: 客户端–发送带有 SYN 标志的数据包–一次握手–服务端 服务端–发送带有 SYN/ACK 标志的数据包–二次握手–客户端 客户端–发送带有带有 ACK 标志的数据包–三次握手–服务端 详细示意图 1.2为什么要三次握手 三次握手的目的是建立可靠的通...

应无所住而生其心 1978
上一篇: ARP协议与交换机原理
下一篇: 静态路由器配置
Utopia_dower
博客等级 码龄3年 10粉丝 · 53原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值