网络协议复习笔记(一)举个例子说说网络

以一个例子来回顾:

应用层:

购物的时候,输入购物网站网易考拉https://www.kaola.com。通过地址簿协议DNS来查找ip,或者用更精准的地址簿查找协议HTTPDNS。得到ip地址:106.114.138.24

知道目标地址后,浏览器开始打包请求。对于普通的请求往往用HTTP协议,对于购物的请求需要加密,使用HTTPS协议。

传输层:

浏览器将应用层的交给下一层去完成,通过socket编程来实现。传输层两种协议,无连接的UDP面向连接的TCP。对于支付往往使用TCP协议,所谓的面向连接就是,TCP会保证这个包能够到达目的地,如若不能到达,就会重新发送,直至到达。

TCP里面有两个端口,一个是浏览器监听的端口,一个是电商的服务器监听的端口。操作系统通过端口来判断,得到的包应该给那个进程。

网络层:

传输层封装完毕后,就将包交给操作系统的网络层。网络层协议是IP协议。IP协议里面会有源IP地址,即浏览器所在机器的IP地址和目标IP地址,即电商网站所在服务器 的IP地址。

知道目标IP之后,就会想怎么去,去国外有海关,去外面的网络就有网关。操作系统在启动的时候就会被DHCP协议配置IP地址,以及默认的网关IP地址192.168.1.1。

操作系统在本地大吼一声(ARP协议)问谁是网关,因为要把IP发给网关。于是网关会回答他的本地地址(MAC地址)。

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

MAC层

由于那个包里有MAC地址,于是它能够到达网关。网关收到包后,会判断下一步该怎么走,网关往往是个路由器。到某个IP地址该怎么走,叫做路由表。路由器有点像城关,每个城关连着两个国家,每个国家相当于一个局域网,在每个国家内部都可以通过本地的地址MAC进行通信。

跨越城关(路由器)时就需要拿出IP头来,里面写着老家(源IP地址)和目的地(目的IP地址)。到哪里怎么走,这种沟通的协议称为路由协议,常用的有OSPF和BGP。

当网络知道下一步去哪个城关,还要使用国家(局域网)内部的MAC地址,通过下一个城关的MAC地址,找到下个城关,然后再问下一步怎么走,一直走出最后一个城关。

到了最后一个城关,这个城关知道目的IP,于是对着这个国家大吼一声谁是目标IP,目标服务器就会回复一个MAC地址。网络包过关后,通过MAC地址就可以找到目标服务器。

目标服务器发现MAC地址对上了,就取下MAC头,发送给操作系统的网络层。然后在网络层发现IP也对上,就取下IP头。IP头里会写上层封装的时TCP协议,于是就发给传输层,即TCP层。

在这一层,对于收到的每个包,都会有一个回复的包说明收到了,这个回复的包不是这次下单请求的结果(例如下单是否成功,扣了多少钱等),而仅仅是TCP层的一个说明,即收到之后的回复。这个包也会沿着原路返回,报个平安。

如果过一段时间没收到报平安,老家的TCP会回重新发送这个包,直到某天收到平安的回复。除非TCP这一层出了问题,才会轮到浏览器的应用层重新发送下单请求。

当报了平安后(包平安到达TCP层),TCP头中有目标端口号,通过这个端口号,可以找到电商网站的进程正在监听的这个端口号。

电商网站的进程得到HTTP请求的内容,往往最初接待请求的这个Tomcat只是个接待员,负责统筹处理这个请求。比如,这个接待员要告诉专门管理订单的进程,登记要买的某个商品,要告诉支付的进程应该付多少钱等等。

如何告诉相关进程,通过RPC调用,即远程过程调用的方式来实现。

当接待员发现相应的部门都处理完毕,就回复一个HTTPS的包,告知下单成功。这个HTTPS的包会像来的时候一样,返回你的个人电脑,最终进入浏览器,显示支付成功。

为什么有了路由表还需要MAC地址?(为什么明明知道目标IP还需要MAC)

因为IP地址是网络供应商提供的,比方说一下线再上线可能就会变,类似于住址的东西。而MAC地址和网卡一一对应,是类似于身份证的东西,所以需要先确认MAC地址对不对(所以包里包含了目标的MAC)。所以最后采用IP+MAC通信的方式。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值