请教大家一个网络的问题,x.25网络转ip承载的话,数据这一块是普通的ip封装吗?

larace
请教大家一个网络的问题,x.25网络转ip承载的话,数据这一块是普通的ip封装吗?

请教大家一个网络的问题,x.25网络转ip承载的话,数据这一块是普通的ip封装吗?

原来的程序直接处理x。25的连接,现在要把x25 通过路由器映射ip 端口。对于数据封装的过程是怎么实现的?》
大家有过这样的经验吗?

怎么通过socket 把原来的x25数据呈现呢? 直接的解一下数据包可以实现吗?

system888net
[quote]原帖由 [i]larace[/i] 于 2008-6-19 20:21 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8622779&ptid=1164078][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
改造是肯定的,但是我就是希望能把底层的接入方式改一改,然后其他的不动,要不然工作量太大,估计要完不成啊。

还有一点不懂的地方,原来程序就是调用 putmsg getmsg,还加了一些控制,我想知道这些控制是针 ... [/quote]

都有,这要看你的具体程序代码了,一般来说,只要你的程序里要呼叫控制x.25的通信,那么putmsg里肯定有x.25的控制命令. 比如:

struct strbuf ctl_block;
struct xccnff confirm;

ctl_block.len = sizeof(struct xccnff);
ctl_blockb.buf = (char *)confirm;

putmsg(your_x25_handle, &ctl_block, NULL,0);

[[i] 本帖最后由 system888net 于 2008-6-19 20:37 编辑 [/i]]

flw
网络协议是分层的。
你只要把 socket 类型改一下应该就可以了。

larace
原来走x25的时候用putmsg getmsg,加了很多控制信息,这些控制信息应该不是属于x25专有的吧?
如果把x25再接入tcp ip的话,这些信息包括控制,数据,如果原封不动的写入tcp ip的socket,是不是就可以了? 数据在出tcpip的时候是不是又还原x25了?

net_robber
没有看过x.25,但是,理论上,应该是把IP协议的报文头去掉,重新打包,

但是这一部分协议栈的操作对于应用来说是屏蔽的

system888net
:) LZ描述的不太清楚!
没看明白LZ的需求是要做X.25 over TCP/IP?
还是要把原来X.25下的处理移植到TCP/IP?

system888net
如果是通过TCP/IP隧道跑X.25,那原来的程序就基本上不用改动什么.

larace
是这样,原来的程序是直接通过x25网络与远端的设备通信,通过流getmsg putmsg 发送接收数据。
但是现在要进行网络改造,远端设备不变,远端设备还是先连x25,但是从远端到我本地程序的时候,又经过了ip承载网。到我本地的时候直接映射成一个ip和端口。

我想问一下,现在我的程序通过路由器映射的那个ip和端口进行socket通信,我接收到的消息应该和原来的一样吧?
我认为ip承载已经在远端把数据封装,然后在本地有解封装,相当于数据没有变化。不知道我的理解对不对?
但是,在程序里应该如何改造呢?原来putmsg getmsg的那些控制信息需要不要进行改动?
现在我正准备通过TPI 把数据接收过来,不知道可行不可行?

各位帮帮忙,看看有什么可行的方式没有?这块知识我是第一次涉及到,不懂的地方太多了。
请有经验的高手给指点一下!谢谢!!!

larace
原来的程序上层的框架应该不需要改动,但是底层接入这块应该用什么方式呢?

我认为只能做为客户端去连接ip端口

larace
大家有什么方法吗?有人做过这样的程序吗

zhoubug
不知道搂主说的是不是中间经过了协议转换器,如果这样的话,你开发时应该就和普通网络开发没差别拉。

larace
怎么知道有没有协议转换器?
协议转换器是什么设备? 走ip的话,是不是自动在两侧封装和解封装啊

system888net
[quote]原帖由 [i]larace[/i] 于 2008-6-19 15:13 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8620800&ptid=1164078][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
是这样,原来的程序是直接通过x25网络与远端的设备通信,通过流getmsg putmsg 发送接收数据。
但是现在要进行网络改造,远端设备不变,远端设备还是先连x25,但是从远端到我本地程序的时候,又经过了ip承载网。 ... [/quote]

1.远端设备也给你映射IP地址了吗, 还是原来的x.25(x.121) 地址?
2.原来的x.25连接呼叫是在你的程序里控制还是操作系统启动完成直接建立,还是其他部分建立?

system888net
回复 #12 system888net 的帖子

如果LZ的网络原来就是通过x.25 承载ip与远端通信的,那么这次改造仅仅是提前由router解包出IP而以(原来是你机器的x.25同步卡配合驱动软件等解包出IP的),那么程序是不用修改的.

system888net
回复 #7 larace 的帖子

"我想问一下,现在我的程序通过路由器映射的那个ip和端口进行socket通信,我接收到的消息应该和原来的一样吧?"
   是的,数据部分是一样的.
"我认为ip承载已经在远端把数据封装,然后在本地有解封装,相当于数据没有变化。不知道我的理解对不对?"
  理解正确.

:) 其实LZ描述的问题还是挺模糊, 无法对号,只能就可能的部分回答了.

[[i] 本帖最后由 system888net 于 2008-6-19 20:05 编辑 [/i]]

larace
兄弟我还在加班,突然看到这么多回复,心里很高兴啊

原来通过x25通信的时候,我看程序的底层连接句柄是open   ”/dev/x25“

这块知识我以前没接触过。我认为是直接和x25通信。

system888net
[quote]原帖由 [i]larace[/i] 于 2008-6-19 20:16 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8622764&ptid=1164078][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
兄弟我还在加班,突然看到这么多回复,心里很高兴啊

原来通过x25通信的时候,我看程序的底层连接句柄是open   ”/dev/x25“

这块知识我以前没接触过。我认为是直接和x25通信。 [/quote]

:) 说明原来是直接x.25通行,LZ所言正确, 程序的这部分要改动的.

larace
远端设备 开始还是走x25, 然后 就是接入ip网, 然后就通过ip网 连到我的本地了。
网络规划的人说是映射ip和端口的。

我目前程序改造的方法就是通过TPI(传输提供者接口),绑定ip 和port。 然后在getmsg。
原来程序结构就挺复杂的,不知道这两天能不能搞出来。。。

larace
改造是肯定的,但是我就是希望能把底层的接入方式改一改,然后其他的不动,要不然工作量太大,估计要完不成啊。

还有一点不懂的地方,原来程序就是调用 putmsg getmsg,还加了一些控制,我想知道这些控制是针对流操作的,还是针对x25操作的?
因该是针对流操作的吧

system888net
[quote]原帖由 [i]larace[/i] 于 2008-6-19 20:19 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8622770&ptid=1164078][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
远端设备 开始还是走x25, 然后 就是接入ip网, 然后就通过ip网 连到我的本地了。
网络规划的人说是映射ip和端口的。

我目前程序改造的方法就是通过TPI(传输提供者接口),绑定ip 和port。 然后在getmsg。 ... [/quote]

:) 清楚了.
"网络规划的人说是映射ip和端口的",那么对x.25的呼叫就在router里设置了,LZ的程序就只管socket通信就行了,
程序要改,但改动不答.