三次握手协议

TCP连接为什么是三次握手而不是两次或四次握手

戏子无情 提交于 2019-11-29 11:43:57
简述原因 三次握手的目的:是为了确认双方都有收发数据的能力。 第一次: A->B,证明A有发消息的能力。 第二次: ->B && B->A,证明B有收消息,并且有发消息的能力。 第三次: A->B,证明A有收消息的能力。 二次握手达不到目的,四次多余。 一句话概括,TCP连接握手,握的是啥? 通信双方数据原点的序列号! TCP作为一种可靠传输控制协议,其核心思想:既要保证数据可靠传输,又要提高传输的效率,而用三次恰恰可以满足以上两方面的需求! TCP可靠传输的精髓:TCP连接的一方A,由操作系统动态随机选取一个32位长的序列号(Initial Sequence Number) 假设A的初始序列号为1000,以该序列号为原点,对自己将要发送的每个字节的数据进行编号,1001,1002,1003…,并把自己的初始序列号ISN告诉B,让B有一个思想准备,什么样编号的数据是合法的,什么编号是非法的,比如编号900就是非法的,同时B还可以对A每一个编号的字节数据进行确认。如果A收到B确认编号为2001,则意味着字节编号为1001-2000,共1000个字节已经安全到达。 同理B也是类似的操作,假设B的初始序列号ISN为2000,以该序列号为原点,对自己将要发送的每个字节的数据进行编号,2001,2002,2003…,并把自己的初始序列号ISN告诉A,以便A可以确认B发送的每一个字节

【TCP协议】---TCP三次握手和四次挥手

冷暖自知 提交于 2019-11-27 23:28:24
TCP协议 本文内容如下: 1)TCP协议概念 2)TCP头部结构和字段介绍 3)TCP流量控制 滑动窗口 4)TCP拥塞控制 慢启动、拥塞避免、快重传、快恢复 有关TCP的三次握手四次挥手单独写了一篇博客: 【TCP协议】---TCP三次握手和四次挥手 有关TCP粘包和黏包,也单独写一篇博客,下一篇博客就写有关粘包黏包问题。 一、TCP概念 TCP(Transmission Control Protocol 传输控制协议)是一种 面向连接(连接导向) 的、 可靠的 、 基于IP的传输层 协议。 首先来看看OSI的七层模型 我们需要知道 TCP 工作在网络OSI的七层模型中的第四层—— 传输层 , IP在第三层——网络层 , ARP 在第二层——数据链路层 ;同时,我们需要简单的知道,数据从 应用层发下来,会在每一层都会加上头部信息,进行 封装,然后再发送到数据接收端。这个基本的流程你需要知道,就是每个数据都会经过数据的封装和解封 装的过程。 在OSI七层模型中,每一层的作用和对应的协议如下: 二、TCP头部结构和字段介绍 从上面图片可以看出,TCP协议是封装在IP数据包中。 下图是TCP报文数据格式。TCP首部如果不计选项和填充字段,它通常是20个字节。 下面分别对其中的字段进行介绍: 源端口和目的端口 各占2个字节