Packet Tracer入门

一,交换机概况

  交换机工作在OSI(开放系统互联参考模型)数据链路层,接入交换机的任意两个网络节点(网络设备)都是独享带宽的。

二,交换机原理

  交换机拥有一条很高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背部总线上,控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口,目的MAC若不存在,广播到所有的端口,接收端口回应后交换机会“学习”新的MAC地址,并把它添加入内部MAC地址表中。

三,交换方式

  (1)存储转发:交换机收到数据帧将其存储在缓存区,分析数据帧,获取与目的地址相关的信息(这个过程中会执行错误检查),并从合适的端口把帧数据发送出去。
  (2)直通转发:交换机收到数据后立即处理数据(不能进行错误检查),即使传输没有完成。交换机只读取帧数据的MAC信息,方便确定数据从哪个端口出去。
  (3)碎片分离:这是介于前两者之间的一种解决方案。它检查数据包的长度是否够64个字节,如果小于64字节,说明是假包,则丢弃该包;如果大于64字节,则发送该包。这种方式也不提供数据校验。它的数据处理速度比存储转发方式快,但比直通式慢。

四、二层、三层、四层交换机的区别

  二层交换机:二层交换机工作在7层模型中的数据链路层,分析数据包中的 MAC信息,根据MAC信息转发数据。如果没有目的地址的MAC信息,交换机将广播获取目的MAC地址记录在MAC表,方便下次转发数据(这就是交换机的学习功能)。
  三层交换机:在传统二层交换机的基础上采用了网络层的转发技术。我们知道不同网络的主机通信一般需要路由器转发,如果只是将一个局域网划分成多个子网,子网间通信采用路由器,那这些子网间的通信效率就会因为路由器的接口低速,复杂而大大降低。这时就需要三层交换机中的IP分析功能,将不同网段的主机快速链接起来。他的快速源于他借用了二层的高宽带背部总线。
  四层交换机:它在转发数据的时候不只分析数据的MAC,IP,还需要分析数据的端口号(port)。

转自:http://blog.csdn.net/lianghe_work/article/details/44625865

Linux网络应用编程之交换机概述的更多相关文章

  1. Linux高级编程--08.线程概述

    线程 有的时候,我们需要在一个基础中同时运行多个控制流程.例如:一个图形界面的下载软件,在处理下载任务的同时,还必须响应界面的对任务的停止,删除等控制操作.这个时候就需要用到线程来实现并发操作. 和信 ...

  2. Linux高级编程--06.进程概述

    进程控制块 在Linux中,每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息,它通常包含如下信息: 进程id.系统中每个进程有唯一的id,在C语言中用pid_t类型表示,其实就是一个非 ...

  3. Linux网络应用编程之集线器(Packet Tracer仿真)

    Packet Tracer入门 一,集线器概况 对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上. 工作于OSI(开放式系统互联参考模型)的最底层(物理层) ...

  4. linux系统编程(一)概述

    glibc库封装了linux系统调用,并提供c语言接口 所以学习linux系统编程,主要参考glibc库系统调用相关api 一.进程控制: fork 创建一个新进程 clone 按指定条件创建子进程 ...

  5. 很全的linux网络编程技巧

    本文转载自:http://www.cnblogs.com/jfyl1573/p/6476607.html 1. LINUX网络编程基础知识 1 1.1. TCP/IP协议概述 1 1.2. OSI参考 ...

  6. Linux socket 编程中存在的五个隐患

    前言:         Socket API 是网络应用程序开发中实际应用的标准 API.尽管该 API 简单,但是   开发新手可能会经历一些常见的问题.本文识别一些最常见的隐患并向您显示如何避免它 ...

  7. Linux 系统编程 学习:06-基于socket的网络编程1:有关概念

    Linux 系统编程 学习:006-基于socket的网络编程1:有关概念 背景 上一讲 进程间通信:System V IPC(2)中,我们介绍了System IPC中关于信号量的概念,以及如何使用. ...

  8. linux进程编程:子进程创建及执行函数简介

    linux进程编程:子进程创建及执行函数简介 子进程创建及执行函数有三个: (1)fork();(2)exec();(3)system();    下面分别做详细介绍.(1)fork()    函数定 ...

  9. Linux系统编程@进程通信(一)

    进程间通信概述 需要进程通信的原因: 数据传输 资源共享 通知事件 进程控制 Linux进程间通信(IPC)发展由来 Unix进程间通信 基于System V进程间通信(System V:UNIX系统 ...

随机推荐

  1. 数据流模型、Storm数据流模型

  2. common

    lexical_cast 提供string2int, int2string, #define(...) 可变宏:-和__VA_ARGS__  宏定义中参数列表的最后一个参数为省略号(三个英文句号,省略 ...

  3. Atom实例

    示例[编辑] 一个Atom文档: <?xml version="1.0" encoding="utf-8"?> <feed xmlns=&qu ...

  4. ARR状态监控脚本

    ##################################################################################### # THIS IS SAMP ...

  5. Lua开发环境搭建(Mac)

    1.下载最新版的Lua,点击下载 2.下载完成后,解压压缩包,打开终端,cd进入Lua解压目录下 3. 在终端输入“make macosx”,编译lua 4.编译完成后,在终端输入”make test ...

  6. JSP 笔记

    <%@ page contentType="text/html;charset=UTF-8"%> <!-- 字符编码为utf-8,不然会乱码.... --> ...

  7. Hadoop Standalone and Pseudo Mode

    . Required Softwareyum install openssh-server rsync java-1.8.0-openjdk-devel . Setup Hostname/etc/ho ...

  8. JUnit4简要说明

    单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证. 开发者编写一小段代码,用于检验被测代码的一个很小的.很明确的功能是否正确. 通常而言,一个单元测试是用于判断某个特定 ...

  9. spring quartz的触发器CrontriggerBean配置

    每一个quartz的CronTrigger表达式分为七个子表达式,每个子表达式之间用空号分割,分别是:秒 分 时 日 月 星期 年.其中年不是必须的,所以CronTrigger最少有六个子表达式. 每 ...

  10. 获取当前时间日期并格式化--JS

    工作当中,总是遇到很多觉得不错的JS脚本.现在觉得还是找个地方记录下来,以后可以随时查看. /** *获取当前时间日期并格式化 */ function getNowDate(){ var mydate ...