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) 공통정보(송신채널_정보구분) 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 으로 명령어를 실행하면 수신 포트갯수만큼 나올것이다.