фрагментация UDP (опять я со своим UDP)

Модератор: Модераторы разделов

Аватара пользователя
cy6erGn0m
Сообщения: 119
ОС: MandrivaLinux/Solaris 10

фрагментация UDP

Сообщение cy6erGn0m »

Вот такой вопрос: если я отправлю большой UDP-пакет и он, конечно же, не влезет в MTU, то он ведь будет фрагментирован. При этом получиться много отдельных UDP-пакетов? Или ка-то иначе?

Если да, то иными словами, это значит, что данные даже внутри одной датаграммы тоже могу перепутаться (прийти в неверном порядке, продублироваться, потеряться)?

Тогда смысла рассматривать такой субъект, как датаграмма нет.. есть просто произвольно испорченный поток.

Или я всё же не понимаю какой-то тонкости? Есть хоть что-то, что гарантируется в конце-то концов?
I want to Believe!

They must find it difficult...
Those who have taken authority as the truth,
Rather than trusth as the authority.
/G.Messey/
Спасибо сказали:
Аватара пользователя
BlackStar
Сообщения: 1338
Статус: We are all Kosh
ОС: Fedora 10

Re: фрагментация UDP

Сообщение BlackStar »

Фрагментируется не UDP, а IP пакет.
LightLang Team
Спасибо сказали:
Аватара пользователя
AestheteAnimus
Сообщения: 135
ОС: FreeBSD 8.0-RELEASE amd64

Re: фрагментация UDP

Сообщение AestheteAnimus »

Спасибо сказали:
Аватара пользователя
кодировщик
Сообщения: 974
Статус: зарёган в пятницу 13
ОС: Linux

Re: фрагментация UDP

Сообщение кодировщик »

Кстати у кого-то есть нормально-реализованная функция проверки контрольной суммы пакета, которую используете в своих приложениях?!
Спасибо сказали:
Аватара пользователя
AestheteAnimus
Сообщения: 135
ОС: FreeBSD 8.0-RELEASE amd64

Re: фрагментация UDP

Сообщение AestheteAnimus »

Ну а что Вам мешает в исходниках подсмотреть?
Спасибо сказали:
Аватара пользователя
кодировщик
Сообщения: 974
Статус: зарёган в пятницу 13
ОС: Linux

Re: фрагментация UDP

Сообщение кодировщик »

AestheteAnimus писал(а):
15.05.2009 17:07
Ну а что Вам мешает в исходниках подсмотреть?

в исходниках чего?!
У меня в принципе есть, хотел другие посмотреть.
Спасибо сказали:
Аватара пользователя
AestheteAnimus
Сообщения: 135
ОС: FreeBSD 8.0-RELEASE amd64

Re: фрагментация UDP

Сообщение AestheteAnimus »

кодировщик писал(а):
15.05.2009 17:23
в исходниках чего?!
У меня в принципе есть, хотел другие посмотреть.


Ну как же чего? В исходниках того, под чем работаете. Вот, например, что есть в моей бзде:

Код: Выделить всё

find /usr/src/ | grep in_cksum.[^h]
/usr/src/lib/libstand/in_cksum.c
/usr/src/sys/amd64/amd64/in_cksum.c
/usr/src/sys/arm/arm/in_cksum.c
/usr/src/sys/arm/arm/in_cksum_arm.S
/usr/src/sys/i386/i386/in_cksum.c
/usr/src/sys/ia64/ia64/in_cksum.c
/usr/src/sys/netinet/in_cksum.c
/usr/src/sys/powerpc/powerpc/in_cksum.c
/usr/src/sys/sparc64/sparc64/in_cksum.c
Спасибо сказали:
Аватара пользователя
кодировщик
Сообщения: 974
Статус: зарёган в пятницу 13
ОС: Linux

Re: фрагментация UDP

Сообщение кодировщик »

AestheteAnimus писал(а):
15.05.2009 17:55
кодировщик писал(а):
15.05.2009 17:23
в исходниках чего?!
У меня в принципе есть, хотел другие посмотреть.


Ну как же чего? В исходниках того, под чем работаете. Вот, например, что есть в моей бзде:

Код: Выделить всё

find /usr/src/ | grep in_cksum.[^h]
/usr/src/lib/libstand/in_cksum.c
/usr/src/sys/amd64/amd64/in_cksum.c
/usr/src/sys/arm/arm/in_cksum.c
/usr/src/sys/arm/arm/in_cksum_arm.S
/usr/src/sys/i386/i386/in_cksum.c
/usr/src/sys/ia64/ia64/in_cksum.c
/usr/src/sys/netinet/in_cksum.c
/usr/src/sys/powerpc/powerpc/in_cksum.c
/usr/src/sys/sparc64/sparc64/in_cksum.c


Что-то я не понял, причем тут это к функции подсчёта контрольной суммы в заголовках пакетов IP, UDP, TCP, ICMP.
Спасибо сказали:
Аватара пользователя
AestheteAnimus
Сообщения: 135
ОС: FreeBSD 8.0-RELEASE amd64

Re: фрагментация UDP

Сообщение AestheteAnimus »

кодировщик писал(а):
15.05.2009 19:48
Что-то я не понял, причем тут это к функции подсчёта контрольной суммы в заголовках пакетов IP, UDP, TCP, ICMP.

Ну видимо притом, что это ее исходники ;) Вот например кусочек файла /usr/src/sys/netinet/in_cksum.c

Код: Выделить всё

/*
 * Checksum routine for Internet Protocol family headers (Portable Version).
 *
 * This routine is very heavily used in the network
 * code and should be modified for each CPU to be as fast as possible.
 */
Спасибо сказали:
Аватара пользователя
кодировщик
Сообщения: 974
Статус: зарёган в пятницу 13
ОС: Linux

Re: фрагментация UDP

Сообщение кодировщик »

AestheteAnimus писал(а):
15.05.2009 19:56
кодировщик писал(а):
15.05.2009 19:48
Что-то я не понял, причем тут это к функции подсчёта контрольной суммы в заголовках пакетов IP, UDP, TCP, ICMP.

Ну видимо притом, что это ее исходники ;) Вот например кусочек файла /usr/src/sys/netinet/in_cksum.c

Код: Выделить всё

/*
 * Checksum routine for Internet Protocol family headers (Portable Version).
 *
 * This routine is very heavily used in the network
 * code and should be modified for each CPU to be as fast as possible.
 */


Весь файл прикрепите.
Спасибо сказали:
Аватара пользователя
AestheteAnimus
Сообщения: 135
ОС: FreeBSD 8.0-RELEASE amd64

Re: фрагментация UDP

Сообщение AestheteAnimus »

Вот:
http://svn.freebsd.org/base/head/sys/netinet/in_cksum.c
А вот где он используется (функция in_cksum) применительно к UDP:
http://svn.freebsd.org/base/head/sys/netinet/udp_usrreq.c
Спасибо сказали: