Annotation of OpenXM/doc/OpenXM-specs/start-session.tex, Revision 1.1.1.1
1.1 noro 1: %% $OpenXM$
2: //&jp \section{TCP/IP でのセッションのスタート}
3: //&eg \section{How to start a session on TCP/IP} (This section has not yet been translated.)
4:
5: /*&jp
6: コントロールプロセス, 計算プロセス
7: ともに, 起動直後に
8: 1 byte のデータを書き出し flush する.
9: そのあと, 1 byte のデータを読み込む.
10: クライアントはコントロールプロセス, 計算プロセス
11: につながるファイルディスクリプタの両方から
12: まず 1 byte のデータを読む.
13: そのあと
14: 1 byte のデータを書き出し flush する.
15: 1 byte のデータは,
16: {\tt 0}, {\tt 1}, {\tt FF} のどれかであり,
17: {\tt 0} は以下の通信において {\tt int32} をおくるのに,
18: network byte order を使用したい,
19: {\tt 1} は以下の通信において {\tt int32} をおくるのに,
20: little endian を使用したい,
21: {\tt FF} は以下の通信において {\tt int32} をおくるのに,
22: big endian を使用したい,
23: という意味である.
24: 両者の希望が一致しない場合はつねに {\tt 0} (network byte order)
25: を使用する.
26: Network byte order しか実装していないシステムでは,
27: {\tt 0} をおくればよい.
28: ただし効率が問題となる通信において, network byte order への変換は
29: おおきなボトルネックとなることがあることを了解しておくべきである.
30:
31: \begin{verbatim}
32: #define OX_BYTE_NETWORK_BYTE_ORDER 0
33: #define OX_BYTE_LITTLE_ENDIAN 1
34: #define OX_BYTE_BIG_ENDIAN 0xff
35: \end{verbatim}
36:
37:
38: 注意: {\tt OpenXM/src/kxx} に含まれる, {\tt ox} (コントロールプロセス,
39: 計算プロセスをたちあげるローンチャ)は, 標準で One Time Password
40: の機能をもっています.
41: この機能を OFF にするには {\tt -insecure} option を使用して下さい.
42: One Time Password は 0 で終了するバイト列であり,
43: コントロール, 計算双方のプロセスをたちあげるまえに,
44: {\tt ox} はコントロール, 計算双方のプロセスに対応する,
45: ふたつのポートに
46: One Time Password バイト列を送出しています.
47:
48: {\tt ox} (ソースは {\tt oxmain.c}, {\tt kan96xx/plugin/oxmisc.c})においては
49: {\tt oxTellMyByteOrder()} が, サーバについての byte order 情報の
50: 送出, 読み込みをやっている.
51: クライアントについては,
52: {\tt oxSetByteOrder()} が, byte order 情報の読み込み, 送出をおこなっている.
53:
54: One time パスワードは安全な通信路で配送される必要があります.
55: また, 現在の {\rm ox} の実装では, One time パスワードを
56: サーバ, クライアントに login している人はすべて見ることが
57: できますので, サーバ, クライアントには悪意のある人はいないと
58: 仮定しないといけません.
59: One time パスワードを安全に配送し, リモートマシンの {\rm ox}
60: を立ち上げるには
61: たとえば
62: {\tt ssh} を {\tt -f } オプションを用いて使用します.
63:
64: 以下は {\rm sm1} での実装, 動作例です.
65: ここでは, {\tt yama} の {\tt sm1} より {\tt dc1} の {\tt ox}
66: を立ち上げています.
67: {\footnotesize
68: \begin{verbatim}
69: yama% sm1
70: sm1>(ox.sm1) run ;
71: ox.sm1, --- open sm1 protocol module 10/1,1999 (C) N.Takayama. oxhelp for help
72: sm1>[(dc1.math.kobe-u.ac.jp) (taka)] sm1connectr-ssh /ox.ccc set ;
73: Hello from open. serverName is yama.math.kobe-u.ac.jp and portnumber is 0
74: Done the initialization. port =1024
75: Hello from open. serverName is yama.math.kobe-u.ac.jp and portnumber is 0
76: Done the initialization. port =1025
77: [ 4 , 1025 , 3 , 1024 ]
78: Executing the command : ssh -f dc1.math.kobe-u.ac.jp -l taka
79: "/home/taka/OpenXM/bin/oxlog /usr/X11R6/bin/xterm -icon
80: -e /home/taka/OpenXM/bin/ox -reverse -ox /home/taka/OpenXM/bin/ox_sm1
81: -host yama.math.kobe-u.ac.jp -data 1025 -control 1024 -pass 518158401 "
82: [
83: taka@dc1.math.kobe-u.ac.jp's password:
84: Trying to accept... Accepted.
85: Trying to accept... Accepted.
86:
87: Control port 1024 : Connected.
88:
89: Stream port 1025 : Connected.
90: Byte order for control process is network byte order.
91: Byte order for engine process is network byte order.
92: \end{verbatim}
93: }
94:
95: */
96:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>