首页 技术教程 实用代码 注册破解 正则表达式 网址导航 电子书籍

SIP通过NAT的实例解析

下面对SIP协议产生NAT穿透问题,作一些解释;及提出解决的办法。 1、大致有4种类型的NAT。a) Full Cone 完全圆锥体b) restricted cone 受限制的圆锥体c) port restricted 端口受限制的圆锥体d) symmetric 对称的其中a,b,c 也称作非对称的NAT。2、SIP终端在NAT后面,其工作有可能出现问题。原因是SIP信令走的路径,和媒体流走的路径不一样。3、Full Cone 完全圆锥体NAT  因特网上的任何PC,可以发送数据包到IP:port对;而NAT将这个IP:port对(公网上的)映射到内网的IP:port对(私有网络的)。4、restricted cone 受限制的圆锥体NAT  NAT外面的PC,只有那些内网中已有PC与之联系过的PC,才...
类别:网络技术 - VOIP技术    查看:132    更新:2014-08-11

SIP穿越NAT&FireWall解决方案

SIP从私网到公网会遇到什么样的问题呢?  包的地址转换。SIP消息里面的SIP地址转换。SIP消息里面的SDP中的RTP地址转换。SIP从私网到公网会遇到什么样的问题呢?包的地址转换。SIP消息里面的SIP地址转换。SIP消息里面的SDP中的RTP地址转换。网络现存结构复杂,SIP服务提供商并不一定是NETWORK提供商,很难要求客户只能使用某种方式的NAT&FireWall。如何找出一种可以满足各种网络的SIP应用解决方案呢?NAT和Firewall的基本原理首先,NAT的几种方式:Full Cone:当一台私网内的主机向公网发一个包,其本地地址和端口是{A:B},NAT会将其私有地址{A:B}转换成公网地址...
类别:网络技术 - VOIP技术    查看:113    更新:2014-07-26

NAT的四种类型

 Full Cone NAT: 完全圆锥体.一个完全圆锥体的NAT,就是将从同一内部IP地址和端口来的所有请求,都映射到相同的外部IP地址和端口.而且,任何外部主机都可以发送报文到内部主机,通过发送报文到映射的外部地址.   Restricted Cone NAT: 受限制的圆锥体. 受限制的圆锥体的NAT,也是将从相同的内部IP地址和端口的所有请求,映射到相同的外部IP地址和端口. 但是不同于完全的圆锥体NAT,一个外部的主机(设有IP地址X),只能在一种情况下,能够发送报文到内部的主机.也就是这个内部的主机前面已经发送过报文到IP地址X.  Port Restricted Cone NAT: 端口受限制的圆锥体NAT.类似于受限制的圆锥体,但是限制还更多...
类别:网络技术 - 网管技术    查看:115    更新:2014-07-11

路由器NAT功能的配置

  随着Internet的迅速发展,IP地址短缺已成为一个十分突出的问题。如我单位,200台计算机,4台服务器只分配了6个C类地址。那么,如何解决这个问题呢?我选择了在路由器上实现NAT的方法来解决这个问题。   NAT(Network Address Translation)顾名思义就是网络IP地址的转换。NAT的出现是为了解决IP日益短缺的问题,将多个内部地址映射为少数几个甚至一个公网地址。这样,就可以让我们内部网中的计算机通过伪IP访问INTERNET的资源。   设置NAT功能的路由器至少要有一个内部端口(Inside),一个外部端口(Outside)。   内部端口连接的网络用户使用的是内部IP地址(非法IP);外部端口连接的是外部的网络...
类别:网络技术 - 路由交换    查看:78    更新:2014-06-29

H3C 路由器配置:1台服务器做双出口NAT server的配置

这里使用的AR46-20做的实验,所有中低端路由器都可以这样做。  • 用户的server只有一块网卡,要求在AR46-20上e0/0/0接口连接网通,e0/0/1接口连接电信,在两个接口上都要做nat server指向内网的服务器。• 要实现用户的需求必须要保证在e0/0/0接口进入的访问服务器的外网报文要能从e0/0/0口返回给外网,在e0/0/1接口进入的访问服务器的外网报文要能从e0/0/1口返回给外网。所以在服务器的一块网卡上要配置两个ip地址,在路由器连接服务器的接口上必须要配置策略路由才能实现。具体的配置信息如下:<NAT>dis verCopyright Notice:All rights reserved (Aug 17 2005).Without the owner's prior written conse...
类别:网络技术 - 路由交换    查看:136    更新:2014-06-29

hibernate3自定义枚举映射类型

1. 性别枚举类型类:Gender.java /** * Filename: ExportDBScript.java * Author: qiujy * Createtime:Nov 22, 2008 * Copyrights 2008 qjyong All rights reserved. * EMail: [email protected] */ package com.qiujy.common.myusertype; import java.io.Serializable; /** * 性别枚举类型 * * @author qiujy */ public enum Gender implements Serializable { Male("男", 0), Female("女", 1), Other("保密", 2); private String name; private int value; public String getName() { return name; } public int getValue() { return value; } private Gender(String name, int value) ...
类别:程序开发 - JAVA    查看:107    更新:2014-05-15

Java中native方法学习

Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。   可以将native方法比作Java程序同C程序的接口,其实现步骤:   1、在Java中声明native()方法,然后编译;   2、用javah产生一个.h文件;   3、写一个.cpp文件实现native导出方法,其中需要包含第二步产生的.h文件(注意其中又包含了JDK带的jni.h文件);   4、将第三步的.cpp文件编译成动态链接库文件;   5、在Java中用System.loadLibrary()方法加载第四步产生的动态链接库文件,这个native()方法就可以在Java中被访问了。   JAV...
类别:程序开发 - JAVA    查看:110    更新:2014-05-14

Hibernate外键关联与HQL语法

例如对于TUser类 1.实体查询 String hql = " from TUser"; 执行这条语句会返回TUser以及TUser子类的纪录。 注: 如果 TUser 类具有外键, 查询会报错! 解决方法: select 别名.属性 from 类 as 别名. 没有别名.属性仍然报错! hql = "from java.lang.Object" 会返回数据库中所有库表的纪录。 where 语句 hql = "from TUser as user where user.name='yyy'"; 其中,as可以省略也一样 hql = "from TUser user where user.name='yyy'"; where子句中,我们可以通过比较运算符设定条件,如: =, <>, >, <, >=, <=, between, not between, in, not in, is, like等。 2.属性查询...
类别:程序开发 - JAVA    查看:106    更新:2014-05-14

Hibernate基于外键的查询方法

我在解决这个问题的时候搜到了百度上的同样问题:hibernate中表怎么根据外键查询 ?? 它的设计为: 我有两张表:Teacher id(主键) name Student id(主键) name tid(外键对应Teacher的id) public List findStudentByTeacher(Teacher teacher) { try { session = this.openSession(); String HQL = "select s.name from Student as s where s.tid ="+teacher.getId(); query = session.createQuery(HQL); return query.list(); } catch (Exception e) { e.printStackTrace(); logs.error("查询学生时候出现错误!"); return null; }finally{ this.closeSession(session); } } 最优答案为: 改为:Str...
类别:程序开发 - JAVA    查看:100    更新:2014-05-14

Struts2整合Spring Hibernate的CRUD的实例

Struts 2 + Spring 2.0 + Hibernate 3.0整合的操作可以参照我的这篇文章 http://bbs.bccn.net/thread-239025-1-1.html 本文提供Struts2整合Spring Hibernate的CRUD的实例的源代码 1. 数据库脚本,数据库采用MySQL 5.0 CREATE TABLE `user` ( `id` int(11) NOT NULL auto_increment, `username` varchar(32) NOT NULL, `password` varchar(32) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 2. 几个重要的文件 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns=...
类别:程序开发 - JAVA    查看:103    更新:2014-05-14

C3P0配置+Spring+Hibernate

下面是Spring配置文件,整合了Hibernate和C3P0 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass"> <value>oracle.jdbc.driver.OracleDriver</value> </property> <property name="jdbcUrl"> <val...
类别:程序开发 - JAVA    查看:114    更新:2014-05-14

Java SE中使用Hibernate处理数据

  如今,Hibernate正在迅速成为非常流行的(如果不是最流行的)J2EE O/R映射程序/数据集成框架。它为开发人员提供了处理企业中的关系数据库的整洁、简明且强大的工具。但如果外部需要访问这些已被包装在J2EE Web应用程序中的实体又该怎么办?是开发独立但相同的实体来访问数据,还是另外编写Web组件来管理内部访问的数据?   在某种程度上,这些问题是一定会发生的,对于我来说,当我的公司要向数据库中加载来自多个供应商的多种文件格式的记录时,就出现了这些问题。我考虑过以前常用的方法:用shell和SQL脚本(甚至存储过程)来加载数据。但由于数据模型过于复杂,我决定尽量利用现有的实体、Spring DAO以及Web应用程序...
类别:程序开发 - JAVA    查看:82    更新:2014-05-13

Java项目中使用Hibernate处理数据

  对象-关系映射(O/R映射)是许多软件开发项目的常见需求。数据持久化过程中所涉及到的活动是非常乏味且易于出错的。如果考虑到不可避免的需求变化,我们就面临很大的麻烦:数据存储结构必须与源代码保持同步。再加上移植性问题,事情就变得非常复杂。   而Hibernate可以帮助我们轻松地在永久性存储介质中保存数据,而不需要在选择存储、安装或配置类型方面浪费太多精力。Hibernate允许我们存储任何类型的对象,因此,应用程序不需要知道其数据将使用Hibernate进行持久化。当然,这里提到的任何事情都可以逆向应用:现在从存储器获取已经准备好的对象是很平常的事情。更新和删除数据也是如此。  开始之前   在开始之前,您需要Hib...
类别:程序开发 - JAVA    查看:102    更新:2014-05-13