On Mon, Dec 05, 2016 at 03:40:38PM +0200, Marian Marinov wrote:
> On 12/05/2016 02:06 PM, Григор wrote:
> > Изобщо не мога да схвана как точно го пресмятат. Пробвах някакви функции за 
> > пресмятане на crc16 но винаги дава грешен резултат.
> > 
> > получената информация е:
> > efbeadde1b0131ffd8054843363954611143454
> > 00000
> > 6c
> > 00011800
> > 0119
> > 0000000000000000000000000000000000000000
> > b343
> > 
> > Където b343 <crc> #на горната
> > 
> > Ако някой се е занимавал с това да удари едно рамо. Ще черпя.
> UDP използва pseudo IP header за пресмятане на checksums:
> 
>   http://www.tcpipguide.com/free/t_UDPMessageFormat-2.htm
> 
> Информация за самите сметки(padding-а е важен):
> 
>   http://images.slideplayer.com/15/4794330/slides/slide_54.jpg

Струва ми се, че Григор има предвид нещо по-различно: май говори за
това, че в *данните*, предадени в UDP пакета, има някакво CRC на
по-високо ниво, изчислявано от програмите, които си прехвърлят тези
данни.  Лошото е, че в такъв случай не е много ясно какво изобщо може
да се разбере - като начало, не е ясно дали CRC-то е върху *всички*
данни в пакета или, още по-зле, дали не е и върху някакви други данни -
т.е. дали в пресмятането не участват някакви данни, които не са в този
пакет (пореден номер на пакета, ID на едната или другата страна, фаза
на луната, знае ли човек).  Да не говорим за това, че не знаеш какъв
е полиномът, не знаеш дали трябва да размениш тук-там някой байт (дали
преди пресмятането някой не обръща нещата от единия в другия byte order),
и всякакви такива щуротии :(

Поздрави,
Петър

-- 
Peter Pentchev  r...@ringlet.net r...@freebsd.org p...@storpool.com
PGP key:        http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint 2EE7 A7A5 17FC 124C F115  C354 651E EFB0 2527 DF13

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Lug-bg mailing list
Lug-bg@linux-bulgaria.org
http://linux-bulgaria.org/mailman/listinfo/lug-bg

Reply via email to