搜索
bottom↓
回复: 12

经验丰富的老鸟来谈谈 ~ 数据结构在通信行业的应用

[复制链接]

出0入0汤圆

发表于 2010-6-10 22:36:52 | 显示全部楼层 |阅读模式
数据结构这玩意  在通信行业里有什么应用呢?




这是我们数据结构问答题   实在见识短浅  希望各位老鸟谈谈自己的见解

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2010-6-11 09:02:43 | 显示全部楼层
不知道,mark

出0入0汤圆

发表于 2010-6-11 09:27:07 | 显示全部楼层
如果读过路由器等设备的软件代码,就知道数据结构的重要了。

出0入0汤圆

发表于 2010-6-11 09:40:27 | 显示全部楼层
是不是协议的问题,帧,包什么的

出0入0汤圆

发表于 2010-6-11 10:02:09 | 显示全部楼层
软件=算法+数据结构

出0入0汤圆

发表于 2010-6-13 08:50:35 | 显示全部楼层
数据结构在哪个行业内没有用啊,哈哈!
你用看一下tcp/ip源码你就知道了

出0入0汤圆

发表于 2014-6-26 23:42:05 | 显示全部楼层

软件=算法+数据结构

出0入4汤圆

发表于 2014-6-27 01:19:09 | 显示全部楼层
无线网卡驱动代码(部分):

struct header_struct {
        /* 802.3 */
        u8 dest[ETH_ALEN];
        u8 src[ETH_ALEN];
        u16 len;
        /* 802.2 */
        u8 dsap;
        u8 ssap;
        u8 ctrl;
        /* SNAP */
        u8 oui[3];
        u16 ethertype;
} __attribute__ ((packed));

struct ieee802_11_mgmt {
        u16 frame_ctl;
        u16 duration_id;
        u8 addr1[ETH_ALEN]; /* destination addr */
        u8 addr2[ETH_ALEN]; /* source addr */
        u8 addr3[ETH_ALEN]; /* BSSID */
        u16 seq_ctl;
        u8 data[1508];
        u32 fcs;
} __attribute__ ((packed));

struct ieee802_11_beacon_data {
        u8   timestamp[8];           // TSFTIMER
        u16  beacon_interval;         // Kms between TBTTs (Target Beacon Transmission Times)
        u16  capability_information;
        u8   data[1500]; /* contains: SSID (tag,length,value),
                            Supported Rates (tlv), channel */
} __attribute__ ((packed));

struct ieee802_11_auth_frame {
        u16 algorithm;
        u16 seq_nr;
        u16 status;
        u8 challenge[0];
} __attribute__ ((packed));



static
int auth_req(struct at76c503 *dev, struct bss_info *bss, int seq_nr, u8 *challenge)
{
        struct at76c503_tx_buffer *tx_buffer;
        struct ieee802_11_mgmt *mgmt;
        struct ieee802_11_auth_frame *req;
       
        int buf_len = (seq_nr != 3 ? AUTH_FRAME_SIZE :
                       AUTH_FRAME_SIZE + 1 + 1 + challenge[1]);

        assert(bss != NULL);
        assert(seq_nr != 3 || challenge != NULL);
       
        tx_buffer = kmalloc(buf_len + MAX_PADDING_SIZE, GFP_ATOMIC);
        if (!tx_buffer)
                return -ENOMEM;

        mgmt = (struct ieee802_11_mgmt *)&(tx_buffer->packet);
        req  = (struct ieee802_11_auth_frame *)&(mgmt->data);

        /* make wireless header */
        /* no need to care about endianness of constants - is taken care
           of in ieee802_11.h */
        /* first auth msg is not encrypted */
        mgmt->frame_ctl = IEEE802_11_FTYPE_MGMT | IEEE802_11_STYPE_AUTH;
        if (seq_nr == 3)
                mgmt->frame_ctl |= IEEE802_11_FCTL_WEP;

        mgmt->duration_id = cpu_to_le16(0x8000);
        memcpy(mgmt->addr1, bss->bssid, ETH_ALEN);
        memcpy(mgmt->addr2, dev->netdev->dev_addr, ETH_ALEN);
        memcpy(mgmt->addr3, bss->bssid, ETH_ALEN);
        mgmt->seq_ctl = 0;

        req->algorithm = dev->auth_mode;
        req->seq_nr = cpu_to_le16(seq_nr);
        req->status = 0;

        if (seq_nr == 3)
                memcpy(req->challenge, challenge, 1+1+challenge[1]);

        /* init. at76c503 tx header */
        tx_buffer->wlength = cpu_to_le16(buf_len - AT76C503_TX_HDRLEN);
       
        dbg(DBG_TX_MGMT, "%s: AuthReq bssid %s alg %d seq_nr %d",
            dev->netdev->name, mac2str(mgmt->addr3),
            req->algorithm, req->seq_nr);
        if (seq_nr == 3) {
                char obuf[18*3] __attribute__ ((unused));
                dbg(DBG_TX_MGMT, "%s: AuthReq challenge: %s ...",
                    dev->netdev->name,
                    hex2str(obuf, req->challenge, sizeof(obuf)/3,' '));
        }

        /* either send immediately (if no data tx is pending
           or put it in pending list */
        return send_mgmt_bulk(dev, tx_buffer);

} /* auth_req */

数据结构在通信行业不是应用,那是相当广的应用。

出0入0汤圆

发表于 2014-6-27 01:25:54 | 显示全部楼层
看linux源码就知道了,数据结构无处不在

出0入0汤圆

发表于 2014-10-11 17:26:46 | 显示全部楼层
数据结构和通信行业没有必然的联系吧。数据结构多用在时间/内存空间敏感的场合,比如频繁插入确需要排序的数据,那么用链表就比用数组来得合适,如果是经常要查找而且节点之间联系比较复杂,那就需要用到树形结构。               

出0入0汤圆

发表于 2014-10-21 10:47:18 来自手机 | 显示全部楼层
哪里有 数据结构 树形结构的学习资料?之前自己都是乱写单片机程序,不知有什么好用的结构又省rom的结构吗?

出0入0汤圆

发表于 2014-10-21 10:52:40 | 显示全部楼层
路过,学习了

出0入0汤圆

发表于 2014-10-21 10:58:58 | 显示全部楼层
   一般写简单的程序,是使用不到复杂的数据结构的

   我一直认为,只有在项目应用中,所学到的知识才能够得到飞一般的提升,前提是你有一定的知识基础。

    我自己的感触是,买了stm32开发板在家里摸了一遍,什么感觉都没有,然后放在家里都一层灰了。。。。后来有项目要用stm32开发,不到一个月,也玩的有模有样,(借此机会也感谢amo论坛了)


   

回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 22:59

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表