On Sat, Feb 21, 2015 at 11:58:50AM +0300, Владимир Друзенко wrote:
> 21.02.2015 09:59, Eugene Grosbein пишет: > > On Fri, Feb 20, 2015 at 05:27:13PM +0300, Владимир Друзенко wrote: > > > >> А зачем тогда использовать протокол pptp?! > >> > >> * *tcp* to tunnel PPP session over a TCP connection. Frames are > >> encoded in the same way as asychronous serial connections. > > Туннелировать TCP через TCP (даже с прослойкой PPP) значит > > нарываться на неприятности c подвисающими коннектами. > > > >> * *udp* to tunnel PPP session over a UDP connection. Each frame is > >> encapsulated in a UDP datagram packet. > > Туннелировать PPP через UDP, вообще говоря, нельзя: UDP, в отличие > > от pptpgre, не гарантирует сохранение порядка дейтаграмм. > > А для PPP требуется сохранение порядка фреймов. > > Иначе компрессия/шифрование в PPP сойдут с ума, > > проверено на mpd/ppp over udp с хостером LeaseWeb. > Т.е. разработчики mpd сделали полностью неработающие варианты? Ох > сомневаюсь (хотя сам не пробовал). А я пробовал. И об этом написано в документации mpd. Вариант с UDP работает удовлетворительно только при условии отсутствия переупорядочивания пакетов в транзите. > Удивлюсь, если они эту нумерацию не ведут самостоятельно. > Даже игровые протоколы через UDP содержат в себе нумерацию и > контролируют её. Отсутствие этого в mpd вызывает недоумение... Для инкапсуляции PPP в UDP с нумерацией пакетов существует l2tp, реализованный в том же mpd. А вариант с "голым" UDP никой нумерации не добавляет. > > Поэтому если уж и использовать PPP для туннелирования > > (что вообще не лучший выбор, уж лучше шифрованный IP без PPP), > > то только через PPtP > Ну уж точно не pptp. > > > или L2TP (или другой какой протокол с нумерацией пакетов). > А разве он не медленный? С чего бы ему быть медленным? Вот OpenVPN может быть медленным - из-за того, что трафик гоняет через userland. > В основном использую OpenVPN - и оно прекрасно туннелирует IP через TCP > без всяких подвисаний. Прямо сейчас набиваю это письмо в Thunderbird > подключившись к рабочей машинке из дома по VNC (x11vnc) через TCP через > OpenVPN через TCP - латенси слегка чувствуется (по сравнению с > локальными stand-alone приложениями), но в целом нет проблем. Почему > вдруг у mpd TCP через TCP должно подвисать? Конструкция TCP over TCP сама по себе математически неустойчива, так как накручивает экпоненциально растущие таймауты одного слоя TCP через экпоненциально растущие таймауты второго слоя. Это работает только при отсутствии потерь пакетов или при очень незначительном проценте потерь. При хоть немного заметных потерях накопление задержек начинает расти, как снежный ком. Впрочем, реально тестировал я это довольно давно, когда в TCP ещё не применялся SACK. Может быть, он что-то и улучшил в этом месте.
