本文将详细解释如何分析大数据中的网络协议。文章内容质量很高,所以边肖会分享给大家作为参考。希望大家看完这篇文章能有所了解。
一、什么是协议?
协议相当于正常通信中必须掌握的标准,是双方都能理解的约束规则。比如要收发电报,需要有密码本来解密信息。本码书为双方约定。为什么会有协议?世界可以理解为机器之间的互动。如果需要两台机器来完成某件事,那么两台机器之间“对话”的双方都必须理解它。我们不能要求两台机器完全相同,就像我们不能要求两个人完全相同一样。所以为了方便互动,就做了约定,只要大家用自己的方式理解约定,就可以沟通。
二.协定的三个要素
1.语法意味着一段内容应该符合某些规则和格式。
2.语义,也就是这一段应该代表一定的意思。例如,一个数字减去一个数字是有意义的,但是一个数字减去一个文本通常是没有意义的。
3.顺序是先做再做。必须严格遵守的命令。
3.以HTTP协议为例,看看协议是什么样子的。
1.当我们打开浏览器进入网站进行网购时,这个网站其实是一个协议格式。例如,网易考拉格式如下所示:
HTTP/1.1200 okdate : UE,27 mar 201816:50336026 GMT content-type : text/html;字符集=UTF-8内容-语言:zh-CN!typehtmlhtmlheadbase href=' 3359Pages.kaola.com/'/Metacharset=' UTF-8 '/标题网易考拉三周年主会场/标题
2.让我们看看这是否符合协议的三个要素?
首先,符合语法。只有按照以上格式浏览器才能识别。即地位、激进和内容。
其次,符合语义意味着遵循约定的意思。例如,状态200表示网页成功返回,如果不成功,则可能是404。
第三,按顺序,一个小浏览器是发送一个HTTP请求,然后上面有一串HTTP返回的东西。
浏览器显然做了协议中约定的事情,最后一个五彩缤纷的页面出现在你面前。
三.常用网络协议
使用购物订单流程来查看在互联网世界的运行中使用了哪些网络协议。
1.首先,在浏览器中输入https://www.kaola.com,这是一个URL。浏览器只知道“www.kaola.com”这个名字,不知道具体位置,所以不知道怎么访问。于是,它打开通讯录寻找它。可以使用通用的通讯录协议DNS进行搜索,也可以使用另一种更准确的通讯录搜索协议HTTPDNS。
2.不管你用哪种方法,你最终都会得到这个地址:106.114.138.24。这是互联网世界的IP地址和“门牌号”。
3.知道了目的地地址,浏览器开始打包它的请求。对于普通的浏览请求,经常使用HTTP协议。然而,对于购物请求,通常需要加密传输,因此将使用HTTPS协议。不管协议是什么,上面都会写着“想买什么,想买多少”。
4.DNS、HTTP和HTTPS所在的层称为应用层。浏览器被应用层封装后,将应用层包交给下一层,通过socket编程实现。下一层是传输层。传输层有两种协议,一种是无连接协议UDP,另一种是面向连接的协议TCP。对于支付,经常使用TCP协议。所谓面向连接,就是指TCP会保证这个数据包能够到达目的地。如果它不能到达,它将被再次发送,直到它到达。
5.TCP协议中有两个端口,一个是浏览器监控的端口,另一个是电商服务器监控的端口。操作系统通常会决定它得到的数据包应该通过哪个端口发送。
6.传输层封装后,浏览器会将包交付给操作系统的网络层。网络层协议是IP协议。IP协议中会有一个活动的IP地址,即浏览器所在机器的IP地址和目标IP地址,即电子商务网站所在服务器的IP地址。
7.操作系统既然知道目标IP地址,就开始思考如何根据这个门牌号找到目标机器。操作系统经常判断。
,这个目标 IP 地址是本地人,还是外地人。如果是本地人,从门牌号就能看出来,显然电商网站不在本地,而在遥远的地方。
8、操作系统知道要离开本地去远方。虽然不知道远方在何处,但是可以这样类比一下:如果去国外要去海关,去外地就要去网关。而操作系统启动的时候,就会被 DHCP 协议配置 IP 地址,以及默认的网关的 IP 地址 192.168.1.1。
9、操作系统如何将 IP 地址发给网关呢?在本地通信基本靠吼,于是操作系统大吼一声,谁是192.168.1.1 啊?网关会回答它,我就是,我的本地地址在村东头。这个本地地址就是MAC地址,而大吼的那一声是ARP协议。
10、于是操作系统将 IP 包交给了下一层,也就是MAC 层。网卡再将包发出去。由于这个包里面是有 MAC 地址的,因而它能够到达网关。
11、网关收到包之后,会根据自己的知识,判断下一步应该怎么走。网关往往是一个路由器,到某个IP 地址应该怎么走,这个叫作路由表。
12、路由器有点像玄奘西行路过的一个个国家的一个个城关。每个城关都连着两个国家,每个国家内部相当于一个局域网,在每个国家内,都可以使用本地的地址 MAC 进行通信。
13、一旦跨越城关,就需要拿出 IP 头来,里面写着贫僧来自东土大唐(就是源 IP 地址),欲往西天拜佛求经(指的是目标 IP 地址)。路过宝地,借宿一晚,明日启行,请问接下来该怎么走啊?
14、城关往往是知道这些“知识”的,因为城关和临近的城关也会经常沟通。到哪里应该怎么走,这种沟通的协议称为路由协议,常用的有OSPF和BGP。
15、城关与城关之间是国家,当网络包知道了下一步去哪个城关,还是要使用国家内部的 MAC地址,通过下一个城关的 MAC 地址,找到下一个城关,然后再问下一步的路怎么走,一直到走出最后一个城关。
16、最后一个城关知道这个网络包要去的地方。于是,对着这个国家吼一声,谁是目标 IP 啊?目标服务器就会回复一个 MAC 地址。网络包过关后,通过这个 MAC 地址就能找到目标服务器。
17、目标服务器发现 MAC 地址对上了,取下 MAC 头来,发送给操作系统的网络层。发现 IP 也对上了,就取下 IP 头。IP 头里会写上一层封装的是 TCP 协议,然后将其交给传输层,即TCP层。
18、在这一层里,对于收到的每个包,都会有一个回复的包说明收到了。这个回复的包绝非这次下单请求的结果,例如购物是否成功,扣了多少钱等,而仅仅是 TCP 层的一个说明,即收到之后的回复。当然这个回复,会沿着刚才来的方向走回去,报个平安。因为一旦出了国门,西行路上千难万险,如果在这个过程中,网络包走丢了怎么办呢?因而到了要报个平安。
19、如果过一段时间还是没到,发送端的 TCP 层会重新发送这个包,还是上面的过程,直到有一天收到平安到达的回复。这个重试绝非你的浏览器重新将下单这个动作重新请求一次。对于浏览器来讲,就发送了一次下单请求,TCP 层不断自己闷头重试。除非 TCP 这一层出了问题,例如连接断了,才轮到浏览器的应用层重新发送下单请求。
20、当网络包平安到达 TCP 层之后,TCP 头中有目标端口号,通过这个端口号,可以找到电商网站的进程正在监听这个端口号,假设一个 Tomcat,将这个包发给电商网站。
21、电商网站的进程得到 HTTP 请求的内容,知道了要买东西,买多少。往往一个电商网站最初接待请求的这个 Tomcat 只是个接待员,负责统筹处理这个请求,而不是所有的事情都自己做。例如,这个接待员要告诉专门管理订单的进程,登记要买某个商品,买多少,要告诉管理库存的进程,库存要减少多少,要告诉支付的进程,应该付多少钱,等等。
22、如果告诉相关的进程呢?往往通过 RPC 调用,即远程过程调用的方式来实现。远程过程调用就是当告诉管理订单进程的时候,接待员不用关心中间的网络互连问题,会由 RPC 框架统一处理。RPC 框架有很多种,有基于 HTTP 协议放在 HTTP 的报文里面的,有直接封装在 TCP 报文里面的。
23、当接待员发现相应的部门都处理完毕,就回复一个 HTTPS 的包,告知下单成功。这个HTTPS的包,会像来的时候一样,经过千难万险到达你的个人电脑,最终进入浏览器,显示支付成功。
四、小结
一个简单的下单过程,中间会涉及到这么多协议。而管理一大片机器,更是一件特别有技术含量的事情。像云计算、容器、为服务等技术也需要借助各种协议来达成大规模机器之间的合作。在五层模型中常见的协议如下:
关于如何分析大数据中的网络协议就分享到这里了,希望
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/140999.html