TCP(Transmission Control Protocol),又叫传输控制协议。
UDP(User Datagram Protocol),又叫用户数据报协议。
它们都是传输层的协议,但两者的机制不同,它们的区别和应用场景如下:
TCP的可靠性理解:
TCP的可靠性应该是相对于UDP不可靠传输来说的,因为UDP提供的是不可靠的数据报服务,不保证数据报能到达接收端,可能会有丢失;另外处于传输层之下的IP层也是不可靠的,仅提供尽力而为的端到端数据传输服务(best-effort delivery service),不作任何保证。所以TCP的可靠性是指基于不可靠的IP层在传输层提供可靠的数据传输服务,主要是指传输数据不会损坏或丢失,而且所有数据都是按照发送顺序进行传送。
实现TCP的可靠传输有以下机制:
1,校验和(校验数据是否损坏);
2,定时器(分组丢失则重传);
3,序列号(用于检测丢失的分组和重复的分组);
4,确认应答ACK(接收方告知发送方正确接收分组以及期望的下一个分组);
5,否定确认(接收方通知发送方未被正确接收的分组);
6,窗口和流水线(用于增加信道的吞吐量)。(窗口大小:无需等待确认应答而可以继续发送数据的最大值)
至于数据是否在中途被修改或者被窃听,这应该是属于安全性问题。提高安全性最根本的办法就是加密数据,比如远程登录用ssh而非telnet。
实现TCP的可靠传输有以下机制:
1,校验和(校验数据是否损坏);
2,定时器(分组丢失则重传);
3,序列号(用于检测丢失的分组和重复的分组);
4,确认应答ACK(接收方告知发送方正确接收分组以及期望的下一个分组);
5,否定确认(接收方通知发送方未被正确接收的分组);
6,窗口和流水线(用于增加信道的吞吐量)。(窗口大小:无需等待确认应答而可以继续发送数据的最大值)
至于数据是否在中途被修改或者被窃听,这应该是属于安全性问题。提高安全性最根本的办法就是加密数据,比如远程登录用ssh而非telnet。
参考文献:
http://blog.csdn.net/leewccc/article/details/70225610
http://blog.csdn.net/u013777351/article/details/49226101