案例,淘宝买东西

DNS

域名的作用其实就是相对ip地址来说更好记忆和识别,DNS就是根据域名解析出ip

一次请求,DNS解析的过程

1.在浏览器输入一个域名,操作系统首先会检查自己的本地hosts文件是否存在这个域名的映射关系,如果有就解析完成

2.如果1没有对应的关系,然后就会去配置的服务器找

3.最后到根DNS服务器去寻找,就算这个DNS不知道IP地址,但是它会告诉你哪一台知道,最后把结果返回(全球只有13台根DNS服务器)

DNS配置

域名-ipv4 A记录

域名-ipv6 AAAA记录

域名-域名 CName

域名-URL URL

域名-文本 TXT

ARP协议

arp在数据传输中起着非常重要的作用,它在数据链路层中起作用

常见问题,数据怎么知道发送的ip地址?

这个问题其实很普通,数据发送的时候是肯定知道对方的ip地址的,只是我们发送数据的时候我们看不见而已,他是发送数据的一个重要的基础
数据怎么知道发送的mac地址?

这个问题就比较高级一点了,我们知道数据传输其实真正起作用的是mac地址,怎么知道对方的mac地址呢,其实这就是arp协议在做的工作

工作过程

分两种,一种是在同一个网段(广播域),还有一种是在不同网段

当数据到达数据链路层层

同一网段

数据链路层的功能就是填源mac和目标mac,其实到这一步计算机就会判断目标ip是不是在一个网段,是的话就去本机的mac表找有没有目标ip的mac地址,没有的话,就把mac地址填FFFFFFFF,发送广播,接收到的机器拿出目标ip地址判断,如果是自己就返回响应

不同网段

如果计算出不是一个网段的,那么目标mac地址就直接填写网关的mac地址,数据发送到网关,mac地址就换成下一站的mac地址,直到找到目标的机器的网段的网关,最后网关发送一个类似上面的包找到目标机器

应用层 DNS,HTTP,HTTPS

1.我们在浏览器输入https://www.taobao.com网址,然后按下回车

2.浏览器并不知道https://www.taobao.com这个URL的具体地点,它会去作为地址簿协议的DNS去查找,最终返回淘宝服务器的IP地址,假如为122.123.34.21

3.浏览器知道了目标地址,就会开始打包它的请求,对于普通的浏览请求,通常会使用HTTP协议,但是对于购物等私密性比较重要的请求,选择了HTTPS加密的协议,给数据加上了HTTP头

4.将请求数据打包,然后交给下一层传输层

传输层

在应用层和传输层之间,抽象出来了一层socket层,socket层相当于把传输层封装了一下,把tcp/ip层复杂的操作抽象成了几个简单的接口提供给应用层使用。

1.数据进入传输层,传输层有两种协议,一种是无连接协议UDP和面向连接的协议TCP,因为TCP是可靠的协议,所以选择了TCP协议,TCP协议里面有两个端口,一个是自己的浏览器端口,还有一个是淘宝应用的端口,于是给数据加上了TCP头

2.传输层数据封装完毕,交给下一层网络层

网络层

1.网络层的协议是IP协议,IP协议中有浏览器的IP和淘宝服务器的IP

2.给数据加上IP头,交给下一层数据链路层

数据链路层

1.既然知道了目的IP地址,就会想如何找到目标机器,通过判断IP地址判断,这台机器是局域网中的还是外网的,如果是外网的话就会去问路由器中的网关。

2.默认的网关的IP地址是192.168.1.1,在局域网中广播的方式,找谁是192.168.1.1,网关就会回答他,并告诉他网关的MAC地址(通过IP找MAC地址的过程就是ARP协议,地址解析协议)

3.既然知道了网关的MAC地址,就给数据加上了MAC头,接下来就可以交给物理层传输了

物理层

传输数据

传输过程

1.数据终于从电脑出发了,首先它经过了交换机,交换机,交换机问数据你去哪呀,数据回答,找一个网关的MAC地址,交换机知道了,就告诉他怎么走

2.找到了网关,网关一般是路由器,路由器问数据你去哪呀,数据拿出了淘宝的IP,说,你看,我要去这里,路由器回答说哦,去这里,先去路由器B吧,他会告诉你接下来怎么走的(路由器之间也经常沟通,知道怎么走,这种沟通就是路由协议,有OSPF开放式最短路径优先和BGP边界网关协议)

3.最后终于到了最后一个路由器,路由器就会向某一个网络广播,数据找到交换机问,谁是淘宝服务器,淘宝服务器收到后,回复一个带MAC地址的数据,最后成功找到了淘宝服务器

4.目标服务器发现MAC地址对上了,就脱下MAC头,IP也对上了,脱下了IP头,然后就是TCP头了,把数据交给传输层,由于是TCP协议,每收到一个数据都会告诉发送者,我收到了,不然的话,发送者会一直发送没有响应的数据的。最后根据端口号,把数据交给监听这个端口的进程。

5.终于到达了进程,这时候就剩下一层HTTP头了,通过解析淘宝进程知道发送者要买东西了,于是操作数据库等,最后返回一个响应。

6.最后,发送者的浏览器,弹出了购买成功,他开心的流出了眼泪!

自己学习总结,部分来自极客邦

OSI案例详解+ARP+DNS的更多相关文章

  1. (十八)整合Nacos组件,环境搭建和入门案例详解

    整合Nacos组件,环境搭建和入门案例详解 1.Nacos基础简介 1.1 关键特性 1.2 专业术语解释 1.3 Nacos生态圈 2.SpringBoot整合Nacos 2.1 新建配置 2.2 ...

  2. spring的IOC,DI及案例详解

    一:spring的基本特征 Spring是一个非常活跃的开源框架:它是一个基于Core来架构多层JavaEE系统的框架,它的主要目的是简化企业开发.Spring以一种非侵入式的方式来管理你的代码,Sp ...

  3. 深入浅出 spring-data-elasticsearch - 基本案例详解(三

    『  风云说:能分享自己职位的知识的领导是个好领导. 』运行环境:JDK 7 或 8,Maven 3.0+技术栈:SpringBoot 1.5+, Spring Data Elasticsearch ...

  4. ​ 用一个开发案例详解Oracle临时表

    ​ 用一个开发案例详解Oracle临时表 2016-11-14 bisal ITPUB  一.开发需求  最近有一个开发需求,大致需要先使用主表,或主表和几张子表关联查询出ID(主键)及一些主表字段 ...

  5. http500:服务器内部错误案例详解(服务器代码语法错误或者逻辑错误)

    http500:服务器内部错误案例详解(服务器代码语法错误或者逻辑错误) 一.总结 服务器内部错误可能是服务器中代码运行的时候的语法错误或者逻辑错误 二.http500:服务器内部错误案例详解 只是一 ...

  6. spss进行判别分析步骤_spss判别分析结果解释_spss判别分析案例详解

    spss进行判别分析步骤_spss判别分析结果解释_spss判别分析案例详解 1.Discriminant Analysis判别分析主对话框 如图 1-1 所示 图 1-1 Discriminant ...

  7. str_replace函数的使用规则和案例详解

    str_replace函数的使用规则和案例详解 str_replace函数的简单调用: <?php $str = '苹果很好吃.'; //请将变量$str中的苹果替换成香蕉 $strg = st ...

  8. 第7.20节 案例详解:Python抽象类之真实子类

    第7.20节 案例详解:Python抽象类之真实子类 上节介绍了Python抽象基类相关概念,并介绍了抽象基类实现真实子类的步骤和语法,本节结合一个案例进一步详细介绍. 一.    案例说明 本节定义 ...

  9. 第7.18节 案例详解:Python类中装饰器@staticmethod定义的静态方法

    第7.18节 案例详解:Python类中装饰器@staticmethod定义的静态方法 上节介绍了Python中类的静态方法,本节将结合案例详细说明相关内容. 一.    案例说明 本节定义了类Sta ...

随机推荐

  1. 【java基础】接口是否能有实现类?

    接口是否能有实现方法 我的回答: 当然可以 java8以后就允许接口有实现方法: default修饰的方法 static修饰的方法 /** * 能用lambda的情况,接口里面只有一个未实现的方法 * ...

  2. 知否知否,VS Code 不止开源

    VS Code, 昨夜始于“开源”,如今“开源”深处渡. 读者看到这句话,也许会有疑惑,为什么两个“开源”都加上了双引号? 其实是笔者有意为之,因为这个两个“开源”的意义有着很大的差别,第一个“开源” ...

  3. CMMS系统中的物联监测

    有条件的设备物联后,可时实查看设备运行状态,如发现异常,可提前干预.

  4. js中关于执行的顺序及变量存放方式的一点记录

    Markdown在线编辑器 - www.MdEditor.com 1 首先关于数据类型,有基本数据类型,和引用数据类型 基本数据类型有:number,string,boolean等:引用数据类型一般指 ...

  5. JQuery弹出菜单时禁止页面(body)滚动

    最近在做手机端的弹出菜单,但是菜单弹出来后滑动手机屏幕的话页面滚动总是会将菜单滑上去,体验非常不好,所以查了一下弹出菜单时禁止页面滚动的方法,整理如下: 方法一:弹出菜单时给body和html添加一个 ...

  6. MBR分区表的备份与还原

    MBR分区表的备份与还原 MBR分区的存储 从下图可以看出,MBR分区前446字节是boot loader:接下来64字节是分区表:再然后就是三个主分区加一个拓展分区. 一.备份分区表,要跳过前446 ...

  7. [视频演示].NET Core开发的iNeuOS物联网平台,实现从设备&PLC、云平台、移动APP数据链路闭环

    目       录 1.      概述... 1 2.      登陆信息... 2 3.      设备驱动... 3 4.      组态建模... 3 5.      手机APP. 5 6.  ...

  8. 《计算机网络 自顶向下方法》 第3章 运输层 Part1

    由于个人精力和智商有限,又喜欢想太多.钻牛角尖,导致学习系统性知识很痛苦,尝试改变学习方式,慢慢摸索 现在看到 rdt2.0,又有点看不下去 现在的想法: 要有个目标,且有截止时间(作业模式.考试模式 ...

  9. 大宇java面试系列(一):jvm垃圾回收

    1. 说一下 JVM 有哪些垃圾回收算法? 标记-清除算法:标记无用对象,然后进行清除回收.缺点:效率不高,无法清除垃圾碎片. 标记-整理算法:标记无用对象,让所有存活的对象都向一端移动,然后直接清除 ...

  10. Java设计模式(20):命令模式

    本文源码:GitHub·点这里 || GitEE·点这里 一.生活场景 1.场景描述 智能电脑的品牌越来越多,由此诞生了一款电脑控制的APP,万能遥控器,用户在使用遥控器的时候,可以切换为自家电视的品 ...