交换机通讯原理(举例)
2014-02-19 10:54
302 查看
问1:一台二层交换机,连接两个同网段的PC(A和B)A向B发送数据包其中通讯的数据包中有哪些字段,有没有师傅能帮我讲解一下。从A到B的数据包封装过程?
答:由于局域网内的网络流通不是根据IP地址进行,而是按照MAC地址进行传输。假设你的a和b分别设置的ip是192.168.1.3和192.168.1.2。比如1.3想和1.2通讯,那么1.3在第三层ip的时候运算发现,1.2和它是同一个网段内的。那么,1.3就会直接发送一个arp广播查询1.2的mac,所有在此网段内的pc都会看到,其他pc收到广播发现不是找自己的,就丢弃,而1.2收到广播,就会将自己的mac发送给1.3,然后1.3就用收到的mac封装完成帧,然后就发出去。到了交换机,然后交换机就根据mac来转发数据了。交换机刚开机的时候是没有mac表的,1.3发了广播,广播帧中包含了1.3的mac,然后交换机就会学习到了1.3的mac是对应某个端口的,然后1.2回应1.3的arp,那么1.2的mac也被交换机学习到了,mac表上又有了1.2的mac对应的端口。然后么1.3给1.2发送数据帧的时候,到了交换机,交换机查看目的mac,然后查表,看对应哪个端口,然后就从那个端口转发出去。原理就是这样的。
问2:如果a和b不在同一网段,而且又只用二层交换机相连。那么这个通讯过程是如何的在哪里终端了通讯?谢大哥
答:看你设置了,如果你a上设置了默认网关,那么数据就可以封装成功发到网关。如果a上没有设置网关,那么直接无法封装数据帧。
摘自:百度知道
相关文章推荐
- 嵌入式Linux开发
- 程序员的《权利法案》
- XSHELL和XFTP,亲兄弟啊。
- ffmpeg教程五 —— 使用举例
- 计算个人所得税程序
- Ubuntu下Hadoop MapReduce集群搭建以及程序运行
- spring cvc-elt.1: Cannot find the declaration of element 'beans'解决办法
- Adapter中使用notifyDataSetChanged 与notifyDataSetInvalidated无效
- [Android开发] 打包时提示Proguard returned with error code 1
- 程序性能调优之 怎样使用gprof和oprofile来分析 linux程序的性能(每个函数的调用次数与耗时)
- Hibernate -- Session的主键生成策略
- 给图片局部区域加链接
- MFC应用程序调用顺序分析
- angular + easyui 做界面验证
- 欢迎进入Flask大型教程项目!
- Hibernate -- Session的主键生成策略
- 智者遇事求心,庸者遇事求境
- 标签开案例
- Linux下常用命令
- [置顶] Flex Builder3 安装SVN插件