金融系统ISO8583报文精品解析讲稿[精心整理]

金融系统ISO8583报文精品解析讲稿[精心整理]

ID:47531534

大小:273.74 KB

页数:19页

时间:2019-09-14

金融系统ISO8583报文精品解析讲稿[精心整理]_第1页
金融系统ISO8583报文精品解析讲稿[精心整理]_第2页
金融系统ISO8583报文精品解析讲稿[精心整理]_第3页
金融系统ISO8583报文精品解析讲稿[精心整理]_第4页
金融系统ISO8583报文精品解析讲稿[精心整理]_第5页
资源描述:

《金融系统ISO8583报文精品解析讲稿[精心整理]》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、金融系统ISO8583报文精品解析讲稿1S08583报文理解,举个例子就是农行与VISA网络Z间通讯,各个银行间通讯,ATM或POS通讯都是这个IS08583报文。再比如第三方支付网银在线与银行之间的通讯报文也是8583oISO8583报文大衡任何金融软件收到ISO8583包后,直接按照我们定义的规范解包即可,因为整个报文的128个字段从哪一位到哪一位代表什么,大家都知道1>8583理解(1)我们可以首先简单的设计ISO8583,定义128个字段,将所有能够考虑到的类似“帐号、密码”等金融数据类型,按照一个顺序排起来,分别对应128个字段中的一个字段。每个数据类型占固定的

2、长度,这个顺序和长度我们都事先定义好。然后,要发送一个报文时,就将128个字段按照顺序接起来,然后将接起来的整串数据包发送出去。Q其实这种做法真是简单直接,基本上就可以满足需要了,不过我们有几个问题要思考下:1、我怎么知道每个字段的是数字还是字符?2、每个传送的报文都把128个字段都传过去,那网络带宽能够承受得了,有时候我可能只需要其中5个字段,结果多收到了123个无用的字段。3、如果我某些字段的长度不固定,属于变长怎么办,因为你现在解包是当作数据包每个字段都是固定的,用C语言解包时直接依靠指针取固定长度的一串字符做为—个字段。1.我怎么知道每个字段的数据类型呢,是数字还

3、是字符?第一个问题简单,我在定义ISO8583时除了定义每个字段表示什么,还规定其内容是数字或是字符等即可。比如我对128个字段中的“商户类型”字段定义其长度是15,同时定义其类型为字母。2.每个传送的报文都把128个字段都传过去,那网络带宽能够承受得了,有时候我可能只需要其中5个字段,结果多收到了123个无用的字段。其本质就是如果我只传128个字段的5个字段,接收方怎么知道我传了哪几个字段呢?要是我们把剩下的123全部填成0或其他特殊标识,这种处理方法没有半点用处,没有解决网络带宽的本质问题,还是要传128个字段。换个思路,我在报文前面加上个包头,包头里面包含的信息能够

4、让别人知道只传了5个字段。怎样设计这个包头,可以这样,我们用16个字节,即128个bit(—个字节等于8bit)来。每个bit在计算机的二进制里面不是1就是6如果是1就表示对应的字段在本次报文中存在,如果是0就是不存在。这样好了,如果别人接收到了ISO8583报文,可以先根据最前面的报文头,就知道紧接着报文头石面的报文有哪些字段,没有哪些字段了。©2、每个传送的报文都把128个字段都传过去,那网络带宽能够承受得了,有时候我可能只需要其中5个字段,结果多收到了123个无用的字段。如何处理呢?比如,我要发送5个字段,分别是128个字段中的第2.3、6.&9字段,我就可以将12

5、8bit的报文头埴成011001011000000000128个bit,后面就全是0了。注意其中第2.3.6、8.9位为1,其他都为0。O2、每个传送的报文都把128个字段都传过去,那网络带宽能够承受得了,有时候我可能只需要其中5个字段,结果多收到了123个无用的字段。如何组织报文呢?有了这个128bit的报文头,我们就可以只发送需要的5个字段了。怎样组织报文?先放上这128bit,即IS字节的头,然后在头后面放2、3、6、8、蚌段,这些字段紧挨在一起,3和6之间也不需要填上4.5这两个字段了。接收方收到这个报文,它会根据128bit的报文头来解包,它自然知道把第3个字段

6、取出后,就直接在第3字段的后面取第6个字段,每个字段的长度在ISO8583里面都定义好了,很轻松就把数据包解出来了。⑥友情提示:我们把这16个字节称为bitmap,即位图0考虑到很多时候报文不需要128个字段这么多,其一半64条字段都不一逹能够用完。那我可以将报文头由128bit减到64bit,只有在需要的时

7、;

8、候才把剩下的64bit放到报文里面,这样报文长度不又少了8个字节吗?

9、;

10、

11、;

12、我们把ISO8583的128个字段中最常见的都放到前64个字段中,那我们可以将处理缩小一倍。这样一般发送报文时只需发送64bit,即一个字节的报文头,再加上报文内容。如果有些报文用到

13、64到128之间的字段呢?这个也好办,我把64bit报文头的第一位bit用来代表特殊含义,如果该bit为则表示64bi诟面跟了剩下的64bit报文头;如果第一位bit为6则表示64bit后面没有跟剩下的64bit报文头,直接是128个字段中的报文了。那们,接收方会判断一下报头的第一个bit是1还是6从而知道报文头是64bit还是128bitT,就可以做相应处理。因为报文头第二个64bit有时候有,所以我们叫它Extendedbitmap扩展位图,相应的报文头最开始的64bit我们叫它PHmarybitmap主检图。我们直接把扩

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。