Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
375 | lvd | 1 | /* |
2 | +0: len of payload N (0..255) |
||
480 | lvd | 3 | +1: channel number (0..239, 240-255 are control channels) |
375 | lvd | 4 | +2..+N+2: payload (0..255 bytes) |
5 | +N+3..+N+4: crc16 ccitt big-endian of preceding bytes |
||
6 | |||
7 | reset sequence: |
||
8 | repeating 01 FF 00 F8 53 |
||
9 | where: |
||
10 | 01 - length of payload |
||
11 | FF - control channel |
||
12 | 00 - payload of single zero byte |
||
13 | F853 - crc of 01FF00 |
||
14 | */ |
||
15 | |||
16 | |||
17 | |||
18 | ╧ЁюЄюъюы zxinet яЁхфэрчэрўхэ фы ёт чш ъюья№■ЄхЁр ZX-Spectrum (т фры№эхщ°хь - |
||
19 | ъюья№■ЄхЁ) ё ёхЄхт√ь ъюэЄЁюыыхЁюь (т фры№эхщ°хь - ъюэЄЁюыыхЁ), яЁхфюёЄрты ■∙шь |
||
20 | яЁшъырфэ√ь яЁюуЁрььрь тючьюцэюёЄ№ ёюхфшэхэш ё ёхЄ№■ яю яЁюЄюъюырь tcp ш udp. |
||
21 | |||
22 | ┬ючьюцэюёЄш яЁюЄюъюыр: |
||
480 | lvd | 23 | 1) ёєььрЁэюх ўшёыю юЄъЁ√Є√ї ёюъхЄют: юЄ 4 фю 240 (ърцф√щ ъюэЄЁюыыхЁ шьххЄ ётюх |
376 | lvd | 24 | юуЁрэшўхэшх) |
375 | lvd | 25 | 2) TCP-ёюхфшэхэшх ё тэх°эшь рфЁхёюь (CONNECT) |
26 | 3) яЁюёыє°штрэшх яюЁЄр ш єёЄрэютыхэшх TCP-ёюхфшэхэш эр ыюъры№эюь рфЁхёх (BIND) |
||
27 | 4) ъюэЄЁюы№ ЎхыюёЄэюёЄш схч тюёёЄрэютыхэш |
||
28 | |||
29 | |||
30 | 1. ╤т ч№ ъюья№■ЄхЁр ё ёхЄхт√ь ъюэЄЁюыыхЁюь яЁюшёїюфшЄ яєЄ╕ь фтєёЄюЁюээхую |
||
31 | юсьхэр яюЄюърьш срщЄ. ╧ЁхфяюырурхЄё , ўЄю ёє∙хёЄтє■Є тючьюцэюёЄш фы єяЁртыхэш |
||
32 | ¤Єшьш яюЄюърьш: т ёЄюЁюэє юЄ ъюья№■ЄхЁр ъ ъюэЄЁюыыхЁє - тючьюцэюёЄ№ ъюэЄЁюыыхЁє |
||
33 | яЁшюёЄрэютшЄ№ фры№эхщ°шщ яЁш╕ь (эряЁшьхЁ, шч-чр яхЁхяюыэхэш сєЇхЁр |
||
34 | ъюэЄЁюыыхЁр), т ёЄюЁюэє юЄ ъюэЄЁюыыхЁр ъ ъюья№■ЄхЁє - тючьюцэюёЄ№ ъюья№■ЄхЁє |
||
35 | юяЁхфхышЄ№ юЄёєЄёЄтшх шыш эрышўшх эют√ї срщЄ т яюЄюъх. ╩юэЄЁюыыхЁ сєЇхЁшчєхЄ ш |
||
36 | яЁшюёЄрэртыштрхЄ яюЄюъ срщЄ т ёЄюЁюэє ъюья№■ЄхЁр т ёыєўрх, хёыш ъюья№■ЄхЁ эх |
||
37 | яЁюшчтюфшЄ ёўшЄ√трэшх ётюхую яюЄюър (яюЄюър ъюэЄЁюыыхЁ->ъюья№■ЄхЁ). |
||
38 | |||
39 | ╬сьхэ фрээ√ьш яЁюшёїюфшЄ яюёЁхфёЄтюь яръхЄют, эрїюф ∙шїё т яюЄюъх срщЄ. ╘юЁьрЄ |
||
40 | яръхЄр: |
||
41 | |||
42 | ╤юфхЁцшьюх яюы | ─ышэр яюы , срщЄ |
||
43 | --------------------+-------------------------- |
||
44 | фышэр яюыхчэющ | |
||
45 | эруЁєчъш N, | 1 |
||
46 | N=0..255 | |
||
47 | --------------------+-------------------------- |
||
48 | эюьхЁ ърэрыр, | |
||
49 | 0..255 | 1 |
||
50 | | |
||
51 | --------------------+-------------------------- |
||
52 | | |
||
53 | яюыхчэр эруЁєчър | N (0..255) |
||
54 | | |
||
55 | --------------------+-------------------------- |
||
56 | CRC16 ccitt тёхї | |
||
57 | яЁхф√фє∙шї яюыхщ, | 2 |
||
58 | big-endian | |
||
59 | --------------------+-------------------------- |
||
60 | |||
61 | |||
62 | ─ы юЄъЁ√Єш юЄфхы№эюую TCP-ёюхфшэхэш эхюсїюфшью юЄъЁ√Є№ |
||
63 | ърэры ёт чш ё ъюэЄЁюыыхЁюь, т Ёрьърї ъюЄюЁюую сєфхЄ яЁюшёїюфшЄ№ ЁрсюЄр ё |
||
64 | ёюхфшэхэшхь. |
||
480 | lvd | 65 | ─юёЄєяэ√ ърэры√ ё эюьхЁрьш 00..EF, ърэры√ F0-FF ты ■Єё ёыєцхсэ√ьш ш яЁхфэрчэрўхэ√ |
375 | lvd | 66 | фы єяЁртыхэш юёЄры№э√ьш ърэрырьш (юЄъЁ√Єшх/чръЁ√Єшх, чряЁюё ёЄрЄєёр ш Є.ф.) ш |
480 | lvd | 67 | ъюэЄЁюыыхЁюь т Ўхыюь. ┬ эрёЄю ∙шщ ьюьхэЄ шёяюы№чєхЄё Єюы№ъю ёыєцхсэ√щ ърэры FF. |
375 | lvd | 68 | |
69 | ╩рцф√щ ърэры яюфЁрчєьхтрхЄ яръхЄ√, эряЁртыхээ√х т юсх ёЄюЁюэ√ |
||
70 | (ъюья№■ЄхЁ->ъюэЄЁюыыхЁ ш ъюэЄЁюыыхЁ->ъюья№■ЄхЁ), шьх■∙шх юфшэръют√щ эюьхЁ |
||
71 | ърэрыр. ┬ Ёрьърї юфэюую ърэрыр яЁюшёїюфшЄ юсьхэ эхёЄЁєъЄєЁшЁютрээ√ьш (Є.х. |
||
480 | lvd | 72 | уЁрэшЎ√ яръхЄют эх шьх■Є ёь√ёыр) яюЄюърьш срщЄ т юсх ёЄюЁюэ√. ╚ёъы■ўхэшхь |
73 | ты ■Єё ёыєцхсэ√х ърэры√, уфх яЁюшчтюфшЄё шьхээю юсьхэ ёююс∙хэш ьш, шьх■∙шьш |
||
375 | lvd | 74 | юяЁхфхы╕ээє■ фышэє ш ёЄЁєъЄєЁє. |
75 | |||
76 | ╧ръхЄ√ эєыхтющ фышэ√ т яюы№чютрЄхы№ёъшї ърэрырї шьх■Є ёяхЎшры№э√щ ёь√ёы (юс |
||
77 | ¤Єюь эшцх), т ёыєцхсэюь ърэрых Єръшх яръхЄ√ шуэюЁшЁє■Єё . |
||
78 | |||
79 | 2. ╘юЁьрЄ ёююс∙хэшщ ёыєцхсэюую (#FF) ърэрыр |
||
80 | |||
81 | ╧Ёшьхўрэшх: яЁштюф Єё Єюы№ъю ёрьш ёююс∙хэш , схч "юс╕ЁЄъш" (чруюыютър ш CRC). |
||
82 | ╤ююс∙хэшх ёюёЄрты хЄ яюыхчэє■ эруЁєчъє яръхЄр. |
||
83 | |||
84 | ═ряЁртыхэшх ъюья№■ЄхЁ->ъюэЄЁюыыхЁ: |
||
85 | |||
86 | ╧хЁт√щ срщЄ ёююс∙хэш тёхуфр юяЁхфхы хЄ ъюьрэфє, яюё√ырхьє■ ъюэЄЁюыыхЁє. |
||
87 | ═рышўшх яюёыхфє■∙шї срщЄ (рЁуєьхэЄют) ш шї чэрўхэшх юяЁхфхы хЄё ъюьрэфэ√ь |
||
88 | срщЄюь. |
||
89 | |||
90 | ╤яшёюъ ъюьрэф: |
||
91 | |||
376 | lvd | 92 | #00 - ъюьрэфр чряЁюёр шэшЎшрышчрЎшш (ю яЁюЎхфєЁх шэшЎшрышчрЎшш ёь. эшцх). |
375 | lvd | 93 | |
480 | lvd | 94 | #01 N - чряЁюё ёЄрЄєёр ърэрыр N (00..EF) |
375 | lvd | 95 | |
480 | lvd | 96 | #02 N - юЄъЁ√Єшх ърэрыр N (00..EF) |
375 | lvd | 97 | |
98 | #03 N - чръЁ√Єшх ърэрыр N, рэрыюушўэю #02 |
||
99 | |||
480 | lvd | 100 | ┬эшьрэшх! ъюьрэф√ #01, #02 ш #03 ё эюьхЁрьш ърэрыют F0-FF шуэюЁшЁє■Єё ъюэЄЁюыыхЁюь |
375 | lvd | 101 | ш юёЄр■Єё схч юЄтхЄр. |
102 | |||
103 | #04 - чряЁюё ьръёшьры№эюую ўшёыр юЄъЁ√Є√ї ърэрыют, яюффхЁцштрхь√ї ъюэЄЁюыыхЁюь. |
||
104 | ╩юэЄЁюыыхЁ юс чрэ яюффхЁцштрЄ№ эх ьхэхх 4 юфэютЁхьхээю юЄъЁ√Є√ї ърэрыют, схч |
||
105 | яЁшт чъш ъ ъюэъЁхЄэ√ь эюьхЁрь ърэрыют. |
||
106 | |||
376 | lvd | 107 | #FF - ъюьрэфр яюфЄтхЁцфхэш шэшЎшрышчрЎшш. |
375 | lvd | 108 | |
376 | lvd | 109 | |
375 | lvd | 110 | ═ряЁртыхэх ъюэЄЁюыыхЁ->ъюья№■ЄхЁ: |
111 | |||
112 | └эрыюушўэю, яхЁт√щ срщЄ юяЁхфхы хЄ Єшя юЄтхЄр шыш ъюьрэфє, эрышўшх юёЄры№э√ї |
||
113 | срщЄ юяЁхфхы хЄё яхЁт√ь. |
||
114 | |||
115 | ╤яшёюъ ъюьрэф: |
||
116 | |||
376 | lvd | 117 | #00 - ъюьрэфр чряЁюёр шэшЎшрышчрЎшш |
375 | lvd | 118 | |
119 | #01 N X (3 срщЄр) - ёЄрЄєё ърэрыр N. ┬√фр╕Єё т юЄтхЄ эр ъюьрэф√ #01, #02, #03; |
||
120 | т ёыєўрх чръЁ√Єш ърэрыр яю шэшЎшрЄштх ъюэЄЁюыыхЁр, р Єръцх яЁш яюя√Єъх |
||
121 | ъюья№■ЄхЁр яюё√ырЄ№ фрээ√х т чръЁ√Є√щ ърэры. |
||
122 | |||
123 | ╘юЁьрЄ срщЄр X: |
||
124 | |||
125 | сшЄ7 - ==1: ърэры юЄъЁ√Є, ==0: ърэры чръЁ√Є. яЁшёєЄёЄтєхЄ тю тёхї ёЄрЄєёэ√ї |
||
126 | ёююс∙хэш ї |
||
127 | |||
128 | сшЄ6 - ==1: ърэры с√ы єёях°эю юЄъЁ√Є шыш чръЁ√Є яю шэшЎшрЄштх ъюья№■ЄхЁр. |
||
129 | ╧ЁшёєЄёЄтєхЄ Єюы№ъю т юЄтхЄрї эр єёях°эю т√яюыэхээ√х ъюьрэф√ #02 ш #03. ┼ёыш т |
||
130 | юЄтхЄ эр ъюьрэфє #02 яЁшїюфшЄ ёЄрЄєё: сшЄ7=0, сшЄ6=0, сшЄ1=0, Єю ърэры эх ьюцхЄ |
||
131 | с√Є№ юЄъЁ√Є яю ъръшь-ышсю яЁшўшэрь эр ёЄюЁюэх ъюэЄЁюыыхЁр. |
||
132 | |||
133 | сшЄ5 - ==1: ърэры с√ы чръЁ√Є яю шэшЎшрЄштх ъюэЄЁюыыхЁр. ┬ьхёЄх ё сшЄюь 7 ==0 |
||
134 | яЁшёєЄёЄтєхЄ т ёЄрЄєёэюь ёююс∙хэшш, ъюЄюЁюх юфэюъЁрЄэю яюё√ырхЄё т ёыєўрх |
||
135 | чръЁ√Єш ърэрыр яю шэшЎшрЄштх ъюэЄЁюыыхЁр. |
||
136 | |||
376 | lvd | 137 | сшЄ1 - ==1: яюя√Єър юЄъЁ√Єш єцх юЄъЁ√Єюую шыш чръЁ√Єш єцх чръЁ√Єюую ърэрыр. |
138 | ╧ЁшёєЄёЄтєхЄ Єюы№ъю т юЄтхЄрї эр ю°шсюўэ√х ъюьрэф√ #02 ш #03. |
||
139 | |||
375 | lvd | 140 | сшЄ0 - ==1: яюя√Єър яюёырЄ№ фрээ√х т чръЁ√Є√щ ърэры. ┬ьхёЄх ё сшЄюь 7 =0 |
141 | ты хЄё юЄтхЄюь эр яюё√ыъє фрээ√ї т чръЁ√Є√щ яюы№чютрЄхы№ёъшщ ърэры. |
||
142 | |||
143 | |||
144 | #04 N - юЄтхЄ эр ъюьрэфє #04, N - ьръёшьры№эюх ўшёыю юфэютЁхьхээю юЄъЁ√Є√ї |
||
480 | lvd | 145 | ърэрыют, ъюЄюЁюх яюффхЁцштрхЄ ъюэЄЁюыыхЁ. N=4..240. |
375 | lvd | 146 | |
376 | lvd | 147 | #FF - ъюьрэфр яюфЄтхЁцфхэш шэшЎшрышчрЎшш. |
375 | lvd | 148 | |
149 | |||
480 | lvd | 150 | ╩рцф√щ тэют№ юЄъЁ√Є√щ ърэры т√уы фшЄ, ъръ тэют№ юЄъЁ√Єюх TCP-ёюхфшэхэшх ё SOCKS-5 |
375 | lvd | 151 | ёхЁтхЁюь схч рєЄхэЄшЇшърЎшш (http://ru.wikipedia.org/wiki/SOCKS, |
152 | http://rfc2.ru/1928.rfc). |
||
153 | |||
154 | ╧ръхЄ эєыхтющ фышэ√ т юЄъЁ√Єюь яюы№чютрЄхы№ёъюь ърэрых Ёртэюёшыхэ т√чютє |
||
155 | shutdown [ЄєЄ эрфю єЄюўэшЄ№] ёЄюЁюэющ, яюёырт°хщ яръхЄ ш ючэрўрхЄ, ўЄю сюы№°х |
||
480 | lvd | 156 | фрээ√ї т фрээюь эряЁртыхэшш яюёЄєярЄ№ эх сєфхЄ, эю ёюхфшэхэшх юёЄр╕Єё юЄъЁ√Є√ь |
157 | т юфэюёЄюЁюээхь Ёхцшьх. ╧юёыхфє■∙шх яюя√Єъш яюёырЄ№ ъръшх-ышсю фрээ√х т чръЁ√Єюь |
||
158 | эряЁртыхэшш сєфєЄ шуэюЁшЁютрЄ№ё . ╟ръЁ√Єшх ърэрыр (яю шэшЎшрЄштх ъюэЄЁюыыхЁр шыш |
||
159 | ъюья№■ЄхЁр) Ёртэюёшы№эю т√чтрээюьє close. ╧Ёш ¤Єюь ьюуєЄ яюЄхЁ Є№ё эхъюЄюЁ√х |
||
160 | яюёырээ√х, эю эх фюёЄшу°шх рфЁхёрЄр фрээ√х т TCP-ёюхфшэхэшш. ╧юёых °рЄфрєэют ё |
||
161 | юсюшї ёЄюЁюэ яЁюшёїюфшЄ чръЁ√Єшх ърэрыр яю шэшЎшрЄштх ъюэЄЁюыыхЁр ё |
||
162 | √ёююЄтхЄёЄтє■∙шь ёЄрЄєёэ√ь ёююс∙хэшхь. |
||
375 | lvd | 163 | |
164 | |||
165 | |||
166 | ╧ЁюЎхфєЁр шэшЎшрышчрЎшш. |
||
167 | |||
376 | lvd | 168 | ╚эшЎшрышчрЎш яЁюшёїюфшЄ яЁш яхЁтюэрўры№эюь єёЄрэютыхэшш ёт чш ъюья№■ЄхЁр ё |
169 | ъюэЄЁюыыхЁюь, ышсю яЁш яюыєўхэшш ю°шсюўэюую яръхЄр (ё эхяЁртшы№э√ь CRC). ┬ |
||
170 | яхЁтюь ёыєўрх шэшЎшрышчрЎш яЁютюфшЄё яю шэшЎшрЄштх ъюья№■ЄхЁр, тю тЄюЁюь - яю |
||
171 | шэшЎшрЄштх юсэрЁєцшт°хую ю°шсюўэ√щ яръхЄ. |
||
375 | lvd | 172 | |
376 | lvd | 173 | ╚эшЎшрышчрЎш яЁютюфшЄё ёыхфє■∙шь юсЁрчюь: |
174 | |||
175 | 1. чрърэўштрхЄё яхЁхфрўр Єхъє∙хую яръхЄр (хёыш т ьюьхэЄ эрўрыр шэшЎшрышчрЎшш |
||
176 | ъръющ-Єю яръхЄ х∙╕ яхЁхфртрыё ) |
||
177 | |||
480 | lvd | 178 | 2. ╬Єё√ыр■Єё яютЄюЁ ■∙шхё ъюьрэф√ чряЁюёр шэшЎшрышчрЎшш (яръхЄ тьхёЄх ё |
179 | чруюыютъюь ш CRC: #01 #FF #00 #F8 #53). |
||
376 | lvd | 180 | |
181 | 3. фхщёЄтшх 2 яЁютюфшЄё фю ьюьхэЄр яюыєўхэш т юЄтхЄ ъюьрэф√ чряЁюёр шыш |
||
182 | яюфЄтхЁцфхэш шэшЎшрышчрЎшш (яръхЄр #01 #FF #00 #F8 #53 шыш яръхЄр |
||
183 | #01 #FF #FF #E6 #A3) |
||
184 | |||
185 | ╧юёыхфютрЄхы№эюёЄ№ яютЄюЁ ■∙шїё яръхЄют #01 #FF #00 #F8 #53 шыш |
||
186 | #01 #FF #FF #E6 #A3 юсырфрхЄ ётющёЄтюь ёрьюёшэїЁюэшчрЎшш, Є.х. шэЄхЁяЁхЄшЁє ¤Єє |
||
187 | яюёыхфютрЄхы№эюёЄ№ ё яЁюшчтюы№эюую ьхёЄр ш юЄсЁрё√тр яюыєўр■∙шхё яръхЄ√ ё |
||
188 | эхтхЁэющ CRC, ўхЁхч эхъюЄюЁюх тЁхь яЁш╕ьэшъ чрёшэїЁюэшчшЁєхЄё ш ёЄрэхЄ |
||
189 | яЁшэшьрЄ№ Єюы№ъю тхЁэ√х єърчрээ√х яръхЄ√. |
||
190 | |||
191 | ┬ю тЁхь ёрьюёшэїЁюэшчрЎшш ЄЁхсєхЄё юЄё√ыър эхёъюы№ъшї яютЄюЁ ■∙шїё яръхЄют ё |
||
192 | Ўхы№■ яЁюяєёър ърцфюую шч эхтхЁэю яЁшэшьрхь√ї яръхЄют. |
||
193 | |||
194 | 4. ╚эшЎшрышчрЎш чртхЁ°хэр. |
||
195 | |||
196 | |||
197 | ╧юёых чртхЁ°хэш шэшЎшрышчрЎшш тёх юЄъЁ√Є√х эр ьюьхэЄ эрўрыр шэшЎшрышчрЎшш |
||
198 | ърэры√ фюыцэ√ ёЄрЄ№ чръЁ√Є√ьш ъръ ёю ёЄюЁюэ√ ъюья№■ЄхЁр, Єръ ш ёю ёЄюЁюэ√ |
||
199 | ъюэЄЁюыыхЁр. |
||
200 | |||
201 | |||
202 | ╩юья№■ЄхЁ фюыцхэ с√Є№ т ы■сющ ьюьхэЄ уюЄют ъ яЁюЎхфєЁх |
||
203 | шэшЎшрышчрЎшш ёю ёЄюЁюэ√ ъюэЄЁюыыхЁр. ─ы ¤Єюую, т ёыєўрх яюыєўхэш яръхЄр |
||
204 | #01 #FF #00 #F8 #53 ъюья№■ЄхЁ тїюфшЄ т яЁюЎхфєЁє шэшЎшрышчрЎшш, ёсЁрё√трхЄ |
||
205 | тёх юЄъЁ√Є√х ърэры√ ш юЄтхўрхЄ яръхЄюь #01 #FF #FF #E6 #A3 |
||
206 | |||
207 | ┬ ёыєўрх, хёыш т ьюьхэЄ яЁюЎхфєЁ√ шэшЎшрышчрЎшш яЁюшчю°╕ы ёсющ (юфэр шч ёЄюЁюэ |
||
208 | яЁшэ ыр эхтхЁэ√щ яръхЄ), Єю фры№эхщ°р шэшЎшрышчрЎш яЁюфюыэрхЄё юфэютЁхьхээю |
||
209 | юсюшьш ёЄюЁюэрьш, юЄё√ыр■∙шьш яръхЄ√ чряЁюёр шэшЎшрышчрЎшш, фю ьюьхэЄр |
||
210 | ёрьюёшэїЁюэшчрЎшш ё юсюшї ёЄюЁюэ. |
||
211 | |||
212 |