TCP与UDP的区别
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接。
2、TCP提供可靠全双功的通信服务。UDP是半双功,只能单向传播。3、通过TCP连接可靠传送的数据,可靠的、无差错,不丢失,不重复,且按序到达;UDP则是不可靠信道,尽最大努力交付,即不保证可靠交付。
4、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的。
5、TCP具有拥塞控制,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)。
6、每一条TCP连接只能是点到点的;UDP比较灵活,支持一对一,一对多,多对一和多对多的交互通信。
7、TCP首部开销20字节;UDP的首部开销小,只有8个字节。
TCP应用场景
效率要求相对低,但对准确性要求相对高的场景。因为传输中需要对数据确认、重发、排序等操作,相比之下效率没有UDP高。举几个例子:文件传输(准确高要求高、但是速度可以相对慢)、接受邮件、远程登录。 NSQ底层通讯就采用TCP。
UDP应用场景
效率要求相对高,对准确性要求相对低的场景。举几个例子:QQ聊天、在线视频、网络语音电话(即时通讯,速度要求高,但是出现偶尔断续不是太大问题,并且此处完全不可以使用重发机制)、广播通信(广播、多播)。
TCP对应的协议和UDP对应的协议
TCP对应的协议:(1) FTP(21):定义了文件传输协议,使用21端口。常说某某计算机开了FTP服务便是启动了文件传输服务。下载文件,上传主页,都要用到FTP服务。
(2) ssh(22): 专为远程登录会话和其他网络服务提供安全性的协议
(3) Telnet(23):(远程登陆协议)它是一种用于远程登陆的端口,用户可以以自己的身份远程连接到计算机上,通过这种端口可以提供一种基于DOS模式下的通信服务。如以前的BBS是-纯字符界面的,支持BBS的服务器将23端口打开,对外提供服务。
(4) SMTP(25):定义了简单邮件传送协议,现在很多邮件服务器都用的是这个协议,用于发送邮件。如常见的免费邮件服务中用的就是这个邮件服务端口,所以在电子邮件设置-中常看到有这么SMTP端口设置这个栏,服务器开放的是25号端口。
(5) POP3(110):它是和SMTP对应,POP3用于接收邮件。通常情况下,POP3协议所用的是110端口。也是说,只要你有相应的使用POP3协议的程序(例如Fo-xmail或Outlook),就可以不以Web方式登陆进邮箱界面,直接用邮件程序就可以收到邮件(如是163邮箱就没有必要先进入网易网站,再进入自己的邮-箱来收信)。
(6)HTTP(80)协议:是从Web服务器传输超文本到本地浏览器的传送协议。
UDP对应的协议:(1) DNS(53):用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。(2) RIP(520):路由信息协议,端口520(3) SNMP(161):简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。(4) TFTP(69)(Trival File Transfer Protocal),简单文件传输协议,该协议在熟知端口69上使用UDP服务。