TCP 증권데이타 수신및 송신의 원리를 위의 그림을 보면서 설명한다.

1. TCP증권데이타는 한국거래소에서 계약되어진 회원사에 일방적으로 전송한다.
2. 회원사는 A,B,C라고 3개로 예를 든다.
3. 회원사 A,B,C는 수신받는 엔진을 보일러로 표시하고 보일러로 설명해 본다.
4. 회원사는 A,B,C는 집의 규모가 틀리다. 물론 보일러도 처리용량에 차이가 있다. 좋은 보일러, 혹은 그외.
5. TCP증권데이타를 물로 예를들면, 물을 공급해서 A,B,C가 보일러로 처리하는 도중에 보일러에 문제가 생기면한국거래소에서는 물공급을 중단한다. 그리고 해당 회원사에 통보한다.
6. 계속 입수되는 물을 보일러에서 잘 처리되도록 회원사는 A,B,C는 보일러를 각각 잘 관리해야 한다.

Practice)
20,000 바이트를 보낸다면, 각각 회원사는 A,B,C는 할당되어진 버퍼만큼 받을수 있다.
A - 10,000 + 10,000 = 20,000 두번에 걸쳐서 받는다.
B - 5,000 + 5,000 + 5,000 + 5,000 = 20,000 네번에 걸쳐서 받는다.
C - 20,000 한번에 받는다.

20,000 바이트에는 보내는 데이타종류가 15개가 들어있다고 치자.(체결,호가등등)
A - 10,000 + 10,000 = 20,000 두번에 걸쳐서 받이서 데이타종류가 15개를 추출해야 한다.
B - 5,000 + 5,000 + 5,000 + 5,000 = 20,000 네번에 걸쳐서 받이서 데이타종류가 15개를 추출해야 한다.
C - 20,000 한번에 받이서 데이타종류가 15개를 추출해야 한다.

결국 회원사는 A,B,C는 관으로 표현하자면, 넓은 관을 통해서 받던지, 좁은 관을 통해서 받던지, 결국은 받아서 데이타종류가 15개를 추출해야 한다.

 

접속표준서(TCP) 공통정보(송신채널_정보구분)

 

접속표준서(TCP) 공통정보(송신채널_정보구분)
1.
- 그룹별로 3,4개의 포트로 구성됨.
- 수신사는(예를 들어 네이버, 팍스넷, 싱크풀등등) 데이타를 수신하는 서버프로그램을 작성해야 한다.


2.
- 보통 포트별로 한개의 서버가 1:1로 통신하는 방식을 취한다.
- 한번 맺은 세션은 끊어지지 않는다. 즉 하나의 포트를 담당하는 수신서버는 Accept를 한번 하는 꼴이다.
- 한번 맺은 세션은 끊어지지 않는다. Accept후에 데이타를 수신해서 데이타를 파싱하는 로직이 들어가면 된다.
- 한번 맺은 세션은 끊어지지 않는다. Accept후에 데이타를 수신하는 과정에서, 패킷은 헤더와 테일은 존재하지 않는다.
- 한번 맺은 세션은 끊어지지 않는다. Accept후에 데이타를 수신하는 과정에서, 데이타를 구분짓는 구분자 0xff만 존재
- 구체적으로 10,000바이트를 받았다면 여러개의 정보데이타를 끊어서 저장해야한다.
- 정보데이타의 길이정보를 이용해서 수신받는 데이타를 분리한다면, 제도변경시에 좋지 않는 방법이다.
- Ack가 없는 관계의 TCP 수신,송신방법이다.
- 송신하는쪽도 일방적으로 데이타를 보낸다. 수신하는쪽이 잘 받았는지 못받았는지는 신경쓰지 않는다.
(마치 UDP처럼)
- 수신하는쪽도 송신하는쪽에 Ack신호를 보내지 않는다. 무조건 데이타를 받기만한다.
- 만약에 수신쪽의 서버나 네트웍이 불안해서 송신데이타를 보내는쪽에서 프로그램이 죽는다면, ㅠㅠㅠㅠ(?)
- 만약에 수신쪽의 서버나 네트웍이 불안해서 송신데이타를 보내는쪽에서 프로그램이 죽는다면, ㅠㅠㅠㅠ(?)
- 만약에 수신쪽의 서버나 네트웍이 불안해서 송신데이타를 보내는쪽에서 프로그램이 죽는다면, ㅠㅠㅠㅠ(?)
(절대 그렇게 설계를 해서는 안되지만, 장애로 분리되겠다.)

- UDP는 송신쪽에서 보내기만 할뿐, 수신쪽과 상관없기떄문에, 송신쪽 프로그램이 죽는경우는 발생하지 않는다.
(즉 수신쪽의 프로그램의 정상여부를 알수가 없다. 하지만 TCP는 알수 있기떄문에 통보해줄수 있다.)


3.
- 구분해서 분리되어진 정보데이타패킷은 저장하는 방법으로 여러가지가 있을것이다.(메모리,디비,메모리디비,파일등등)
- netstat -an | grep Listen 으로 명령어를 실행하면 수신 포트갯수만큼 나올것이다.
- netstat -an | grep ESTABLISHED 으로 명령어를 실행하면 수신 포트갯수만큼 나올것이다.


A301S        G140KR7395400005001491150011499628200000000005000000050000000000003000000049950000000503000000004970000000169022000000000844538870.0001000000000000000000000       0502000000005000 0xff
A301S        G140KR7018250001000603150011505463200000001050000000230500000000002000000222000000002370000000021450000000348867000000007940610250.0001000000000000000000000       2325000000023050 0xff
A301S        G140KR7042670000000710150011509142500000000280000000091000000000022000000093800000000940000000009070000003129543000000028712498060.0001000000000000000000000       0911000000009100 0xff
A301S        G140KR7010130003000492150011516616500000011000000005450000000000001000005560000000055600000000542000000000040379000000022063218000.0001000000000000000000005       4600000000545000 0xff
A301S        G140KR7074610007000767150011516845500000001580000000142100000000070000000162500000001630000000014170000011525661000000171499537320.0002000000000000000000000       1421000000014200 0xff
A301S        G140KR7042670000000710150011519030500000000280000000091000000000007000000093800000000940000000009070000003129550000000028712561760.0001000000000000000000000       0911000000009100 0xff
A301S        G140KR7015260003000574150011521442200000000060000000024800000000001000000024250000000260000000002310000002374822000000005909336090.0001000000000000000000000       0249000000002480 0xff
A301S        G140KR7005070008000344150011521734500000000900000001828000000000001000001840000000018600000000176000000000445860000000080994328200.0002000000000000000000001       8280000000182700 0xff
A301S        G140KR7042670000000710150011529108500000000280000000091000000000006000000093800000000940000000009070000003129556000000028712616360.0001000000000000000000000       0911000000009100 0xff
A301S        G140KR7285130001001229150011534317500000000600000000781000000000028000000781000000007870000000076800000000074168000000005762897800.0001000000000000000000000       7820000000078100 0xff
A301S        G140KR7018670000000607150011534410500000000500000001208000000000001000001217000000012170000000118800000000007102000000000849499600.0002000000000000000000001       2080000000120700 0xff
A301S        G140KR7042670000000710150011539763500000000280000000091000000000007000000093800000000940000000009070000003129563000000028712680060.0001000000000000000000000       0911000000009100 0xff
A301S        G140KR7069260008000748150011545434200000000550000000235000000000037000000230500000002415000000022800000000472597000000011151020750.0001000000000000000000000       2355000000023450 0xff
A301S        G140KR7285130001001229150011545707500000000600000000781000000000016000000781000000007870000000076800000000074184000000005764147400.0001000000000000000000000       7820000000078100 0xff
A301S        G140KR7323410001001332150011549230500000000150000000236500000000001000000238500000002400000000023500000001015103000000024082797850.0002000000000000000000000       2365000000023600 0xff
A301S        G140KR7042670000000710150011549573500000000280000000091000000000032000000093800000000940000000009070000003129595000000028712971260.0001000000000000000000000       0911000000009100 0xff
A301S        G140KR7025820002000645150011558337200000000190000000054500000000001000000054100000000553000000005060000007489311000000039879368230.0001000000000000000000000       0546000000005450 0xff
A301S        G140KR7042670000000710150011560718500000000280000000091000000000015000000093800000000940000000009070000003129610000000028713107760.0001000000000000000000000       0911000000009100 0xff
A301S        G140KR7042670000000710150011572588500000000280000000091000000000020000000093800000000940000000009070000003129630000000028713289760.0001000000000000000000000       0911000000009100 0xff

 

원장관리시스템이란 증권사가 고객계좌 관리 및 매매, 거래내역 등을 관리할 수 있는 프로그램. 주시거래에 관한 증권사용 시스템을 의미한다.

증권사 - 원장관리시스템처리, 정보분배시스템처리(수신), 매매지원시스템(거래소연계) - HTS,MTS,WTS

거래소 - 매매지원시스템(채널,매매,매칭), 청산관련시스템, 정보분배시스템(송신)


(1)
1. BackupFileToMemory - 하루동안 쌓여진 데이타를 한번에 메모리에 로딩
2. http://192.168.0.37:8080 확인

(2)
1. 마스터배치실행
2. 실시간 tcp 데이타 송신 & 수신
3. http://192.168.0.37:8080 확인

 

KRX시장시스템
용어정리
- 채널(CH), 매칭,대량매칭(ME), 매매,트랜잭션(TR)

유가>
증권사 원장관리 시스템<->
증권사(매도주문)->채널->매칭->매매지원->정보분배->증권사(체결,호가등)
증권사(매수주문)->채널->매칭->매매지원->정보분배->증권사(체결,호가등)

코스닥>
증권사 원장관리 시스템<->

증권사(매도주문)->채널->매칭->매매지원->정보분배->증권사(체결,호가등)
증권사(매수주문)->채널->매칭->매매지원->정보분배->증권사(체결,호가등)

코넥스>
증권사 원장관리 시스템<->

증권사(매도주문)->채널->매칭->매매지원->정보분배->증권사(체결,호가등)
증권사(매수주문)->채널->매칭->매매지원->정보분배->증권사(체결,호가등)

 

                  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

매매체결          준비작업

청산결제          준비작업

정보분배          준비작업

시장감시          준비작업

                  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

매매체결              시스템점검

청산결제              시스템점검

정보분배              시스템점검

시장감시              시스템점검

                  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

매매체결                        호가접수 & 매매체결 & 회원사데이타 제공

청산결제                        실시간,배치 데이타 송수신

정보분배                        시장데이타 수신,가공,분배

시장감시                        불공정거래적출

                  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

매매체결                                                                   배치작업

청산결제                                                                   배치작업

정보분배                                                                   배치작업

시장감시                                                                   배치작업

#증권정보 실시간데이타 웹페이지에 구현

#거래소,코스닥,코넥스 호가,체결,거래원정보는 실시간으로 웹페이지에 표시되어야 한다.
- 대상단말 : 로그인되어 있는 사용자

1. 거래소 & Koscom데이타 -> RcvTData -> RcvQData -> Shared Memory
1.1 체결데이타 수신시, SendQData로 Ack신호
1.2 호가데이타 수신시, SendQData로 Ack신호
1.3 거래원데이타 수신시, SendQData로 Ack신호
1.4 지수데이타 수신시, SendQData로 Ack신호

2. Shared Memory -> SendQData(Ack신호를 받으면) -> WebSocket -> WebBrowser

Continue,

#증권정보 홈페이지 구성 단계별 데이타 처리과정

-Master
1. 거래소&Koscom -> RcvTData(Tcp) -> ReadQBatch -> Shared Memory(Kse,Kosdaq,Elw,Jisu,Konex Master), MySQL
2. 거래소&Koscom -> RcvTData(Tcp) -> ReadQFutureBatch -> Shared Memory(K200 Future Master), MySQL
3. 거래소&Koscom -> RcvTData(Tcp) -> ReadQOptionBatch -> Shared Memory(K200 Option Master), MySQL

-Chegyul,Hoga,Trade,Jongga,Jisu 등등
4. 거래소&Koscom -> RcvTData(Tcp) -> ReadQData -> Shared Memory(Kse,Kosdaq,Elw,Jisu,Konex)
5. 거래소&Koscom -> RcvTData(Tcp) -> ReadQFutureData -> Shared Memory(K200 Future)
6. 거래소&Koscom -> RcvTData(Tcp) -> ReadQOptionData -> Shared Memory(K200 Option)

7. Shared Memory(Kse,Kosdaq,Elw,Jisu,Konex) -> Jni -> Java -> jsp -> WebBrowser
- final sise, full jisu
8. Shared Memory(K200 Future) -> Jni -> Java -> jsp -> WebBrowser
- final sise
9. Shared Memory(K200 Option) -> Jni -> Java -> jsp -> WebBrowser
- final sise
10. Shared Memory(Common) -> Jni -> Java -> jsp -> WebBrowser
- final statistics

11. Shared Memory(Kse,Kosdaq,Elw,Jisu,Konex) -> SHELL -> MySQL -> Java -> jsp -> WebBrowser
- minute sise, minute jisu
12. Shared Memory(K200 Future) -> SHELL -> MySQL -> Java -> jsp -> WebBrowser
- minute sise
13. Shared Memory(K200 Option) -> SHELL -> MySQL -> Java -> jsp -> WebBrowser
- minute sise

 

+ Recent posts