《趣谈网络协议》(刘超老师)读后笔记记录 001
第一讲 为什么要学习网络协议
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。通过网络协议,可以使一大片机器互相协作、共同完成一件事。
常见的网络协议以及其所在的层:
知识要点:
1、协议三要素:语法、语义、顺序。
- 语法:一段内容要符合一定的内容和格式。如:括号要成对,某些语言的结束要有分号等。
- 语义:一段内容要代表的某种含义,必须要有意义。如数字减数字是有含义的,数字减字符就没有意义。
- 顺序:先做什么,后做什么。
2、以下单流程为例,查看互联网运行中的网络协议
浏览器输入网址,https://www.kaola.com (此为URL) ,浏览器只知道名字,不知道具体的地点,所以无法访问。于是,采用地址簿去查找,(可以使用一般的地址簿协议DNS去查找,还可以使用另一种更加精确的地址簿查找协议HTTPDNS)。最终,可以找到IP地址:106.114.138.24。
知道目标地址,浏览器打包请求,普通浏览使用HTTP协议,加密传输使用HTTPS协议。(协议里都应包括“买什么和买多少”)。
DNS、HTTP、HTTPS所在层,我们称为应用层,经过应用层封装后,浏览器会将应用层的包交给下一层去完成,通过socket编程来实现。下一层是传输层。传输层有两种协议,一种是无连接的协议UDP,一种是面向连接的协议TCP。对于支付来讲,往往使用TCP协议。所谓的面向连接就是,TCP会保证这个包能够达到目的地。如果不能到达,就会重新发送,直到到达。
TCP协议里面会有两个端口,一个是浏览器监听的端口,一个是电商的服务器监听的端口。操作系统往往通过端口来判断,它得到的包应该给哪个进程。
传输层封装完毕后,浏览器会将包交给操作系统的网络层。网络层的协议是IP协议。在IP协议里面会有源IP地址,即浏览器所在机器的IP地址和目标IP地址,也即电商网站所在服务器的IP地址。
操作系统在知道目标IP地址,就开始想如何根据这个门牌号找到目标机器。操作系统会判断,这个目标IP地址是本地人,还是外地人。如果是本地人,从门牌号就能看出来,但是电商网站不在本地,而在遥远的地方。操作系统知道要离开本地去远方。可以这样类比一下:如果去国外要去海关,去外地就要去网关。而操作系统启动的时候,就会被DHCP协议配置IP地址,以及默认的网关的IP地址192.168.1.1。操作系统如何将IP地址发给网关呢?在本地通信基本靠吼,于是操作系统大吼一声,谁是192.168.1.1啊?网关会回答它,我就是,我的本地地址在村东头。这个本地地址就是MAC地址,而大吼的那一声是ARP协议。



如果过一段时间还是没到,发送端的TCP层会重新发送这个包,还是上面的过程,直到有一天收到平安到达的回复。这个重试绝非你的浏览器重新将下单这个动作重新请求一次。对于浏览器来讲,就发送了一次下单请求,TCP层不断自己闷头重试。除非TCP这一层出了问题,例如连接断了,才轮到浏览器的应用层重新发送下单请求。

如何告诉相关的进程呢?往往通过RPC调用,即远程过程调用的方式来实现。远程过程调用就是当告诉管理订单进程的时候,接待员不用关心中间的网络互连问题,会由RPC框架统一处理。RPC框架有很多种,有基于HTTP协议放在HTTP的报文里面的,有直接封装在TCP报文里面的。
当接待员发现相应的部门都处理完毕,就回复一个HTTPS的包,告知下单成功。这个HTTPS的包,会像来的时候一样,经过千难万险到达你的个人电脑,最终进入浏览器,显示支付成功。

更多精彩