昨天我们发布了关于一文讲弄懂什么是vlan、三层交换机、网关、子网掩码,有很多朋友问到关于网络通信的原理,今天我们这一篇文章,算是对昨天文章进行一个补充。

首先我们要访问互联网,必须自己电脑上面有ip地址、子网掩码、网关、dns,这四样缺一不可。

有了这四样,我们才具有访问网络的基本条件。

那么如何访问网络呢?完成网络通信呢?这里面我们举二个例子,就可以了解清楚了。

一、浏览器访问一个网页的通信过程

假设我们需要打开弱电行业网官方网站,域名为www.rdzxw.com。

第一步:域名解析,快速定位目标地址

互联网的通信是通过ip地址的,域名只是一个代号。

我们知道了域名,但是不知道ip地址,所以打开浏览器,输入弱电行业网域名www.rdzxw.com,浏览器会使用DNS协议。

DNS协议中,先向本地DNS服务器寻找,一般是路由器,希望从本地DNS服务器那里得到主机名对应的IP,能得到就得到,得不到还得向更高层次的DNS服务器求助,直到解析出主机名对应的IP。

找到后,就告诉我们弱电行业网的IP地址是172.194.72.104。于是,我们知道了IP地址。

第二步:打包报文,让对方了解你的请求

在获到ip地址后,浏览器将你访问弱电行业网的请求打包成http报文,然后将请求报文与弱电行业网的服务器ip地址发送给一个叫的tcp进程。

tcp是啥呢?我们常看到是TCP/IP协议,也就是传输控制协议,干的是相当于数据传输管理员的工作,有一套控制着数据的传输与接收的标准,过了他这关,你才能传输。

第三步:http触发tcp三次握手,建立基本信任

当tcp接收到发来的ip地址与服务器的访问请求时,就感觉很突然,这个请求安不安全?靠不靠谱,于是就需要验证下,怎么验证呢?建立三次握手。

于是tcp提供一条安全的通道,你俩先建立基本的熟悉与连接,互相勾引下。

于是就:

第一次握手:用户——>服务器:弱电行业网,在吗,我想访问你,听到请回答。

第二次握手:服务器——>用户:老铁,在的,可以访问,你听得到我吗?

第三次握手:用户——>服务器:好的,我也听得到你,那我就访问你了。

其实过程就是相当于,你要登门拜访一个人,你得先在电话里至少要交流这三个回合,才能确定你可以去拜访他。

第四步:tcp传输http,正式建立连接

在经过了三次握手,tcp感受知道你俩的关系后,知道你是弱电行业网粉丝,于是就帮你们建立连接。

首先tcp正式将你请求打包一个ip包,里面包括你请求的ip地址与一个加密序列号,假设序列号为3567,发送给弱电行业网的服务器。

然后服务器收到请求的ip包后,也回复给用户一个ip包,告诉你,我收到了你的请求了,你请求访问的ip地址是对的,也收到序列号了。

最后,双方都确认后,就开始传输网页了。

第五步:网页传给用户

所有的都商量好了, 弱电行业网服务器开始把自己的主页内容,也就是网页内容传给用户,也就是下图内容,这个就是我们最终所看到的网页。

二、vlan间的通信原理

vlan是我们网络中最常见,关于vlan的通信是如何实现的呢?了解vlan的通信原理,有助于我们更好使用vlan。

第一种:同一个vlan的通信

交换机通过对各端口所连计算机MAC地址的学习,生成如下的MAC地址列表。

那么计算机A与同一VLAN内的计算机B之间通信如何进行通信呢?

计算机A发出ARP请求信息,请求解析B的MAC地址。

交换机收到数据帧后,检索MAC地址列表中与收信端口同属一个VLAN的表项。结果发现,计算机B连接在端口2上,于是交换机将数据帧转发给端口2,最终计算机B收到该帧。收发信双方同属一个VLAN之内的通信,一切处理均在交换机内完成,原理比较简单。

这里简单补充下,什么是arp?

ARP就是地址解析协议,可以利用ip地址找到网卡的物理地址。

第二种:不同vlan间如何完成通信

接下来是这一讲的核心内容,不同VLAN间的通信。不同vlan间的通信就需要有路由功能,一般我们是三层交换机。

让我们来看下一下计算机A与计算机C之间通信时的情况。

红色是VLAN1,计算机A,网络地址为192.168.1.0/24。

蓝色是VLAN2,计算机B,网络地址为192.168.2.0/24。

第一步:判断计算机A与计算机B是否在同一个vlan中

计算机A将自己的子网掩码与计算机C的ip地址进行&运算后,发现这他们不在同一个vlan,那么如何实现通信呢?

第二步:获到路由器的mac地址后,封装数据包

在确定计算机A与计算机C不在同一个vlan后,计算机A因此会向设定的默认网关转发数据包。在发送数据帧之前,计算机A需要先用ARP获取路由器的MAC地址。

然后计算机A封装好自己的IP地址和MAC地址,同时也封装好目标主机B的IP地址和路由器的MAC地址,封装成数据包。如图数据①。

第三步:数据包发送给路由模块,表明身份

接下来就是按图中发送往计算机C去的数据包。

交换机通过检索MAC地址列表后,经由内部汇聚链接,将数据包转发给路由模块。在通过内部汇聚链路时,数据包被附加了属于红色VLAN1的标识,如图中数据包②。

也就是交换机的路由知道了,这是vlan1发来的数据,这步就是将主机A的身份进行识别,打个标签,他是vlan的主机。

第四步:告诉交换机路由模块自己意图

接着,根据路由器内部的路由表,判断该向哪里中继。

因为目标网络192.168.2.0/24是直连路由器的网络、且对应蓝色VLAN2;因此,接下来就会从蓝色VLAN接口经由内部汇聚链路转发回交换机。在通过汇聚链路时,这次数据包被附加上属于蓝色VLAN2的识别信息,这时,数据包的目标MAC地址被改写成计算机C的目标地址,如图数据包③。

第五步:实现通信

交换机收到这个帧后,检索蓝色VLAN2的MAC地址列表,确认需要将它转发给端口3。由于端口3是通常的访问链接,因此转发前会先将VLAN识别信息去除(如图数据包④)。最终,计算机C成功地收到交换机转发来的数据。

在vlan2用计算机名访问,计算机是如何访问一个网页的?vlan间如何实现通信?相关推荐

  1. 禁止更改计算机名_计算机改名、加域脚本集合

    windows计算机改名.改密码.设置ip.加域脚本集合 今天和大家分享一下,如何将前面的改名加域整合在一起,根据选择执行对应的命令. 新建txt文档,输入一下代码,另存为"自动加域脚本.b ...

  2. ad用户如何和计算机名对应,计算机加域和AD里相应对象的问题

    环境:win 2008 r2 配置域,域中客户端通过mdt 2010 + WDS分发系统, 遇到如下问题,想咨询到底是什么原因引起: 1.计算机A加域,在AD中有计算机对象A,假如A出现问题需重装,我 ...

  3. sql 无法更改计算机名,更改计算机名称和全名后,电脑显示SQL Server没法找到默认实例...

    方法如下: 重新启动计算机,然后系统会给出一个出错信息:"安装文件被破坏,或者未知的包标识".看起来很吓人.但实际上你只需要重新运行SQL Server的安装程序,会有提示&quo ...

  4. w10系统无法访问xp计算机名,解决winxp系统无法访问win10系统共享资源的方法

    如今我们的电脑win7和win10可以正常互访共享资源,win10也可以直接访问winxp共享的资源,但是winxp系统却无法直接进访问win10系统共享的资源下面是学习啦小编为大家整理的关于解决wi ...

  5. w10系统无法访问xp计算机名,xp系统用户无法访问win10电脑上共享资源的解决方法...

    虽然微软已经发布了win10正式版,但是很多用户因为某些原因仍然无法放弃xp系统.不过,最近有一位XP系统用户反馈想通过局域网访问Windows10电脑上的共享资源,可是遇到了无法正常访问的问题,这是 ...

  6. win10访问不了局域网计算机名,Win10正式版无法访问局域网电脑怎么办

    Win10正式版无法通过网上邻居访问局域网其它电脑该如何解决呢?升级到Win10正式版系统后,打开"网络"后找不到其它电脑,导致此类情况产生的重要原因是电脑未开启"文件和 ...

  7. sql server management studio 修改计算机名_计算机毕业设计之SpringBoot+ES搜房网

    一.核心技术 1.ElasticSearch+MySQL+Kafka实现站内搜索引擎 2.ElasticSearch+百度地图实现地图找房功能 3.基础核心框架=SpringBoot 4.数据库的常青 ...

  8. 服务器ip 计算机名,服务器计算机名称或者ip地址

    弹性云服务器 ECS 弹性云服务器(Elastic Cloud Server)是一种可随时自助获取.可弹性伸缩的云服务器,帮助用户打造可靠.安全.灵活.高效的应用环境,确保服务持久稳定运行,提升运维效 ...

  9. 易语言Linux编写网页访问,用易语言做一个网页post采集和登录

    [Erlang] 纯文本查看 复制代码.版本 2 .子程序 功能_访问_, 文本型, , 本子程序由fd插件生成 .局部变量 网址, 文本型 .局部变量 方式, 整数型 .局部变量 结果, 文本型 . ...

最新文章

  1. LLVM笔记(1) - TableGen
  2. android xml 文件里面的宽度Match_Parent 被 替换成了wrap_content
  3. 1091 线段的重叠
  4. python中torch模块下载,Python qtorch包_程序模块 - PyPI - Python中文网
  5. golang error类型 简介
  6. JFreeChart的简单图表的制作------柱形图
  7. 后盾网lavarel视频项目---lavarel用户认证实例
  8. Grpc C# 入门
  9. 计算机网络知识点总结(第六版,谢希仁)
  10. 实现runable接口创建线程
  11. 硬件:如何选购适合自己的显示器
  12. 【kali】kali换了root权限后无法打开firefox浏览器
  13. 利用ros3djs接收pointcloud2在web端显示
  14. python 连接 oracle 循环,4.使用cx_Oracle连接Oracle(高级篇)
  15. 阿里巴巴官方最新Redis开发规范!
  16. G.8032协议 ERPS
  17. 百度网盘正版免费扩容教程
  18. ABAQUS地应力平衡方法详解
  19. 高级JAVA工程师的岗位职责,岗位要求
  20. 深耕企业组网 H3C企业主网交换机评测

热门文章

  1. git 多用户多仓库配置
  2. 1001 A+B Format (20 分)
  3. 接口测试学习——操作MySQL
  4. 使用 ExecuteMultiple 提高批量数据加载的性能
  5. 腾讯或联姻优酷,微信嫁女模式引发互联网通婚潮流
  6. 同步,异步,多线程,你怎么看?
  7. 应用市场中包名(package name)的唯一性
  8. C# String.Format格式说明
  9. 三元运算符 在数据绑定中的使用
  10. 【数据结构与算法】数组与链表