公告:

如何通俗地理解TCP/UDP和HTTP、FTP、SMTP等协议之间的区别?

作者:我爱技术网 / 时间:1年前 (2019/01/02) / 分类:新鲜科技 / 阅读:1185 / 评论:0

先来假定没有TCP,乃至没有IP层,只要MAC对应的数据链路层,HTTP等协议能跑多远!

直接把HTTP封装在Ethernet Frame 里,能够吗?

当然能够,在同一个二层播送域里,经过MAC地址来辨认对方,然后HTTP的数据经过网卡接口函数完结发送和接纳。

如何通俗地理解TCP/UDP和HTTP、FTP、SMTP等协议之间的区别?

第二个问题:怎样确保数据万无一失地抵达对方?

让网卡来确保数据的牢靠传输吗?网卡只对Ethernet 帧头做解说,以太网头14个字节也没有哪个字段能够胜任这个牢靠传输的使命,那HTTP是不是要自己完结数据传输得牢靠机制,比方发送一段1000字节的数据,要等待对方给自己承认收到,然后再来发送,这样是能够确保数据牢靠传输。

相同FTP,STMP,POP3,BGP都是要确保数据牢靠的传输,那他们是不是也要自己完结这些牢靠的机制呢?

有必要的!

换句话说,只要有一个应用,要牢靠传输,有必要由 application protocol 来完结!是不是很笨啊???这一切application protocol 的牢靠传输机制是相同的完结,代码都应该相似,假如咱们把这些被重用的代码封装起来,即接口函数API,让他完结数据的牢靠传输,一起用一个标识符来标明这是哪个application protocol,是不是可行呢?

当然可行了,快递公司不就是这样操作的嘛!

这就是巨大TCP/IP协议的缔造者所高度抽象出来的流量调度员:TCP!

TCP

它把牢靠传输机制代码封装成了接口函数API,即socket , 一起用TCP Port来区分其效劳的application Protocol。而application protocol 只需要对自己的协议本身和协议数据做解说,完结端对端的会话。

第二个问题:现在 Ethernet + TCP + application protocol ,这个包能跑多远?

也就是一个播送域那么大的范围了吧?小样再怎样得瑟也逃不出播送域的圈圈!

IP层就是来处理这个问题的,有了IP层能够让Internet 成为可能,一句广告词:impossible is nothing! 要知道IP就是 Internet Protocol 的缩写。

你可能要问了, 我想要IP层,不想要TCP层,直接把数据封装在IP层能够吗?

太能够了!不但能够,并且好多协议也是这么做的,OSPF,EIGRP,GRE,ESP,AH等协议都是这么做的,假如他们想确保牢靠传输,他们自己用代码来完结,这当然能够。

问题是IP只用一个字节来表明协议号,理论上只能辨识255种上层协议,资源十分严重,并且都被闻名的大牌协议所霸占着,比方TCP,ICMP,IGMP,包括上面说到的,哪里轮的上你哦!

为了处理这个资源严重问题,于是就有了其他一个小发明,只用来区分application protocol 的小傀儡:UDP!

UDP

其实UDP除了供给一个Port来分辩application protocol , 确实没干点其他,可是Port 号占用2个字节,理论上能够分辩65535种 application protocol ,就这一条就能够让其功德圆满了,正是由于它不像TCP,是彻底无状况协议,所以也深得一些应用程序的喜爱,由于UDP无状况,IP也无状况,会话一切的状况都由application protocol 来进行控制,这也是一种挑选。

其他UDP-based 的应用能够完结牢靠传输,比方TFTP,那就由TFTP自己来完结牢靠传输;也能够把数据交给UDP,让其发送出去即可,对发送出去的数据不需要承认,同学们会问:这是哪种应用啊?语音流量,丢了就丢了,对方听不见大不了再说一遍。

总述

TCP供给一种牢靠传输机制,有状况。

UDP供给更多的门牌号来区分上层的协议,无状况。


推荐阅读:

浅谈电脑怎么设置挂机密码?让你的电脑实现网吧挂机锁方法

Google与WordPress合作共同构建Newspack网络平台

WordPress编辑文章时为什么没有分类选择项?

  • QQ群
  • 微信公众号