吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2797|回复: 9
收起左侧

[其他转载] TCP协议

  [复制链接]
古月不傲 发表于 2020-10-6 23:54
本帖最后由 古月不傲 于 2020-10-6 23:56 编辑

TCP协议的作用主要是在计算机间可靠地传输数据包。
TCP协议是面向连接的协议,两端建立一条虚电路,他比较安全、稳定,但是效率不高,占用资源较多。
由于它的可靠性,已经成为当今互联网协议事实上的标准。
TCP协议数据段格式
TCP数据段格式.png
含义如下:
源端口:                呼叫方端口号
目的端口:            接受方端口号
序号:                    用于确保数据到达的正确顺序
确认号:                期待的下一个TCP字段的编号
报头长度:            报头的字数(字长为32位)
保留域:                设置为0
标志位:                控制功能(比如会话的建立和终止,对应下面6个)
窗口:                    发送者愿意接收的字节数
校验和:                报头和数据字段的校验和
紧急指针:            指明这是紧急数据的末尾
可选:                   当前定义项,可选
数据:                   上层协议数据

TCP协议报头中包含6个重要标志位→
SYN:        用来建立连接,让连接双方同步序列号。如果SYN=1,而ACK=0,则表示
                该数据包为连接请求;如果SYN=1,而ACK=1,则表示接受连接。
FIN:        表示发送端已经没有数据要求传输了,希望释放连接。
RST:        用来复位一个连接。RST标志位的数据包称为复位包,一般情况下,如果TCP
                协议收到的分段明显不属于该计算机上的任何一个连接,则向远端发送一个复位包。
URG:        为紧急数据标志。如果它为1,表示本数据包中包含紧急数据。此时紧急数据指针
                有效,可以优先发送。
ACK:        为确认标志位。如果为1,表示包中的确认号是有效的,证明数据包有效收到,
                可以接受下一个数据包的发送请求。否则,包中的确认号无效。
PSH:        置位标志,接收端应尽快把数据传送给应用层。

TCP协议的可靠性通过“校验和”、“定时器”、“数据序号”、“应答”提供的。
通过给每个发送的字节分配一个序号,接收端接受到数据后发送应答来确保数据的可靠传输。
数据序号用来保证数据的顺序,剔除重复的数据。
在一个TCP协议会话中,有两个数据流(每个连接端从另外一端接受数据,同时向对方发送数据),
因此,在建立连接时,必须要为每一个数据流分配ISN(初始序号)。ISN是建立一个TCP连接时的开始号,
用于提供通信顺序并确保多个包传输时无数据丢失。在连接过程中交换初始号可以确保在以后
出现问题时恢复丢失的数据。
同步是通过各个携带有初始序号和1位被称为SYN控制位的段之间的交换过程来实现的。
同步需要通信双方都发送自己的初始序号,并接受本次连接中另一方发送的一个确认和初始序号。
每一方都必须接受另一方的初始序号,并发送一个确认应答。
这就是著名的TCP连接的3此握手。3次握手的目的是同步连接双方的序列号和确认号并
交换TCP窗口大小信息。
3次握手过程:
        1:主机A向主机B发送一个序列号为X的TCP分段,其中包含连接的初始序列号和
                一个窗口大小(表示客户端上用来存储从服务器发送来的传入段的缓冲区大小)。
        2:主机B收到分段后,如果确认可以进行传输连接,则发送一个序列号为Y的分段,
                其中包含它选择的初始序列号和一个窗口大小(表示服务器上用来存储从客户端发送来的传入段的缓冲区大小)与主机A发送的分段X的确认信息。
        3:主机A在收到主机B发送的分段和确认信息后再次选择是否可以立即进行数据传输连接,
                确认后发送一个序号为X+1的分段和B主机Y分段的确认信息。
                这样传输连接就建立成功,可以正式进行数据传输了。
在TCP传送一个数据包时,它同时把这个数据包放入重发队列中,并启动计数器,
如果收到了关于这个包的ACK,则将此包从队列中删除;如果计时超时则需要重新发送此包。
数据传输完成后,还要进行TCP连接的拆除和关闭,使用4次挥手同上。

相关帖子:https://baijiahao.baidu.com/s?id=1654225744653405133&wfr=spider&for=pc

免费评分

参与人数 3吾爱币 +3 热心值 +2 收起 理由
一般通过首冲人 + 1 不用找了 感谢
woyucheng + 1 + 1 用心讨论,共获提升!
fuzhend + 1 + 1 鼓励转贴优秀软件安全工具和文档!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
tlf 发表于 2020-10-7 08:09
提示: 作者被禁止或删除 内容自动屏蔽
haoxuer 发表于 2020-10-7 08:11
youkan_pj 发表于 2020-10-7 08:14
建议查询一下虚电路的概念,TCP提供有连接的服务,这个有连接的服务和虚电路是否是一回事?
吴书醉 发表于 2020-10-7 08:23
有助于小白学习,可以的
arley 发表于 2020-10-7 08:35
这个可以经常惠顾了解一下的
iuw 发表于 2020-10-7 09:57
x.25协议使用的是虚电路方式。
 楼主| 古月不傲 发表于 2020-10-7 10:03
谢谢大家的提醒
5erlT 发表于 2020-10-7 10:11
学习了,学习使我快乐
鸭子咯咯哒~ 发表于 2020-11-15 11:30
wow!,收藏吃灰
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 23:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表