数据流和数据报、TCP可靠传输

数据报表明是一个整体,write几次,就读取几次

数据流是基于字节的,1次write100个字节,肯能分10次读取

TCP基于数据流面向连接的,UDP基于数据报面向非连接的

TCP提供可靠服务的理解:

1.基于连接的,3次握手协议

2.差错检验、超时重发、滑动窗口协议保证了可靠性。

1.想象数据包只会出错,一次只能发一个包,确认后才能发下一个包:差错检验。发送端发包,接受段接包,发现错误,发送NCAK,发送端收到后重发包。

当NCAK也出错时,怎么办?当发送端在等待ACK的过程中,收到ACK或NCAK错误包时,重新发送包,但是带上包序号,接受段接受到包时,从序号知道是新包还是旧包,若为旧包,且前面发送ACK,则重新发送ACK,丢弃收到的旧包,若为旧包,前面发送NACK,则检验包,重复上述操作。若为新包,重复上述操作。

2.想象数据包会丢失时怎么办,超时重传。当发送端发的包丢失,重传;当确认包或nack包丢失,重传,接受包根据包序号知道是新包还是旧包。

3。一次一个包,太慢。滑动窗口协议,一次可以发送多个包。流量控制,具体见其他博客

数据流和数据报、TCP可靠传输,布布扣,bubuko.com

时间: 2024-08-01 17:58:51

数据流和数据报、TCP可靠传输的相关文章

TCP可靠传输机制

TCP提供一种面向连接的.可靠的字节流服务.面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据包之前必须先建立一个TCP连接.这一过程与打电话很相似,先拨号振铃,等待对方摘机说"喂",然后才说明是谁.在一个TCP连接中,仅有两方进行彼此通信.广播和多播不能用于TCP. TCP通过下列方式来提供可靠性: 1.面向字节流和缓存机制:应用数据被分割成TCP认为最适合发送的数据块.这和UDP完全不同,应用程序产生的数据长度将保持不变.由TCP传递给IP的信息单位称为

计算机网络(9)-----TCP可靠传输的实现

TCP可靠传输的实现 以字节为单位的滑动窗口 滑动窗口的滑动是以字节为单位的,发送方A和接收方B在TCP三次握手的前两次握手时协商好了发送窗口和接受窗口的大小,发送方A根据B发送来的确认连接报文中标明的窗口的大小,来确定收到确认前的最大发送数据量,如果A接收到的B发来的确认报文中标明的窗口大小为0,则停止发送数据,直到收到不为0的确认报文,再继续发送.发送窗口表示在没有收到B的确认的情况下,A可以连续把窗口内的数据都发送出去,凡是已发送过的数据,在没有收到确认前都要暂时保留,以便超时重传时使用.

TCP可靠传输及流量控制实现原理

一.为什么TCP是可靠传输? 1. 停止等待协议 通过确认与超时重传机制实现可靠传输 在发送完一个分组后,必须暂时保留已发送的分组的副本. 分组和确认分组都必须进行编号. 超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些. 出现差错或丢失的时候,发送方会将自己备份的副本再重传一次,直到收到接收的确认信息.当接收方收到重复的数据时,会直接丢弃,但是会给发送方请确认自己已经收到了. 2. 改进的停止等待协议——连续ARQ协议和滑动窗口协议 上面的停止等待协议每发送一组数据就必须等到接收

TCP可靠传输详解

TCP提供了可靠的传输服务,这是通过下列方式提供的: 分块发送:应用数据被分割成TCP认为最适合发送的数据块.由TCP传递给IP的信息单位称为报文段或段(segment) 定时确认重传:当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段.如果不能及时收到一个确认,将重发这个报文段. 当TCP收到发自TCP连接另一端的数据,它将发送一个确认.这个确认不是立即发送,通常将推迟几分之一秒 数据校验:TCP将保持它首部和数据的检验和.这是一个端到端的检验和,目的是检测数据在传输过程中的

tcp可靠传输的机制有哪些(面试必看

一.综述 1.确认和重传:接收方收到报文就会确认,发送方发送一段时间后没有收到确认就重传. 2.数据校验 3.数据合理分片和排序: UDP:IP数据报大于1500字节,大于MTU.这个时候发送方IP层就需要分片(fragmentation).把数据报分成若干片,使每一片都小于MTU.而接收方IP层则需要进行数据报的重组.这样就会多做许多事情,而更严重的是,由于UDP的特性,当某一片数据传送中丢失时,接收方便无法重组数据报.将导致丢弃整个UDP数据报. tcp会按MTU合理分片,接收方会缓存未按序

TCP可靠传输的保证

我们知道传输层提供最主要的两种协议,TCP和UDP,其中TCP是保证可靠传输,为什么他要保证可靠传输呢,IP说:当然是我不能,我只提供尽力而为的服务,不保证你能不能交付,不保证能不能正确的交付,不保证能不能按顺序交付.要不然干嘛要你保证呢.说的好有道理,我呵呵一笑. 那么可靠数据传输到底能保证什么呢? 1.不错:就是传输的数据包没有错误 2.不丢:传输的数据包不丢失 3.不乱:传输的数据包顺序要保持正确的交付. 可靠传输协议凭什么能做出这样的保证呢? 1.差错检测:TCP将保持它首部和数据的检验

TCP可靠传输:校验和,重传控制,序号标识,滑动窗口、确认应答

Tcp通过校验和,重传控制,序号标识,滑动窗口.确认应答实现可靠传输 应答码:ACK TCP的滑动窗口机制       TCP这个协议是网络中使用的比较广泛,他是一个面向连接的可靠的传输协议.既然是一个可靠的传输协议就需要对数据进行确认.TCP协议里窗口机制有2种:一种是固定的窗口大小:一种是滑动的窗口.这个窗口大小就是我们一次传输几个数据.对所有数据帧按顺序赋予编号,发送方在发送过程中始终保持着一个发送窗口,只有落在发送窗口内的帧才允许被发送:同时接收方也维持着一个接收窗口,只有落在接收窗口内

TCP可靠传输的实现

假设我们讨论A向B发送数据,A端有发送窗口,B端有接受窗口 根据 B 给出的窗口值 A 构造出自己的发送窗口,假如A收到了B的确认报文,此时窗口的值为20,确认序号的值为31,那么接收端会构造出下面的窗口 这里面前后沿可以不动和前移,但是前沿可以后移(不建议) 下面我们讨论发送窗口 (1)发送窗口表示,里面的数据在未收到确认数据报之前,都可以连续发送,但是发送了的,必须保留,以便于重传 (2)如果窗口越大,那么可以连续发送的却多,但是前提是接收窗口可以及时接收 (3)发送窗口后沿的部分表示已经确

TCP 协议如何保证可靠传输

一.综述 1.确认和重传:接收方收到报文就会确认,发送方发送一段时间后没有收到确认就重传. 2.数据校验 3.数据合理分片和排序: UDP:IP数据报大于1500字节,大于MTU.这个时候发送方IP层就需要分片(fragmentation).把数据报分成若干片,使每 一片都小于MTU.而接收方IP层则需要进行数据报的重组.这样就会多做许多事情,而更严重的是,由于UDP的特性,当某一片数据传送中丢失时,接收方便 无法重组数据报.将导致丢弃整个UDP数据报. tcp会按MTU合理分片,接收方会缓存未