千家信息网

TCP协议详解,你从未见过额全新版本

发表于:2024-09-24 作者:千家信息网编辑
千家信息网最后更新 2024年09月24日,前言:TCP/IP协议簇的传输层协议主要有两个,TCP(Transimission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协
千家信息网最后更新 2024年09月24日TCP协议详解,你从未见过额全新版本

前言:

TCP/IP协议簇的传输层协议主要有两个,TCP(Transimission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)

一:TCP协议介绍

TCP是面向连接的,可靠的进程到进程通信的协议。

TCP提供全双工服务,即数据可在同一时间双向传输,每一个TCP都有发送缓存和接收缓存,用来临时存储数据。

二:TCP报文格式

2.1TCP报文段

TCP将若干个字节构成一个分组,成为报文段。

TCP报文段封装在IP数据报中。

2.2TCP报文段格式

源端口号:16位字段,为发送方进程对应的端口号。

目标端口号:16位字段,对应的是接收端的进程,接收端收到数据后,根据这个端口号来确定吧这个数据送给哪个应用程序的进程。

序号:当TCP从进程接收数据字节时,就把他们存储在发送缓存中,并对每一个字节进行编号。

确认号:确认号是对发送端的确认信息。用它来告诉发送端这个序号之前的数据段都已经收到。如确认号是X,就表示前X-1个数据段都已经收到。

首部长度:一般是20字节,最大可以扩展为60字节。用它可以确定首部数据结构的字节长度。

保留:作为今后扩展功能使用,现在还没有使用到。

控制位:这六位作用很重要,TCP的连接,传输和断开都受这六个控制位的指挥。各位的含义如下。

URG:紧急指针有效位。只有0和1,1表示指针开启。数据传输时,先放在缓存(内存)中,临时保存起来,紧急指针位是指可以在内存中优先提取数据。

PSH:标志位=1时要求接收方尽快将数据段送达应用层。即PSH=1时,不经过缓存,直接将数据段送达应用层。优先级高于URG。

ACK:确认位。只有当ACK=1时,确认序列号才有效。当ACK=0时,确认序列号字段无效。

SYN:连接位。同步序号位,TCP需要建立连接时将这个值设置为1.

FIN:断开连接标识。发送端完成发送任务位,当TCP完成数据传输需要断开连接时,提出断开连接的一方将这个值设置为1.

RST:重新建立连接TCP连接时使用。,当RST=1时,通知重新建立TCP连接。

窗口大小:用于说明本地可接收数据段的数目,窗口大小是可变的。当网络通畅是窗口值变大可以加快传输速度,当网络不稳定时减小这个值可以保证网络数据的可靠传输。TCP协议中的流量控制机制就是依靠变化窗口值的大小实现的。

校验和:用来做差错控制。在发送TCP数据段时,由发送端计算校验和,到达目的地时再进行一次校验和计算。若两次校验和一致,则说明数据基本是正确的,否则将认为数据已被破坏,接收端将丢弃数据。

紧急指针:和URG配合使用,当URG=1时有效。

选项:在TCP首部可以有多达40字节的可选信息。

三:TCP连接--三次握手

3.1第一次握手

建立连接过程:PC1发送建立连接请求,SYN标志位设为1.

3.2第二次握手

这一次握手实际上分为两部分来完成。

第一部分:PC2收到PC1的请求,向PC1回复一个确认信息,此过程的典型标志就是TCP的ACK控制位为1。且确认序列号是PC1的初始序列号加1.

第二部分:PC2收到请求后需要回复。即PC2也向PC1发送建立连接的请求,此过程的典型标志和第一次握手一样,即TCP的SYN控制位为1.

为了提高效率,一般将这里两个部分合并在一个数据包里实现。

3.3第三次握手

PC1收到了PC2的回复(包含请求和确认),此时需要向PC2回复一个确认信息,此过程的典型标志就是TCP的ACK控制位为1.且确认序列号是PC2的初始序列号加1.

此时就完成了三次握手

3.4总结

上图中

Seq表示请求序列号。

Ack表示确认序列号

SYN控制位只有在请求建立连接时才被设为1.

四:TCP四次挥手

参加数据交换的双方中的任何一方(客户和服务器)都可以关闭连接。TCP断开连接分四步,也称为四次挥手。

4.1第一次挥手

PC1发送 FIN 和 ACK 控制位为1的TCP报文段给PC2.

FIN:断开连接标识,提出断开连接的一方将这个值设为1.

ACK:ACK=1,表示确认序列号字段有效。

4.2第二次挥手

PC2收到PC1的信息,开始回复。

PC2 回复 ACK=1 的 TCP 报文段给 PC1。

4.3第三次挥手

PC2现在开始主动发送消息给PC1,发送 FIN=1,ACK=1 的报文段给PC1.

即PC2也发消息给PC1,FIN=1,我(也)要和你断开连接。ACK=1,确认序列号字段有效。

4.4第四次挥手

PC1收到 PC2 的消息,回复ACK=1 的TCP报文段。

ACK=1,确认PC2 发给 PC1 的序列号字段有效。

4.5半关闭

在TCP断开连接(四次挥手)的过程中,TCP一方(通常是客户端)可以终止发送数据,但仍然可以接收数据,成为半关闭。

具体描述一下:

1.客户端发哦是那个FIN报文段,半关闭了这个连接,服务器发送ACK报文段接收半关闭。

2.服务器继续发送数据,而客户端只发送ACK确认,不再发送任何数据。

3.当服务器吧所有数据都发送完毕时,就发送FIN报文段,客户再发送ACK报文段,这样就关闭了TCP连接。

五:DUP协议介绍

5.1UDP协议

UDP缺点:是一个无连接,不保证可靠性的传输层协议,也就是说发送端不关心发送的数据是否达到目标主机,数据是否出错等,收到数据的主机也不会告诉发送方是否收到了数据,它的可靠性由上层协议来保障。

UDP优点:UDP的首部结构简单,在数据传输时能实现最小的开销。

5.2UDP报文的首部格式

UDP在实际工作中的应用范围很广,例如,聊天工具QQ在发送短消息时就使用了UDP的方式。

5.3UDP协议端口和功能

TFTP:简单文件传输协议,速度快。

RPC::远程过程调用。同步传输数据的时候会用到。

NTP:比如做网络架构时,100台机器实现数据同步传输,就需要用到网络时间协议。

六:常见协议及其端口

FTP:文件服务器,方便文件的上传和下载。

TELNET:采用明文发送,建议在局域网中使用,不建议在广域网中使用。

SMTP:发送邮件的协议

POP3:收邮件的协议

HTTP:打开网站用到的协议

数据 报文 传输 序列 序列号 控制 字段 字节 过程 进程 服务 有效 信息 客户 服务器 标志 缓存 网络 一方 口号 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海夺畅网络技术有限公司待遇 数据库怎么增加多个字段的值 020互联网小马科技 网络安全数据包分析思考 网络安全广告法 软件开发数据保密协议范本 鸠鸠互联网科技下载 edb数据库时间 阿里通用服务器芯片 服务器工作站解决方案 防网络安全的手抄报内容 云服务器会产生宽带费用吗 我校开展学生网络安全教育 网络安全攻防演练工作的通知 捕鱼网络安全法的特征有 c#显示数据库中图片路径 软件开发商业创业计划书 网络安全和生活报表 数据库操作技术实验课本 对数据库新技术的理解 教务管理系统e-r图数据库 能做服务器就不要做客户端 惠州通信软件开发市价 密码被锁住怎么用数据库解开 管理物流用什么软件开发 手抄报网络安全简单 福建城市互联网络科技有限公司 软件开发行业财务核算 网络安全为人民简短内容 考研网络技术学校排名
0