网络协议:可靠的数据流传输服务TCP

本文深入探讨TCP协议,包括基本概念、数据流收发、TCP报文、连接建立与关闭、滑动窗口机制、拥塞控制策略以及糊涂窗口问题。详细阐述TCP如何确保数据的可靠性,以及在面对网络拥塞时如何调整传输策略。
摘要由CSDN通过智能技术生成

本文将讨论:

TCP的基本概念;

数据流的收发;

TCP报文;

建立和关闭连接;

糊涂窗口;

 

现在所用的网络上,我们常用的运输层协议是TCPUDP。现在我们来讨论TCP

 

TCP具有的特征有4个,面向数据流(面向字节)、虚电路连接、传输缓冲和全双工连接。下面来依次细讲。

 

在两个进程相互传输数据的时候,我们实际上是以八位组的比特流来传输的,当然我们同时将这个八位组的比特流称为字节。同时,我们在使用TCP的时候,我们一定需要在两个进程间建立连接,就像两个电话中间连了一条电话线。在使用TCP进行数据传输的时候,应用程序不断的往对方发送八位组,这个八位组有时候是1个,有时候是两个,有时候是别的。每个应用程序都在使用自己认为适宜大小的八位组。接收的时候,TCP通过某种方式来把这些八位组按照发送的顺序组合起来,直接交付给上一层。当发现需要交付的数据不够填满一个缓冲区的时候,只要到达了某个值,TCP就会直接发送,当然这个发送还是遵循着TCP的规则。全双工连接就更容易理解了,对于一个应用程序而言,全双工连接包括了两个独立的、流向相反的数据流,并且这两个数据流之间不进行明显的交互。

 

 

数据流的收发

 

对于TCP,它的可靠性体现在只要接收方收到了一组八位组,就会给发送方返回一个ACK。这种是一种叫“带重传的肯定确认”技术,大部分可靠协议都用它。只有在收到了这个八位组回的ACK才会发下一个。发送方在发送每一个分组的时候都会启动一个定时器,并在定时器超时且没有收到ACK的情况下重发这个八位组。

 

那么,如果每一次都要等待ACK,那么收发效率都会很低很低。那该怎么办呢?有没有这样一种思路,我一次性的发若四组八位组1234,在回1的时候发5,回2的时候发6。如果回了4但是没回3并且过了超时时间,那么我就重新发3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值