TCP和UDP常用的协议

最近因为面临毕业找工作,所以把搁置许久的计算机网络书又重新翻出来看。我一直都认为,TCP,UDP和其他的那么多P都是同级关系,或者说是谁都不碍着谁(因为这句话是不正确的,所以加了删除线)。有这种观点铁定是那些看书极不认真,或者是不会看书的人。所以,在介绍TCP和UDP相关的协议前,先宏观地定义这两个协议。基于TCP方式的传输在传输前要告知收发双方,并且双方会在传输过程中不断地确认对方是否收到消息。而基于UDP方式的传输,发送方无需提前知会接收方,接收方在突然收到消息后也不会反馈给发送方。TCP和UDP只是为具体的业务需求(协议)提供了可选的传输方式。有了上面粗略的认识,下面就来看看哪些需求(协议)是需要TCP这种方式的,哪些是可以只用UDP的。

HTTP(80)和HTTPS(443)【TCP】

浏览器向服务器发送请求,服务器要把html文件响应给浏览器。如果你用的是UDP,有些片段丢失了也不会处理,最后在浏览器上显示的可能是一堆言语不通的文字,甚至连排版都不堪入目。所以,这里要使用TCP方式。

FTP(20,21)【TCP】

FTP是文件传输协议,21端口只负责双方之间的传输控制,20端口才是文件传输的通道。对大文件的传输,可能会先打包,然后拆分成多个压缩包。你可能也遇到过压缩包损坏无法解压的情况。 这时候文件的完整性就非常重要了。所以,FTP要使用TCP方式。

SSH(22),TELNET(23)【TCP】

这两个协议用于访问远程主机,给用户提供一种和使用本地主机一样的体验。试想一下如果用的是UDP,在毫无知会的情况下,突然告诉远端主机,我要接管你,即便主机接受了,你的一些命令可能都到不了远端主机那儿,你不知道对方是否收到,对方也不知道你到底有没有在发。所以,这两个协议得使用TCP。

SMTP(25),IMAP(143),POP3(110)【TCP】

这3个协议都和邮件相关,邮件本来就简短,再加上日常业务往来都会使用邮件,如果邮件经常缺文少字,会是很可怕的事情。 所以,必须得保证信息的完整。

说到现在,提到的都是TCP支持的协议, 这些协议都是对信息的完整性有着很高的要求,为此不惜花费额外的负载和时间来保证完整性。观察上面提到的协议,他们传输的东西都是要给人类看的,得是人类感官能够识别的。如果是计算机之间的通信,信息量就会小很多,无非大家相互之间发发自己的状态。UDP主要就是为少量数据传输提供通信方式。

SNMP(161,162),NTP(123),DHCP(67,68)【UDP】

SNMP管理网络中各种基础硬件设施,比如路由器,交换机,防火墙等等。这些设备传输自己的参数,状态就通过UDP的方式,感觉像不像下属自觉地定期向领导汇报工作。NTP是时间服务器,他的作用就是提供标准时间,你可以用它来校准自己的电脑时间。因为你找NTP服务器真的只想知道现在是几点了,没必要很正式的来个三次握手。DHCP,是用来动态分配IP的。这个协议还真没法用TCP,因为一开始客户都不知道DHCP服务器在哪,跟谁握手都不知道。DHCP是用目标地址255.255.255.255广播一条消息,请求IP,而只有DHCP服务器才会响应广播报文。

RSTP(554)【UDP】用于流媒体传输,尽管发送的音频,视频这样大容量的文件,但因为对实时性的要求更高,所以接收方不能花时间反复确认报文无误,而且TCP最要命的是,如果收到了一大堆连续编号的报文,结果在最前面漏了一个,TCP会要求把漏的补齐后,才会把数据传到应用层去。这就影响到了在线视频的观看体验。视频缺个一两帧也没什么大不了的,所以倾向于使用UDP。

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值