计算机网络 -- TCP的三次握手

计算机网络 -- TCP的三次握手

参考:https://blog.csdn.net/qq_38950316/article/details/81087809

一)、TCP协议的特点

定义:

1.是一个面向连接的、可靠的、基于字节流的传输层协议。

2.将应用层的数据分割成报文段并发送给目标节点的TCP层。

3.数据都有序号,对方收到则发ACK确认,没有则重传。

4.使用校验和来校验数据在传输过程中是否有误。

二)、TCP报文头的结构

TCP报文头结构如下:

请求报文头由4个字节,32位二进制数组成。

第一层:

源端口 目的端口 (各占16位)

第二层

序列号(占32位)

官方作用:用来标记数据段的顺序,Tcp把连接发送的所有字节数据都编上号,第一个字节序号由本地随机产生,给字节编上号后,就给每一个报文段编上号,每个报文段的编号就是该报文段第一个字节的编号。

个人理解: tcp协议的数据段由32位二进制组成,给数据段的所有字节数据都编上号,TCP将数据分割成报文段分发的目标节点的TCP层,因为给每个字节都编上了序号,那么,每一个数据段都有其对应的序号啦,即该数据段的第一个字节所对应的编号就是该数据的的编号,这样有利于接收方对数据的重排,保证的接收数据的可靠性。

第三层

ack确认号(占32位): 期望收到下一个字节的编号。

例: 客户端A向 -- >服务端 B发送了一个报文段,该报文段的序号为301, 长度为200,服务端B成功接收了改报文段,响应客户端确认收到将ack = 501的值传给客户端A,期望下一次收到的报文段的字节编号从502开始。

第四层

偏移量 保留 URG/ACK/PSH/RST/SYN/FIN (占16位) 窗口(占16位)

URG: 紧急指针, 0:有效 1:忽略紧急指针

ACK: 确认标志 ,1: 确认有效, 0:报文中不含确认信息,忽略确认字段。

PSH: push标志,接收方接收到报文后应该尽快交付给用用程序,而不是在缓冲区 中排队。

RST: 重置连接标志,重置错误连接。

SYN: 同步连接序号,用于建立连接,SYN =1, ACK = 0(连接请求报文段) 没有使 用请求捎带的确认方式; SYN =1, ACK =1 (连接接受报文段)使用连接请求捎 带的连接方式。

第五层

检验和(占16位) 紧急指针(占16位)

第六层

可选项

三)、TCP的3次握手

TCP三次握手的过程

1.客户端A主动打开处于closed状态,服务端B被动打开处于closed状态

2.服务进程创建传输控制块等待客户请求,此时服务器处于监听状态

3.客户端A创建传输控制块,发送连接请求报文,此时客户端进程进入同步已发送 状态SYN-SEND

? 请求报文内容:SYN =1, seq = x ;(第一次握手)

? 特点: 该请求报文并没有携带数据,但是服务端也消耗了一个字节,当服务端发 回确认报文时,期待收到下一个字节的编号, ack = x + 1;

? SYN: 同步连接序号,

? seq : 报文段的第一个字节的编号,刚开始的seq是随机的一个数

4.服务器同意连接,并发送一个确认报文,此时服务器进入同步收到状态SYN- RCVD

? 确认报文内容:SYN =1, ACK = 1, seq = y, ack = x+1;(第二次握手)

? ack: 期待收到下一个字节的编号

? seq:是服务端响应报文段的字节编号

5.客户端进入连接状态ESTAB-LISHED

? 连接报文内容:SYN =1, ACK =1, seq = x +1, ack = y+1;(第三次握手)

6.服务端进入到连接状态ESTAB-LISHED

原文地址:https://www.cnblogs.com/Auge/p/12183420.html

时间: 2024-10-10 06:00:01

计算机网络 -- TCP的三次握手的相关文章

简析TCP的三次握手与四次分手

TCP是什么? 具体的关于TCP是什么,我不打算详细的说了:当你看到这篇文章时,我想你也知道TCP的概念了,想要更深入的了解TCP的工作,我们就继续.它只是一个超级麻烦的协议,而它又是互联网的基础,也是每个程序员必备的基本功.首先来看看OSI的七层模型: 我们需要知道TCP工作在网络OSI的七层模型中的第四层——Transport层,IP在第三层——Network层,ARP在第二层——Data Link层:在第二层上的数据,我们把它叫Frame,在第三层上的数据叫Packet,第四层的数据叫Se

简析TCP的三次握手与四次断开

TCP/IP及OSI模型 TCP/IP OSI 功能 TCP/IP协议族 应用层 应用层 为应用软件提供服务 Telnet.FTP.DNS.HTTP.DNS.SMTP 表示层 处理两个通信系统中交换信息的表示方式,主要有数据格式交换,数据加密数据解秘,数据压缩等   会话层 维护两个计算机之间的传输链接,保证点到点传输不中断,以及管理数据交换等   传输层 传输层(数据段Segmen) 向用户提供的端到端服务,处理数据报错误,数据包次序,向高层屏蔽了下层数据通讯细节 TCP.UDP 网络层 网络

简析TCP的三次握手与四次分手(TCP协议头部的格式,数据从应用层发下来,会在每一层都会加上头部信息,进行封装,然后再发送到数据接收端)good

2014-10-30 分类:理论基础 / 网络开发 阅读(4127) 评论(29) TCP是什么? 具体的关于TCP是什么,我不打算详细的说了:当你看到这篇文章时,我想你也知道TCP的概念了,想要更深入的了解TCP的工作,我们就继续.它只是一个超级麻烦的协议,而它又是互联网的基础,也是每个程序员必备的基本功.首先来看看OSI的七层模型: 我们需要知道TCP工作在网络OSI的七层模型中的第四层——Transport层,IP在第三层——Network层,ARP在第二层——Data Link层:在第二

大杂烩 -- 简析TCP的三次握手与四次分手

基础大杂烩 -- 目录 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- TCP是什么? 具体的关于TCP是什么,我不打算详细的说了:当你看到这篇文章时,我想你也知道TCP的概念了,想要更深入的了解TCP的工作,我们就继续.它只是一个超级麻烦的协议,而它又是互联网的基础,也是每个程序员必备的基本功.首先来看看OSI的七层模型: 我们需要知道TCP工作在网络OSI的七层

TCP 的三次握手 与 四次挥手详解(转载)

建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示: 先来看看如何建立连接的. 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源.Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了. 那如何断开连接呢?简单的过程如下: [注意]中断连接端可以是Client端,也可以是Server端. 假设Client端发起中断连接请求,也就是发送FIN报文.Server端接到FIN报文后,

TCP/TP 三次握手

一.TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认: 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态: 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服

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

http://www.cnblogs.com/rootq/articles/1377355.html TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)

HTTP协议中TCP的三次握手,四次挥手总结

建立TCP需要三次握手才能建立,而断开连接则需要四次挥手.整个过程如下图所示: 先来看看如何建立连接的. 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源.Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了. 那如何断开连接呢?简单的过程如下: [注意]中断连接端可以是Client端,也可以是Server端. 假设Client端发起中断连接请求,也就是发送FIN报文.Server端接到FIN报文后,

TCP协议三次握手过程分析

TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示: SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急) Sequence number(顺序号码) Acknowledge number(确认号码) 第一