CRC 16 в подключении РРР

Тема в разделе "WASM.NETWORKS", создана пользователем XshStasX, 8 авг 2009.

  1. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    Какой алгоритм вычесления контрольной сумы CRC 16 при подключении РРР ???
     
  2. vover

    vover Владимир

    Публикаций:
    0
    Регистрация:
    21 авг 2008
    Сообщения:
    202
    Я в этой теме плохо разбираюсь, так что правильность нижеприведенного файла не гарантирую.
    Смотри, что написано на 2 странице.
     
  3. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    есть открытые клиенты этого протокола.
     
  4. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    какие ??? есть к ним исходники???
     
  5. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
  6. reversecode

    reversecode Guest

    Публикаций:
    0
    есть исходники винды в гугле nt4
    там есть
     
  7. inviZ

    inviZ Сергей

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    92
    Адрес:
    Хабаровск
    Зачем так извращаться, rp-pppoe кто-то мешает глянуть?
     
  8. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    Я и не знал такого)) надо будет поискать. . .
     
  9. int_13h

    int_13h New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2008
    Сообщения:
    163
    Адрес:
    Красноряск
    Вот намедни написал реализацию CRC-16 CCITT если кому надо
    ... не комментил ибо и так всё просто
    Код (Text):
    1. var CRCTable: array [0..255] of word;
    2. ...
    3. procedure MakeCRCTable(Poly: word; Table: pointer);
    4. asm
    5.  pushad
    6.  mov EDI, Table
    7.  xor ECX, ECX
    8.  @repeat:
    9.  push ECX
    10.  xor EBX, EBX
    11.  mov BH, CL
    12.  mov CX, 8
    13.  @8b:
    14.  shl BX, 1
    15.  jnc @no_top_bit
    16.  xor BX, Poly
    17.  @no_top_bit:
    18.  sub CX, 1
    19.  jnz @8b
    20.  pop ECX
    21.  mov [EDI], BX
    22.  add EDI, 2
    23.  add ECX, 1
    24.  test ECX, 256
    25.  jz @repeat
    26.  popad
    27. end;
    28.  
    29. function CRC16(Init: word; Data: pointer; Size: dword):word;
    30. var crc: word;
    31. begin
    32.  MakeCRCTable($1021, @CRCTable);
    33.  asm
    34.   push ESI
    35.   push EDI
    36.   push ECX
    37.   lea EDI, CRCTable
    38.   mov ESI, Data
    39.   mov ECX, Size
    40.   mov AX, Init
    41.   xor EDX, EDX
    42.   @repeat:
    43.   movzx EDX, AH
    44.   shl AX, 8        
    45.   xor DL, [ESI]  
    46.   xor AX, word ptr [EDI+EDX*2]
    47.   add ESI, 1
    48.   sub ECX, 1
    49.   jnz @repeat
    50.   mov crc, AX
    51.   pop ECX
    52.   pop EDI
    53.   pop ESI
    54.  end;
    55.  result:=crc;
    56. end;