您的位置:首页 > 理论基础 > 计算机网络

为什么要学习网络协议?

2018-08-01 00:58 127 查看

****************(本文为极客时间app刘超的《趣谈网络协议》学习笔记)

《圣经》通天塔故事:上帝为了阻止人类联合,让人类说不同的语言,人类无法沟通,达不成“协议”,通天塔计划失败。互联网世界有统一的语言,所以连接在一起。

计算机中输入的文字,计算机能读懂,就是人类与计算机沟通的协议,只有通过这种协议,计算机才能知道我们想要他做什么。

协议三要素:

1.语法:一段内容符合一定的规则和格式;

2.语义:一段内容要代表某种含义;

3.顺序:先干啥,后干啥。

 

网络协议:

只教一台机器做什么不够,所以需要网络协议,让一大片机器互相协作,共同完成一件事情。

 

常见网络协议及分层:

应用层:DHCP  HTTP  HTTPS  RTMP  P2P  DNS  GTP  RPC

传输层:UDP  TCP

网络层:ICMP  IP  OSPF  BGP  IPSec  GRE

(MAC)链路层:ARP  VLAN  STP

物理层:网络跳线

 

 

一个下单过程,看看用了什么网络协议:

浏览器输入http://www.taobao.com,这是一个url,浏览器并不知道地址,于是通过地址薄协议DNS或者HTTPDNS(更加精确)查找,最终会得到一个互联网世界门牌号IP ;知道目标地址后,使用HTTP协议或者HTTPS(加密)打包请求,说明买什么和买多少。

通过以上应用层封装后,通过socket编程交给传输层

TCP(面向连接,有两个端口:浏览器监听端口和电商服务器端口,通过端口判断得到的包给哪个进程)或UDP

传输层封装完成后,浏览器将包交给网络层

网络层协议是IP协议(里面会有源ip地址和目标ip地址),通过目标ip,想要找到目标机器,操作系统要判断目标IP是本地人还是外地,知道是在外地,就需要去网关,而操作系统启动时,就会被DHCP协议配置IP地址,以及默认的网关的ip地址192.168.1.1。操作系统会问谁是192.168.1.1,网关会答应我就是,我的本地地址在村东头。这个本地地址就是MAC地址,问的那一下就是ARP协议

于是操作系统将IP包交给了下一层,即MAC层

网关再将包发出去。因为包里有MAC地址,因而能到达网关。网关收到包后,会判断怎么走。网关往往是一个路由器,到某个IP地址怎么走,叫做路由表。路由器类似路过城关,每个城关连接两个国家,每个国家相当于一个局域网,国家内部,都可以通过本地地址MAC进行通信。跨越城关,就需要拿出IP头,问怎么走。城关知道怎么走,因为城关之间会通过路由协议沟通,常见的有OSPFBGP。当找到最后的城关,最后的城关会对这个国家问谁是目标IP,目标服务器就会回复一个MAC地址。网络包过关后,通过这个MAC地址找到目标服务器。

目标服务器发现MAC地址对上了,取下MAC头,发给网络层。IP对上了,就取下IP头。IP头上会写上一层封装是TCP协议,于是交给传输层。TCP层中会对每个收到的包沿着来路回复收到。

网络层平安到达TCP层后,TCP头有目标端口,通过这个端口,可以找到电商网站程序正在监听这个端口,假如是一个tomcat,将这个包发给电商网站,当得到HTTP请求内容后,知道了买什么,买多少,需要通知相关进程进行行动,此时通过RPC远程过程调用来通知相关进程。处理完后,回复一个HTTPS的包告知下单成功,沿路返回到个人电脑,进入浏览器。

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: