TCP协议

TCP协议


1、大纲

——TCP特点

——TCP优点

——TCP缺点

——优化方案

——TCP头部

——三次握手

——四次挥手


2、TCP特点

面向连接——

通俗的来说就是A传数据给B的话,需要握手需要ACK;

那么ACK到底是个什么玩意?

答:ACK就是一种确认信号。在网络通信中,当发送方发送数据给接收方时,接收方会回复一个ACK信号告诉发送方它已经成功地收到了数据。这样,发送方就知道数据已经成功地传输到接收方了。如果发送方没有收到ACK信号,它可能会重发数据,以确保数据能够成功地传输到接收方。

这个机制可以帮助确保数据在网络通信中的可靠传输。

可靠传输——

TCP的可靠传输是指它能够保证数据在传输过程中不丢失、不重复、无差错且有序。这是通过一系列的机制来实现的,包括超时重传丢弃重复数据数据校验流量控制等。这些机制能够保证数据能够从一端传输到另一端,即使在网络环境不稳定的情况下也能保证数据的完整性和正确性。

超时重传

超时重传是TCP协议保证数据可靠性的一个重要机制。其原理是在发送某一个数据以后就开启一个计时器,在一定时间内如果没有得到发送的数据报的ACK报文,那么就重新发送数据,直到发送成功为止

这种机制能够保证在网络环境不稳定的情况下,数据仍然能够被正确地传输。如果数据包在传输过程中丢失,发送方会在超时后重新发送数据包,直到接收方确认收到为止。

丢弃重复数据

在TCP协议中,每个数据包都有一个序列号,用于标识数据包的顺序。接收方在收到数据包后,会检查数据包的序列号,如果发现序列号与之前收到的数据包重复,那么这个数据包就会被丢弃。

这种机制能够保证接收方不会处理重复的数据包,从而保证数据传输的正确性和完整性

例如,如果发送方发送了一个数据包,但由于网络延迟或其他原因,这个数据包迟迟未能到达接收方,发送方可能会认为这个数据包丢失并重新发送。如果接收方最终收到了两个相同的数据包,它会根据序列号判断这两个数据包是重复的,并丢弃其中一个。

例如——

阿珍给阿强发了个消息,阿强没有回复,阿珍以为阿强没收到就再发了一条,阿强收到了两条消息,都是在吗,有一条是重复的,假设消息有序列号,阿强一查这两条消息的序列号,有一条是重复的,阿强就将该条消息丢进了垃圾桶。

数据校验

校验和是一个算法,它能够计算出一个数据包的校验值。发送方在发送数据包之前,会计算出数据包的校验值,并将其附加到数据包中。接收方在收到数据包后,会重新计算数据包的校验值,并将其与数据包中附带的校验值进行比较。如果两个校验值不同,说明数据包在传输过程中发生了错误或损坏。

这种机制能够保证接收方能够检测到数据包在传输过程中发生的错误或损坏,并采取相应的措施,例如请求重传等。

举个例子

阿珍和阿强有个约会,两人是素未谋面的网友,约好了要在中山桥下茶馆看戏,说是要见面一人拿一束花,但是阿强那天走的急,忘记了买花,到茶馆门口才想起来,情急之下,阿强买了个花圈(开个玩笑哈),进到了茶馆,并在预定的位置找到了阿珍,阿强说我是前来与你相会的阿强,你是阿珍嘛,阿珍说,我是阿珍,但你不是阿强,并且给了阿强一个大逼兜子离开了茶馆,留下了伤心的阿强以及孤单的花圈。这个故事告诉我们答应的事情一定要做到,否则你的校验和就会出错。

流量控制

流量控制能够保证发送方不会因为发送数据过快而导致接收方的缓冲区溢出。这样,接收方就能够以自己的处理能力来接收数据,避免因为数据过多而导致的丢失或延迟。<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值