共计 2030 个字符,预计需要花费 6 分钟才能阅读完成。
当你看到这篇文章时,你的电脑就向 segment 的服务器发送了很多 http 申请,而后页面显示在你的电脑上。这些 http 到底是如何从一台电脑到另一台电脑(服务器)的,它们是怎么进行通信的?这就波及到的互联网的通信协议。
咱们时常听到 http 协定,http 又是通过 tcp 传输,这两个就是其中的两层协定。互联网协议大体能够分为五层协定,如上图。
最底层的协定就是“物理层”,设施与设施之间的物理连贯,这既能够是有线(光纤、光缆)也能够是无线,这也是互联网通信的基石。咱们看到的任何文字、图片、视频,实质上就是通过这些物理层线路一直传输 0 与 1 这样的电信号。
一长串连续不断的 0 与 1 这样的电信号,无奈精确别表白意思,这就诞生了第二层协定“链接层”。链接层也能够叫“以太网协定”,它把 0 和 1 这样的电信号进行分组,多少个算一组,每一组表白什么意思。
这里有个外围问题,尽管有了物理线路,也有了一组一组各种组合的电信号,它们到底又是如何从一台电脑到另一台电脑的?
电脑往外发送信号,和从里面接管信号,都是通过网卡进行的。每个网卡都有本人的一个 MAC 地址(相当于身份识别码),每台电脑网卡的 MAC 地址身份都是全世界惟一的,这是在工厂制作的时候就弄好的。
当几台电脑处在同一个网络外部(局域网),比如有 A、B、C、D 四台电脑,A 电脑要往 C 电脑传递信息,A 电脑并不会把信息“间接送达”给 C,而是“播送”的形式,就是广而告之。
A 电脑网卡收回的电信号,同一组网络里的 B、C、D 电脑的网卡都会收到这些电信号,然而 A 电脑网卡发送信号的时候,在信号里标注了接管方的网卡 MAC 地址,比如标注了 C 电脑的网卡 MAC 地址为接管方,那么 B 和 D 接管了电信号后发现接管方不是本人就不会进行任何解决,只有 C 会发现接管方是本人才会解决这些收到的电信号。
或者你会有纳闷,为什么 A 的信号不中转 C 呢?这关键在于,难道苹果制作的 100 万台电脑里,就把其中一台电脑明确规定好,信息就必须只能发送到戴尔制作的 1000 万台电脑里其中一台吗?实际上,古代的任何电子设备的通信都是采纳这样的”播送“模式,诸如 GPS 卫星也一样,GPS 卫星是不会晓得你的手机的,它会往笼罩的整个空域发送电磁波信号,每个手机都会承受到这样的电磁波信号,只是有的手机有权解决和解析信号,有的手机无权解决而已。
通过 MAC 地址的通信就是这第二层的链接层”以太网“协定,它次要用于在同一网络内把信号从 A 电脑送到到 C 电脑。这一层也只能对在处在同一网络里的电脑通信,处在不同网络的电脑要实现通信,就须要第三层参加,即网络层,IP 协定。这就是咱们熟知的 IP 地址,如从北京的将数据发送到上海,这须要借助 ip 地址帮忙。
ip 协定的信号中定义了远方指标设施的 IP 地址,但要留神的是,电信号也不会间接就从北京”飞到“上海。你的电脑是处在一组网络中,每一组网络都有一个交换机的角色,各个不同网络组的交换机又处在一个更下层的一组网络里,更下层的网络又有更下层的网络组。城市也有城市的各种交换机,这些交换机又会处在一组网络里。这些网络都在通过”播送“的形式,一层层播送信号。每个网络组都有本人的 ip 地址,你的电信号里定义了指标方的 ip 地址,有的网络组发现 ip 地址不是本人,接管到了播送过去的数据也是抉择不解决。通过这一张微小的网,一层层的相互播送信号,你的信号才最初达到了上海。
实际上到此,地球上任何两台电脑都能够建设连贯了。前面的协定层次要针对计算机里的各种应用程序了。
电脑上会开很多应用程序,电脑会接管到很多数据,这须要晓得将接管到的数据分发给哪个应用程序(过程)。不同的应用程序(过程)会监听系统不同的端口号,这就产生了传输层,TCP 协定和 UDP 协定都属于传输层。传输层协定是嵌在 ip 协定里,ip 协定帮忙找到了指标电脑,网卡终于接管到了信息,但网卡还要散发信息。ip 协定中嵌入的传输层协定数据就规定了端口号,信息达到了指标电脑的网卡后,网卡会通过外面的传输层协定的端口号把信息散发的电脑的各种过程。
TCP 协定和 UDP 协定都属于传输层协定,二者的区别次要在于,UDP 协定的数据无奈晓得对方是否收到,而 TCP 协定中的每一个数据包都要求失去确认,如果一个数据失落得不到确认,收回方都会重发。
建设在 tcp 传输层之上的 http 协定就是属于应用层。数据能够通过传输层达到一个具体的应用程序 (过程),然而一个应用程序会有各种各样的性能,如浏览器这样一个应用程序,既可浏览网页,也能够写邮件,也下载文件,也能够看电影。这些各种各样的性能,它们就都须要有本人专门的数据格式。如网页次要就是 http 协定格局、文件传输就是 ftp 协定格局,电子邮件就是 smpt 协定格局。应用层协定,就是帮忙应用程序(过程)解析出各种性能须要的格式化数据。
自此,这五层协定帮忙咱们实现了互联网的各种通信和性能。这五层协定的数据,一层层嵌在一起组成一个个数据包,一起发送,一起接管,每个数据包里的这五层协定数据,它们都有各自的使命。