IP电话的TCP和IP协议的实现方法
发布时间:2008/5/27 0:00:00 访问次数:575
     范莉莉 刘 武 黄光明
     华中科技大学 陈建文
     来源:《单片机与嵌入式系统应用》
     摘要:在介绍实现ip电话基本原理的基础上,详细阐述ip电话的tcp/ip协议的实现过程,并简要描述1次通话的全过程。
    
    
     关键词:ip电话
     tcp/ip协议 icmp udp arp
    
    引 言
    
     随着网络技术的不断发展,计算机通信系统已渐渐地与网络连为一体了,个人计算机的功能得到了极大的增强;与此同时,人们的需求在不断增加,网络的应用范围也在不断扩宽,网络电话离人们的生活也越来越近了。尤其是当人们正试图将网络改造成能进行实时通信的全球信息高速公路的雏形时,它作为一种新的话音业务,已经成为研究和开发的热点。
    
    1 ip电话的实现原理
    
     普通电话通过信令来控制用户的呼叫建立、连接、通话、释放连接等过程。与此类似,ip电话也必须通过电话信令来控制这些过程,即ip电话要传送2类数据:信令数据和语音数据。与传统的pstn电话所不同的是,ip电话是通过网络进行传输的。它通过分组交换的方式来实现,因此tcp/ip协议是其所应遵守的基本协议。但是tcp/ip协议是一个庞大而复杂的体系结构,几乎涵盖了网络上所有的应用,对于ip电话这一特定的应用,实现整个tcp/ip协议是完全没有必要的。所以在实现的过程中,可以针对电话这一特定的要求简化tcp/ip协议。图1是一个简化了的tcp/ip协议的分层结构示意图。
    
     图1在遵循osi的7层结构的基础上,对tcp/ip协议机制进行了适当的简化。在网络接口层,基于带宽及接口复杂程度的考虑,我们选择ethernet网卡作为接入网络的接口,并采用arp的方式对电话进行寻址。网络层仍然用ip数据报的方式封装从上层传来的数据包,它包括传输层的udp及icmp两种数据包,这两种数据包分别传送信令数据和语音数据。与tcp的传输方式相比,udp的传输方式在网络压力不太大的情况下传输效率会更高。
    
     图2是ip电话的实现框图:以单片机为核心,包括存储、输入输出、与网络的接口及语音的编解码部分。
    
    2 tcp/ip协议的设计
    
     根据ip电话实现的基本原理,可以将tcp/ip协议固件分为以下4个模块来实现。
     (1)arp模块
    
     arp模块主要实现对电话的寻址功能。在网络中,ip电话同计算机一样,每个ip电话对应1个ip地址,用户每次建立连接之前首先要获得电话的ip地址及物理地址。在局域网中,为了减轻单片机的负担,可以在服务器中给用户建立电话号码与ip地址及物理地址的对应。用户建立连接之前,主叫用户首先给服务器发送1个arp请求,与服务器取得联系,进而再发送icmp请求。服务器将用户所需的对方的ip地址及物理地址放到icmp包中,形成应答发送给主叫用户。
    
     arp包的首部采用结构的方式来封装,一个arp的头结构arpkt如下:
     typedef struct{
     word hrd, /* 硬件类型 */
     pro; /* 协议类型 */
     byte hln, /*物理地址长度*/
     pln; /* ip地址长度*/
     word op; /* arp操作字段*/
     byte smac[maclen]; /*源物理地址*/
     lword sip; /* 源ip地址*/
     byte dmac[maclen]; /* 目的物理地址*/
    
     范莉莉 刘 武 黄光明
     华中科技大学 陈建文
     来源:《单片机与嵌入式系统应用》
     摘要:在介绍实现ip电话基本原理的基础上,详细阐述ip电话的tcp/ip协议的实现过程,并简要描述1次通话的全过程。
    
    
     关键词:ip电话
     tcp/ip协议 icmp udp arp
    
    引 言
    
     随着网络技术的不断发展,计算机通信系统已渐渐地与网络连为一体了,个人计算机的功能得到了极大的增强;与此同时,人们的需求在不断增加,网络的应用范围也在不断扩宽,网络电话离人们的生活也越来越近了。尤其是当人们正试图将网络改造成能进行实时通信的全球信息高速公路的雏形时,它作为一种新的话音业务,已经成为研究和开发的热点。
    
    1 ip电话的实现原理
    
     普通电话通过信令来控制用户的呼叫建立、连接、通话、释放连接等过程。与此类似,ip电话也必须通过电话信令来控制这些过程,即ip电话要传送2类数据:信令数据和语音数据。与传统的pstn电话所不同的是,ip电话是通过网络进行传输的。它通过分组交换的方式来实现,因此tcp/ip协议是其所应遵守的基本协议。但是tcp/ip协议是一个庞大而复杂的体系结构,几乎涵盖了网络上所有的应用,对于ip电话这一特定的应用,实现整个tcp/ip协议是完全没有必要的。所以在实现的过程中,可以针对电话这一特定的要求简化tcp/ip协议。图1是一个简化了的tcp/ip协议的分层结构示意图。
    
     图1在遵循osi的7层结构的基础上,对tcp/ip协议机制进行了适当的简化。在网络接口层,基于带宽及接口复杂程度的考虑,我们选择ethernet网卡作为接入网络的接口,并采用arp的方式对电话进行寻址。网络层仍然用ip数据报的方式封装从上层传来的数据包,它包括传输层的udp及icmp两种数据包,这两种数据包分别传送信令数据和语音数据。与tcp的传输方式相比,udp的传输方式在网络压力不太大的情况下传输效率会更高。
    
     图2是ip电话的实现框图:以单片机为核心,包括存储、输入输出、与网络的接口及语音的编解码部分。
    
    2 tcp/ip协议的设计
    
     根据ip电话实现的基本原理,可以将tcp/ip协议固件分为以下4个模块来实现。
     (1)arp模块
    
     arp模块主要实现对电话的寻址功能。在网络中,ip电话同计算机一样,每个ip电话对应1个ip地址,用户每次建立连接之前首先要获得电话的ip地址及物理地址。在局域网中,为了减轻单片机的负担,可以在服务器中给用户建立电话号码与ip地址及物理地址的对应。用户建立连接之前,主叫用户首先给服务器发送1个arp请求,与服务器取得联系,进而再发送icmp请求。服务器将用户所需的对方的ip地址及物理地址放到icmp包中,形成应答发送给主叫用户。
    
     arp包的首部采用结构的方式来封装,一个arp的头结构arpkt如下:
     typedef struct{
     word hrd, /* 硬件类型 */
     pro; /* 协议类型 */
     byte hln, /*物理地址长度*/
     pln; /* ip地址长度*/
     word op; /* arp操作字段*/
     byte smac[maclen]; /*源物理地址*/
     lword sip; /* 源ip地址*/
     byte dmac[maclen]; /* 目的物理地址*/
    
上一篇:网格数据传输协议探讨