Как PPP или Ethernet восстанавливаются с ошибок?

params является объектом параметров запроса по умолчанию в ваших действиях. Если вам нужны параметры URL, вы должны указать их во втором параметре, например:

angular.module('UserService',['ngResource']).factory('User', function($resource){
    var User = $resource('/api/users/:id1/:action/:id2', //add param to the url
    {id1:'@id'},
    { 
        delete_user: {
            method: 'DELETE'
        }
    }); 

    return User;
}); 

, это работает с:

// user has id
user.$delete_user(function(){
  //success
},function(){
  // error
});

или

var data = {id:'id_from_data'};
User.delete_user({},data);

или

var params = {id1:'id1_from_params'};
User.delete_user(params);

Я сделал plnkr-example - вам нужно открыть консоль, чтобы убедиться, что запросы DELETE верны.

См. параметрDefaults в Документация угловых ресурсов .

6
задан Gili 14 June 2009 в 20:12
поделиться

4 ответа

Вы уже довольно близки к правильному ответу. Обычно, если он начинается с преамбулы и заканчивается чем-то, что соответствует контрольной сумме, это фрейм и передается на более высокие уровни.

PPP и Ethernet оба ищут сигнал начала следующего кадра. В случае Ethernet это преамбула, последовательность из 64 чередующихся битов. Если декодер Ethernet видит это, он просто предполагает, что следующее за кадром. Путем захвата битов и последующей проверки совпадения контрольной суммы он определяет, есть ли у него допустимый кадр.

Что касается полезной нагрузки, содержащей ФЛАГ, в PPP она экранируется дополнительными байтами, чтобы предотвратить такую ​​неверную интерпретацию.

5
ответ дан 8 December 2019 в 14:46
поделиться

И PPP, и Ethernet имеют механизмы для формирования кадров, то есть для разбиения потока битов на кадры таким образом, чтобы, если получатель теряет отслеживание того, что к чему, он может принять в начале следующего кадра. Они находятся в самом низу стека протоколов; все остальные детали протокола построены на идее фреймов. В частности, преамбула, LCP и FCS находятся на более высоком уровне и не используются для управления кадрированием.

PPP, через последовательные каналы, такие как коммутируемое соединение, оформляется с использованием HDLC-подобного обрамление . Значение байта 0x7e, называемое последовательностью флагов, указывает начало кадра. Кадр продолжается до следующего байта флага. Любое появление байта флага в содержимом кадра экранируется. Экранирование осуществляется путем записи 0x7d, известного как управляющий управляющий байт, за которым следует байт, который нужно экранировать с помощью xor'd с 0x20. Последовательность флагов заменяется на 0x5e; сам управляющий выход также должен быть экранирован до 0x5d. Другие значения также можно избежать, если их присутствие нарушит работу модема. В результате, если получатель теряет синхронизацию, он может просто читать и отбрасывать байты, пока не увидит 0x7e, и в этот момент он снова поймет, что находится в начале кадра. Затем содержимое кадра структурируется, содержащее некоторые нечетные маленькие поля, которые не очень важны, но сохраняются из более раннего протокола IBM, вместе с пакетом PPP (называемым блоком данных протокола, PDU), а также проверкой кадра. последовательность (FCS).

Ethernet использует логически подобный подход, имея символы, которые распознаются как маркеры начала и конца кадра, а не данные, но вместо того, чтобы иметь зарезервированные байты плюс механизм escape, он использует схему кодирования, которая способна выражать специальные управляющие символы, отличные от байтов данных - что-то вроде использования знаков препинания для разбиения последовательности букв. Детали используемой системы зависят от скорости.

Стандартный (10 Мбит / с) Ethernet кодируется с использованием так называемого Манчестерского кодирования , в котором каждый передаваемый бит представлен в виде двух последовательных уровней на линии таким образом, чтобы всегда был переход между уровнями в каждом бите, что помогает приемнику оставаться синхронизированным. Границы кадра обозначаются нарушением правила кодирования, что приводит к тому, что бит не имеет перехода (я прочитал это в книге несколько лет назад, но не могу найти ссылку в Интернете - я могу ошибаться в этом). В результате, эта система расширяет двоичный код до трех символов - 0, 1 и нарушение.

Fast (100 Мбит / с) Ethernet использует другую схему кодирования, основанную на коде 5b / 4b , где группы из четырех битов данных (nybbles) представлены как группы из пяти битов на проводе и передаются напрямую, без схемы Манчестера. Расширение до пяти битов позволяет выбрать шестнадцать необходимых шаблонов для выполнения требования частых переходов уровней, опять же, чтобы помочь приемнику оставаться синхронизированным. Тем не менее, все еще есть место для выбора некоторых дополнительных символов, которые могут быть переданы, но не соответствуют значению данных, по сути, расширяя набор нибблей до двадцати четырех символов - нибблей от 0 до F и символов, называемых Q, I. , J, K, T, R, S и H. Ethernet использует пару JK для отметки начала кадра и TR для отметки конца кадра.

Гигабитный Ethernet похож на быстрый Ethernet, но с другой схемой кодирования - версии с оптическим волокном используют код 8b / 10b вместо кода 5b / 4b, а версия для витой пары использует некоторые очень сложное пятеричное кодирование, которое я действительно не понимаю. Оба подхода дают один и тот же результат, а именно возможность передавать либо байты данных, либо один из небольшого набора дополнительных специальных символов, и эти специальные символы используются для кадрирования.

В дополнение к этой базовой структуре кадрирования есть затем фиксированная преамбула, за которой следует разделитель кадров и некоторые управляющие поля различной бессмысленности (привет, LLC / SNAP!). Действительность этих полей можно использовать для проверки фрейма, но их нельзя использовать для определения фреймов самостоятельно.

но с другой схемой кодирования - в версиях оптического волокна используется код 8b / 10b вместо кода 5b / 4b, а в версии с витой парой используется очень сложная пятеричная структура кода, которую я на самом деле не понять. Оба подхода дают один и тот же результат, а именно возможность передавать либо байты данных, либо один из небольшого набора дополнительных специальных символов, и эти специальные символы используются для кадрирования.

В дополнение к этой базовой структуре кадрирования есть затем фиксированная преамбула, за которой следует разделитель кадров и некоторые управляющие поля различной бессмысленности (привет, LLC / SNAP!). Действительность этих полей можно использовать для проверки фрейма, но их нельзя использовать для определения фреймов самостоятельно.

но с другой схемой кодирования - в версиях оптического волокна используется код 8b / 10b вместо кода 5b / 4b, а в версии с витой парой используется очень сложная пятеричная структура кода, которую я на самом деле не понять. Оба подхода дают один и тот же результат, а именно возможность передавать либо байты данных, либо один из небольшого набора дополнительных специальных символов, и эти специальные символы используются для кадрирования.

В дополнение к этой базовой структуре кадрирования есть затем фиксированная преамбула, за которой следует разделитель кадров и некоторые управляющие поля различной бессмысленности (привет, LLC / SNAP!). Действительность этих полей можно использовать для проверки фрейма, но их нельзя использовать для определения фреймов самостоятельно.

а в версии с витой парой используется очень сложное пятеричное кодирование, которое я не совсем понимаю. Оба подхода дают один и тот же результат, а именно возможность передавать либо байты данных, либо один из небольшого набора дополнительных специальных символов, и эти специальные символы используются для кадрирования.

В дополнение к этой базовой структуре кадрирования есть затем фиксированная преамбула, за которой следует разделитель кадров и некоторые управляющие поля различной бессмысленности (привет, LLC / SNAP!). Действительность этих полей можно использовать для проверки фрейма, но их нельзя использовать для определения фреймов самостоятельно.

а в версии с витой парой используется очень сложное пятеричное кодирование, которое я не совсем понимаю. Оба подхода дают один и тот же результат, а именно возможность передавать либо байты данных, либо один из небольшого набора дополнительных специальных символов, и эти специальные символы используются для кадрирования.

В дополнение к этой базовой структуре кадрирования есть затем фиксированная преамбула, за которой следует разделитель кадров и некоторые управляющие поля различной бессмысленности (привет, LLC / SNAP!). Действительность этих полей можно использовать для проверки фрейма, но их нельзя использовать для определения фреймов самостоятельно.

и эти специальные символы используются для кадрирования.

В верхней части этой базовой структуры кадрирования имеется фиксированная преамбула, за которой следует ограничитель кадра, и некоторые управляющие поля различной бессмысленности (привет, LLC / SNAP!). Действительность этих полей можно использовать для проверки фрейма, но их нельзя использовать для определения фреймов самостоятельно.

и эти специальные символы используются для кадрирования.

В верхней части этой базовой структуры кадрирования имеется фиксированная преамбула, за которой следует ограничитель кадра, и некоторые управляющие поля различной бессмысленности (привет, LLC / SNAP!). Действительность этих полей можно использовать для проверки фрейма, но их нельзя использовать для определения фреймов самостоятельно.

9
ответ дан 8 December 2019 в 14:46
поделиться

Насколько мне известно, PPP поддерживает только обнаружение ошибок и не поддерживает никаких форм исправления ошибок или восстановления.

Резервная копия предоставлена ​​Cisco здесь: http: // www.cisco.com/en/US/docs/internetworking/technology/handbook/PPP.html

1
ответ дан 8 December 2019 в 14:46
поделиться

Этот раздел Активация линии PPP в Википедии описывает основы RFC 1661. Последовательность проверки кадра используется для обнаружения ошибок передачи в кадре (описана в предыдущем разделе «Инкапсуляция»).

На диаграмме из RFC 1661 на этой странице Википедии описывается, как этап сетевого протокола может быть перезапущен с установкой канала в случае ошибки.


Также примечания со страницы Cisco, на которую ссылается Сувеш.

Протокол управления соединением PPP

LCP PPP обеспечивает метод установления, настройки, поддержки и завершения соединения точка-точка. LCP проходит четыре различных фазы.

Сначала происходит установление канала и согласование конфигурации. Прежде чем можно будет обменяться какими-либо дейтаграммами сетевого уровня (например, IP), LCP сначала должен открыть соединение и согласовать параметры конфигурации. Эта фаза завершается, когда кадр подтверждения конфигурации был отправлен и получен.

За этим следует определение качества связи. LCP допускает необязательную фазу определения качества канала после фазы установления канала и согласования конфигурации. На этом этапе канал проверяется, чтобы определить, достаточно ли качества канала для поддержки протоколов сетевого уровня. Этот этап не является обязательным. LCP может отложить передачу информации протокола сетевого уровня до завершения этого этапа.

На этом этапе происходит согласование конфигурации протокола сетевого уровня. После того, как LCP завершит этап определения качества соединения, протоколы сетевого уровня могут быть настроены отдельно с помощью соответствующего NCP и могут быть активированы и отключены в любое время. Если LCP закрывает канал, он информирует протоколы сетевого уровня, чтобы они могли предпринять соответствующие действия.

Наконец, происходит завершение соединения. LCP может разорвать связь в любое время. Обычно это делается по запросу пользователя, но может произойти из-за физического события, такого как потеря несущей или истечение таймера периода простоя.

Существуют три класса кадров LCP. Кадры установления связи используются для установления и настройки связи. Кадры завершения канала используются для завершения канала, а кадры обслуживания канала используются для управления и отладки канала.

Эти кадры используются для выполнения работы каждой из фаз LCP.

1
ответ дан 8 December 2019 в 14:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: