WiFi、WinMax、无线上网卡、无线路由器、无线AP之间区别

很多朋友都接触过WIFI、无线上网等等这些概念吧,尤其是近几年,关于无线的通讯名词时越来越多,正规的山寨的都有,很多朋友对这些概念不太明白,本文就概要介绍一下这些名词,当然限于篇幅,无法在技术上过多介绍,只求形象点让大家明白各自的用途用法就可以了。如幸偶遇信手拈来、烂熟于胸之老鸟请尽管拍砖,天缘俯首领教。

一、无线上网卡

无线上网卡现在也可叫3G上网卡,很多朋友早前都用过手机GPRS(2.5G)、CDMA(3G)上网吧。简单的说无线上网卡实际上就是把手机中间的数据业务协议一块单独提出来然后加上鉴权、接口转换等模块做成一张标准接口的网卡而已,实际上无线上网卡的最重要标志是其工作频率仍然属于移动通信的配置频段,而非WIFI 那样的公共频段。

无线上网卡一般可以直接接到笔记本或插接到台式机上,实现无线上网,当然实际情况还要考虑接口和插槽大小等问题,跟各位的机子配置有关,无线上网卡的接口有PCMCIA接口、USB接口、CF接口等类型,如果接口不对应还可以使用接口转换器转换后插接。

二、无线AP

无线AP(Access Point简称),翻译为“无线访问节点”,它主要是提供无线工作站对有线局域网和从有线局域网对无线工作站的访问,在访问接入点覆盖范围内的无线工作站可以通过它进行相互通信。所以无线AP是无线网和有线网之间沟通的桥梁。

大家常用的是2.4G的无线AP,基本都有AP、Bridge、AP+Bridge、Multi-bridge、Repeater、AP Client(Adapter)、等应用模式,标准协议有IEEE 802.11b/e/g、IEEE 802.3/802.3u等,具体应用模式跟产品特性可能有所增减。无线AP相当于一个无线交换机,接在有线交换机、集线器或路由器上,凡是跟无线AP连接的无线网卡都是通过AP再从路由器那里申请IP。所以无线AP不能直接挂到常见的ADSL MODEM上,中间需要跨接集线器或路由器等网关。这里天缘对几种工作模式给以说明一下:

1、AP模式(ACCESS POINT MODE)就是无线热点模式,是无线AP的默认工作模式,这种AP模式下无线网卡能找到AP,并通过AP接入局域网中,但是别的AP就找不到它了。

2、Bridge模式:AP能与AP连接,有Point to Point、Point to Multi-point两种模式,普通说的Bridge模式是指一Point to Point(一对一桥接),连接两个同网段网络,即无线网桥。

3、Multi-bridge模式,与上面Bridge对应,一般指Point to Multi-point,也就是一对多桥接。

4、AP+Bridge模式,这种模式下的AP,可以与设置相同的AP连接共同组网,也能提供无线访问,本模式可能与Bridge模式、Multi-bridge模式实际使用混合使用。

5、Repeater(无线中继器),也就是空中信号的无线接力,实现信号的中继和放大,扩展覆盖区域。

6、AP Client是无线客户端模式,此模式下AP只与指定的无线热点连接,而且只能接入局域网,不再提供无线访问功能,就相当于一个无线网卡使用。

三、无线路由器

无线路由器相当于单功能的AP与宽带路由器的结合体,除了具有AP的功能外,还具有路由功能,可实现家庭无线网络中的Internet连接共享,实现ADSL和小区宽带的无线共享接入,另外,由于实际的无线路由器也带有普通的有线网口,所以无线路由器还可以把通过它进行无线和有线连接的终端都分配到一个子网,这样子网内的各种设备交换数据就非常方便。单个无线路由器的覆盖范围从几十米到300米左右不等,随环境而定。

无线路由器的实现协议有:IEEE 802.11g、IEEE 802.11b、IEEE 802.11n、IEEE 802.3、IEEE 802.3u、IEEE 802.3x等。

一句话,无线路由器就是AP、路由功能和交换机的集合体,支持有线无线组成同一子网,可直接接上MODEM。具体工作模式可参上文AP工作模式,这些配置模式一般都在路由器的管理界面中可以完成设置。

四、WiFi

Wi-Fi的普通理解就是IEEE802.11协议(当然实际上时不同的),最初只是为无线局域网而设计的,在宽带无线接入使用时存在一些问题,后不断完善更新,现在已经基本成熟。目前广泛使用是802.11g版本协议,最新的802.11n也已有支持。WIFI在实施形式上主要有两种,一是具有定向天线的Wi-Fi,一是具有Mesh网络拓扑结构的Wi-Fi。前者用作解决DSL和DOCSIS的接入问题,但仍受限于距离不能过长。后者解决了覆盖问题,并且Mesh网络拓扑结构较定向天线的结构具有更好可扩展性。这两种 Wi-Fi的部署形式最高可以提供54Mbps的传输速率,覆盖范围可以超过10公里,当然这个速度和距离一般是按照上述的实施形式下计算的,实际普通的热点距离仍然是几十米到三百米不等。

手机的WIFI一般是802.11b协议标准,笔记本上集成的WIFI一般支持802.11a/b/e/g/n(比如迅驰等,一般都前向兼容),WIFI的使用需要热点支撑,热点有公共热点(比如星巴克、机场等提供公共WIFI热点),还有就是自己架设的热点(比如使用上文的无线路由器)。

更多关于WIFI参考:http://zh.wikipedia.org/wiki/Wi-Fi

关于802.11协议知识请参考维基百科:http://zh.wikipedia.org/wiki/IEEE_802.11

五、WiMax

WiMax是一种无线城域网接入技术,信号传输半径可以达到50公里,基本上能覆盖到城郊。正是由于这种远距离传输特性,WiMax不仅能解决无线接入问题,还能作为有线网络接入(Cable、DSL)的无线扩展,方便地实现边远地区的网络连接。WiMAX的标准协议是IEEE802.16,目前具有两种形式,一是解决固定接入的802.16-2004,一是解决移动接入的802.16e。虽然WiMAX出现的时间不长,但发展态势良好,已被ITU接受为3G标准之一,解决了无固定频率问题,为WiMax发展铺平道路。

WinMax一出来身份就比WIFI高,然后实际的发展至今却没有WIFI好,一方面WIFI由于技术上的成熟和多数厂家的支持得以快速发展,并不断革新,反而让WiMax给人感觉发展极慢。这里有个最主要的原因就是WinMax的盈利模式暂不清晰,赔本赚吆喝的业务没几个厂家愿意做。

WiMax基站一般都是由企业或ZF机构架设,所有在基站覆盖范围内的移动设备均可通过基站接入Internet。由于WiMax只能提供数据业务,因此话音业务的提供需要借助VoIP技术来实现。WiMax网络建设与3G网络一样,均需要架设大型基站。但由于它只需要实现城域覆盖,因此网络建设成本相对3G网络比较低。——大家都忙着赚3G的钱了,尽管WiMax在几个城市像跟风一样的铺了些示范点,天缘可以断定,可预见的5-10年内,WiMax在我们国家还看不到希望。

补充,现在有很多迅驰笔记本的Wimax都已是选配件了,不过大家现在也没必要买,因为Wifi热点都已经够难找的,何必还要WiMax,但是根据天缘的经历,WiMax稍后可能会被吹起来,但肯定是遥远的未来(三套3G基础投资才刚开始,本钱还没赚回来,肯定不会花大力气搞WiMax城域网)。

 

补充:典型的无线上网连接方式:

1、电脑(开WIFI)——手机(上网、开WIFI),电脑使用手机WIFI上网;

2、电脑(开红外、蓝牙、USB)——手机(上网、开红外蓝牙USB),电脑通过数据连接虚拟手机MODEM,拨号连接;

3、电脑(直接插无线上网卡)即可实现无线上网;

4、ADSL MODEM——集线器、路由器——无线AP zzzzzz 电脑(开WIFI),电脑WIFI上网;

5、ADSL MODEM——无线路由器 zzzzzzz 电脑(开WIFI ),电脑WIFI上网;

6、ADSL MODEM——无线路由器 zzzzzzz 手机(开WIFI ),手机WIFI上网;

7、手机(开WIFI)——电脑(开WIFI)——路由器——ADSL MODEM,手机通过电脑WIFI上网,电脑通过有线上网;

8、手机(开WIFI)——电脑(开WIFI)——ADSL MODEM,手机通过电脑WIFI上网,电脑通过有线上网,电脑PPOE拨号;

逐边裁剪算法(也称为Cohen-Sutherland算法)是一种经典的线段裁剪算法,用于将线段裁剪为视口或窗口的可见部分。下面是一个简单的MFC逐边裁剪算法的示例: ```c++ // 定义裁剪窗口的边界 #define LEFT_EDGE 0x01 #define RIGHT_EDGE 0x02 #define BOTTOM_EDGE 0x04 #define TOP_EDGE 0x08 // 定义线段的端点类 class CPoint2D { public: int x; int y; }; // 定义逐边裁剪算法类 class CClipper { public: CClipper(CPoint2D winMin, CPoint2D winMax); void ClipLine(CPoint2D& p1, CPoint2D& p2); private: void ComputeOutCode(CPoint2D& p, int& code); bool ClipTest(double p, double q, double& u1, double& u2); void ClipLeft(CPoint2D& p1, CPoint2D& p2); void ClipRight(CPoint2D& p1, CPoint2D& p2); void ClipBottom(CPoint2D& p1, CPoint2D& p2); void ClipTop(CPoint2D& p1, CPoint2D& p2); CPoint2D m_winMin; CPoint2D m_winMax; }; // 构造函数:初始化裁剪窗口的边界 CClipper::CClipper(CPoint2D winMin, CPoint2D winMax) { m_winMin = winMin; m_winMax = winMax; } // 逐边裁剪算法 void CClipper::ClipLine(CPoint2D& p1, CPoint2D& p2) { // 计算p1和p2的编码 int code1 = 0, code2 = 0; ComputeOutCode(p1, code1); ComputeOutCode(p2, code2); // 如果线段在裁剪窗口内,则不需要裁剪 while (code1 | code2) { // 如果线段完全在裁剪窗口外,则直接退出 if (code1 & code2) return; // 计算需要裁剪的边界 double u1 = 0.0, u2 = 0.0; if (code1) ClipTest(p2.x - p1.x, p1.x - m_winMin.x, u1, u2) || ClipTest(p2.y - p1.y, p1.y - m_winMin.y, u1, u2); else ClipTest(p2.x - p1.x, m_winMax.x - p1.x, u1, u2) || ClipTest(p2.y - p1.y, m_winMax.y - p1.y, u1, u2); // 根据需要裁剪的边界进行裁剪 if (code1 & LEFT_EDGE) ClipLeft(p1, p2); else if (code1 & RIGHT_EDGE) ClipRight(p1, p2); else if (code1 & BOTTOM_EDGE) ClipBottom(p1, p2); else if (code1 & TOP_EDGE) ClipTop(p1, p2); // 更新编码 ComputeOutCode(p1, code1); ComputeOutCode(p2, code2); } } // 计算点的编码 void CClipper::ComputeOutCode(CPoint2D& p, int& code) { code = 0; if (p.x < m_winMin.x) code |= LEFT_EDGE; else if (p.x > m_winMax.x) code |= RIGHT_EDGE; if (p.y < m_winMin.y) code |= BOTTOM_EDGE; else if (p.y > m_winMax.y) code |= TOP_EDGE; } // 计算需要裁剪的边界 bool CClipper::ClipTest(double p, double q, double& u1, double& u2) { double r = q / p; if (p < 0.0) { if (r > u1) u1 = r; if (r > u2) return true; } else if (p > 0.0) { if (r < u2) u2 = r; if (r < u1) return true; } else if (q < 0.0) return true; return false; } // 裁剪左边界 void CClipper::ClipLeft(CPoint2D& p1, CPoint2D& p2) { double u = (double)(m_winMin.x - p1.x) / (double)(p2.x - p1.x); p1.y = (int)(p1.y + u * (p2.y - p1.y)); p1.x = m_winMin.x; } // 裁剪右边界 void CClipper::ClipRight(CPoint2D& p1, CPoint2D& p2) { double u = (double)(m_winMax.x - p1.x) / (double)(p2.x - p1.x); p1.y = (int)(p1.y + u * (p2.y - p1.y)); p1.x = m_winMax.x; } // 裁剪下边界 void CClipper::ClipBottom(CPoint2D& p1, CPoint2D& p2) { double u = (double)(m_winMin.y - p1.y) / (double)(p2.y - p1.y); p1.x = (int)(p1.x + u * (p2.x - p1.x)); p1.y = m_winMin.y; } // 裁剪上边界 void CClipper::ClipTop(CPoint2D& p1, CPoint2D& p2) { double u = (double)(m_winMax.y - p1.y) / (double)(p2.y - p1.y); p1.x = (int)(p1.x + u * (p2.x - p1.x)); p1.y = m_winMax.y; } ``` 在上面的示例中,我们首先定义了一个CPoint2D类来表示线段的端点。然后,我们定义了一个CClipper类来实现逐边裁剪算法。该类的构造函数用于初始化裁剪窗口的边界,ClipLine()函数用于裁剪线段。该算法使用了Cohen-Sutherland编码方法来计算线段的编码,并根据编码计算需要裁剪的边界。ClipTest()函数用于计算需要裁剪的边界,而ClipLeft()、ClipRight()、ClipBottom()和ClipTop()函数用于实现裁剪操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值