OSI案例详解+ARP+DNS
案例,淘宝买东西

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的更多相关文章
- (十八)整合Nacos组件,环境搭建和入门案例详解
整合Nacos组件,环境搭建和入门案例详解 1.Nacos基础简介 1.1 关键特性 1.2 专业术语解释 1.3 Nacos生态圈 2.SpringBoot整合Nacos 2.1 新建配置 2.2 ...
- spring的IOC,DI及案例详解
一:spring的基本特征 Spring是一个非常活跃的开源框架:它是一个基于Core来架构多层JavaEE系统的框架,它的主要目的是简化企业开发.Spring以一种非侵入式的方式来管理你的代码,Sp ...
- 深入浅出 spring-data-elasticsearch - 基本案例详解(三
『 风云说:能分享自己职位的知识的领导是个好领导. 』运行环境:JDK 7 或 8,Maven 3.0+技术栈:SpringBoot 1.5+, Spring Data Elasticsearch ...
- 用一个开发案例详解Oracle临时表
用一个开发案例详解Oracle临时表 2016-11-14 bisal ITPUB  一.开发需求 最近有一个开发需求,大致需要先使用主表,或主表和几张子表关联查询出ID(主键)及一些主表字段 ...
- http500:服务器内部错误案例详解(服务器代码语法错误或者逻辑错误)
http500:服务器内部错误案例详解(服务器代码语法错误或者逻辑错误) 一.总结 服务器内部错误可能是服务器中代码运行的时候的语法错误或者逻辑错误 二.http500:服务器内部错误案例详解 只是一 ...
- spss进行判别分析步骤_spss判别分析结果解释_spss判别分析案例详解
spss进行判别分析步骤_spss判别分析结果解释_spss判别分析案例详解 1.Discriminant Analysis判别分析主对话框 如图 1-1 所示 图 1-1 Discriminant ...
- str_replace函数的使用规则和案例详解
str_replace函数的使用规则和案例详解 str_replace函数的简单调用: <?php $str = '苹果很好吃.'; //请将变量$str中的苹果替换成香蕉 $strg = st ...
- 第7.20节 案例详解:Python抽象类之真实子类
第7.20节 案例详解:Python抽象类之真实子类 上节介绍了Python抽象基类相关概念,并介绍了抽象基类实现真实子类的步骤和语法,本节结合一个案例进一步详细介绍. 一. 案例说明 本节定义 ...
- 第7.18节 案例详解:Python类中装饰器@staticmethod定义的静态方法
第7.18节 案例详解:Python类中装饰器@staticmethod定义的静态方法 上节介绍了Python中类的静态方法,本节将结合案例详细说明相关内容. 一. 案例说明 本节定义了类Sta ...
随机推荐
- .NET项目中实现多工程文件共用的方法
一处开发,多处同步编辑使用,并且发布时各个项目均可独立 一.直接编辑项目工程文件 .csproj 具体实现为:编辑 .csproj 文件,在<ItemGroup>中添加新的 <Con ...
- IndentationError: unindent does not match any outer indentation level笔记
执行一个Python脚本的时候,报"IndentationError: unindent does not match any outer indentation level" 错 ...
- 用selenium实现打码平台
注:本文以 人人网登陆 为例 import time from selenium import webdriver # 准备一个名为yudama的py文件 from yudama import in ...
- 基于xposed Hook框架实现个人免签支付方案
我的个人网站如何实现支付功能? 想必很多程序员都有过想开发一个自己的网站来获得一些额外的收入,但做这件事会遇到支付这个问题.目前个人网站是无法实现支付功能的. 今天我就给大家分享一下我的实现方案:&l ...
- 测试面试题集-测试用例设计:登录、购物车、QQ收藏表情、转账、充值、提现
以下内容首发于微信公众号[ITester软件测试小栈]: 测试面试题集-2.测试用例设计 大家好 我是coco小锦鲤 上周五给大家分享了测试基础理论题 这个周五给大家分享测试用例设计题 测试用例的考察 ...
- N42期-qq-林友埙-第一周作业
1.按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别. 基于Dpkg (Debian系) 商业发行版 o Ubuntu,一个非常流行的桌面发行版. 社区发行版 o Debian,一个强烈 ...
- 使用Typescript重构axios(二十六)——添加HTTP授权auth属性
0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...
- 华为OceanConnect物联网平台概念全景 | 我的物联网成长记
作者 | 我是卤蛋 华为云OceanConnect IoT云服务包括应用管理.设备管理.系统管理等能力,实现统一安全的网络接入.各种终端的灵活适配.海量数据的采集分析,从而实现新价值的创造. 华为云O ...
- 201871010114-李岩松《面向对象程序设计(java)》第十一周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...
- 关于设备与canvas画不出来的解决办法
连续四天解决一个在三星手机上面画canvas的倒计时饼图不出来的问题,困惑了很久,用了很多办法,甚至重写了那个方法,还是没有解决,大神给的思路是给父级加 "overflow: visible ...