首页 > 代码库 > 数据流和数据报、TCP可靠传输

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

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

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

 

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

 

TCP提供可靠服务的理解:

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

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

 

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

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

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

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