1 定义
1.1 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
1.2 UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
2 区别
2.1 TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接;
2.2 TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付;
2.3 TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等);
2.4 每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信;
2.5 TCP首部开销20字节;UDP的首部开销小,只有8个字节;
2.6 TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道;
2.7 TCP是面向字节流的,它把上面应用层交下来的数据看成无结构的字节流会发送,可以想象成流水形式的,发送方TCP会将数据放入“蓄水池”(缓存区),等到可以发送的时候就发送,不能发送就等着TCP会根据当前网络的拥塞状态来确定每个报文段的大小。
UDP是面向报文的,发送方的UDP对应用层交下来的报文,不合并,不拆分,只是在其上面加上首部后就交给了下面的网络层,论应用层交给UDP多长的报文,它统统发送,一次发送一个。而对接收方,接到后直接去除首部,交给上面的应用层就完成任务了。因此,它需要应用层控制报文的大小。
3 对应的应用层协议
3.1 TCP对应的应用层协议
FTP:定义了文件传输协议,使用21端口;
Telnet:它是一种用于远程登陆的端口,23端口;
SMTP:定义了简单邮件传送协议,服务器开放的是25号端口;
POP3:它是和SMTP对应,POP3用于接收邮件。
3.2 UDP对应的应用层协议
DNS:用于域名解析服务,用的是53号端口;
SNMP:简单网络管理协议,使用161号端口;
TFTP(Trival File Transfer Protocal):简单文件传输协议,使用69号端口。