什么是协议
协议三要素
(1)语法,就是这一段内容要符合一定的规则和格式。例如,括号要成对,结束要使用分号等。
(2)语义,就是这一段内容要代表某种意义。例如数字减去数字是有意义的,数字减去文本一般来说就没有意义。
(3)顺序,就是先干啥,后干啥。例如,可以先加上某个数值,然后再减去某个数值。
通过双十一初始网络协议
(1)在浏览器中输入URL,通过DNS或者HTTPDNS查到URL对应的IP地址
(2)浏览器对请求进行打包,对于普通请求使用HTTP协议,目前推荐使用HTTPS协议
(3)上述过程在应用层完成,通过socket编程交给传输层。传输层有无连接协议UDP和面向连接协议TCP
(4)TCP 协议里面会有两个端口,一个是浏览器监听的端口,一个是电商的服务器监听的端口。操作系统往往通过端口来判断,它得到的包应该给哪个进程。
(5)传输层封装完毕后,浏览器会将包交给操作系统的网络层。网络层的协议是 IP 协议。在 IP 协议里面会有源 IP 地址和目标IP地址。操作系统通过目标IP地址判断是否需要跨域。
(6)跨域需要经过网关,默认情况网关IP是局域网的第一个IP号。在局域网内通信靠ARP协议获得网关的MAC地址。
(7)操作系统将IP包交给MAC层,发送给网关。网关收到包之后根据路由表判断转发的路由器。常用的路由协议包括OSPF和BGP。
(8)到达最后一个局域网时,首先根据IP地址寻找目标服务器,目标服务器回复一个MAC地址,网络包通过这个MAC地址寻找目标服务器。目标服务器发现 MAC 地址对上了,取下 MAC 头来,发送给操作系统的网络层。发现 IP 也对上了,就取下 IP 头。IP 头里会写上一层封装的是 TCP 协议,然后将其交给传输层,即TCP 层。对于收到的每个包,都会有一个回复的包说明收到了。