论坛风格切换切换到宽版
  • 814阅读
  • 7回复

[问题求助]肯请各位帮忙解答双CDMA模块无线上网设备带宽扩展问题! [复制链接]

上一主题 下一主题
离线free51.
 
发帖
2027
C币
3574
威望
381
贡献值
1
银元
-4
铜钱
4639
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
问题是如下:
          我想在uclinux下面通过使用ppp来扩展带宽,平台是一个ADSP-.BF561嵌入式硬件平台,我采用的方法是:首先通过串口扩展芯片TLV16C752B扩展了两路串口,每个串口上面连接一路CDMA模块,然后通过pppd虚拟出p.pp0,ppp1分别对应CDM.A0,CDMA1.然后上层应用程序轮流对ppp0,ppp1写数据包data0,data1,时间间隔为25ms.我本来希望data0通过CDMA0.,data1通过CDMA1, 但是写到ppp0,ppp1,的数据包经过操作系统到达CDMA模块之后顺序完全打乱了, 有时.CDMA0连着发送一串data0,然后CDMA1再发,.有时data1到了CDMA0,出现了一.种随机顺序,串口扩展芯片驱动程序我测试过,没有问题的。为了使两路CDMA能轮流发送数据.包,有什么方法可以解决呢?恳.请各位帮忙解答,谢谢!    外汇

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线bakkey.
发帖
2046
C币
-235861
威望
424
贡献值
1
银元
-6
铜钱
4679
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
改内核喽。要不然就修改你应用程序的socket套接字的监听方式,改为原始套接口。

离线大傻111.
发帖
2118
C币
-235601
威望
380
贡献值
1
银元
-1
铜钱
4662
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
谢谢ssffzz1 的解答,昨晚在论坛里查了些资料,我想问下斑竹,这个问题用iptables 和 iproute能解决吗?有没有更好的方法呢?如果修改内核是修改哪一部分呢?

[ 本帖最后由 lhyyaqj 于 2008-9-26 09:27 编辑 ]

离线dummy111.
发帖
1989
C币
-605070
威望
359
贡献值
4
银元
0
铜钱
4426
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
ip route 只能到 2个一倍的带宽 而不能到2倍的带宽

你这么搞啥目的的不觉得能快成什么样

离线rayabbie.
发帖
2143
C币
-60307
威望
385
贡献值
1
银元
-1
铜钱
4705
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13
我只是需要两路往外发送数据包,现在的状态是两路发送极其不均衡,要实现均衡两路发送,用ip route能实现吗?

发帖
2133
C币
-281463
威望
428
贡献值
1
银元
-3
铜钱
4887
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13
谢谢!我按照论坛里的方法去做,但是发送数据的时候老是走一路,其余那路就没用上,有可能是什么原因产生的呢?

发帖
1864
C币
-199171
威望
342
贡献值
1
银元
-4
铜钱
4126
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-13
网关你是怎么加的? 关键在网关

离线呼唤.
发帖
2030
C币
-60609
威望
360
贡献值
1
银元
-1
铜钱
4475
人人网人气币
0
只看该作者 7楼 发表于: 2010-04-13
为了实验负载均衡,我把我的设备模拟成双CDMA路由器,即用板载的以太网卡eth0(IP为192.168.14.222)接入局域网(局域网IP为192.168.14.XXX),同时板载的两路CDMA通过拔号上网形成PPP0 和PPP1,并把局域网的两台PC机(IP为:192.168.14.4  和 192.168.14.55)的网关设成我的设备IP(192.168.14.222),希望局域网的机器通过我的设备上网时,按我的设定,分别走不同的CDMA通道上网,通过以下脚本后,我在两台局域网PC上用PING包试验,发现仅使用了PPP1通道,PPP0通道一直没有数据收发,我试验是用的 iptable 和 iproute ,主要是参考网上相关的关于多路ADSL负载均衡文章,具体实现脚本如下,因对LINUX网络不熟悉,很多是参考网上的作法,属一知半解,请各位大侠指正帮助,非常感谢!!!



#!/bin/sh

IF1=ppp0
IF2=ppp1

#取得动态两路CDMA IP地址
echo "Got IP address "
IP1=`ifconfig ppp0 | awk '/inet addr/ {printf $2}' | cut -f2 -d ":"`
IP2=`ifconfig ppp1 | awk '/inet addr/ {printf $2}' | cut -f2 -d ":"`

#取得CDMA网关地址
echo "Got Gateway address "
P1=`ifconfig ppp0 | awk '/P-t-P/ {printf $3}' | cut -f2 -d ":"`
P2=`ifconfig ppp1 | awk '/P-t-P/ {printf $3}' | cut -f2 -d ":"`

P1_NET=$IP1
P2_NET=$IP2

#添加路由表 T1 T2
echo "Add T1 T2 to rt_tables "
echo 201 T1 >> /etc/iproute2/rt_tables
echo 202 T2 >> /etc/iproute2/rt_tables

#设置T1 T2路由表路由
echo "Set route tables  "
ip route add $P1_NET dev $IF1 src $IP1 table T1
ip route add $P2_NET dev $IF2 src $IP2 table T2

#设置main路由表
echo "Set main route tables  "
ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2

#设置缺省路由
ip route add default via $P1 table T1
ip route add default via $P2 table T2

#设置路由规则
echo "Set default route tables  "
ip rule add from $IP1 table T1
ip rule add from $IP2 table T2

#激活IP FORWORD
echo "active IP FORWORD  "
echo 1 > /proc/sys/net/ipv4/ip_forward

#设置IPTABLES 环境变量
echo "Set IP table ENV  "
export IPTABLES_LIB_DIR=/lib/iptables/

#进行 IP 伪装 ,并指定来自192.168.14.4 的数据走 PPP0通路,指定来自192.168.14.55 的数据走PPP1通路
echo "IP MASQUERADE  "
iptables -A POSTROUTING -t nat -s 192.168.14.4/255.255.255.0 -o ppp0 -j MASQUERADE
iptables -A POSTROUTING -t nat -s 192.168.14.55/255.255.255.0 -o ppp1 -j MASQUERADE
ip route replace default scope global nexthop dev ppp0 weight 1 nexthop dev ppp1 weight 1
ip route flush cache

快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个