Книга: UNIX: разработка сетевых приложений
Упражнения
Упражнения
1. Что изменится, если в нашем примере, приведенном в конце раздела 27.3, мы зададим каждый промежуточный узел с параметром -G
вместо -g
?
2. Размер буфера, указываемый в качестве аргумента функции setsockopt
для параметра сокета IP_OPTIONS
, должен быть кратен 4 байтам. Что бы нам пришлось делать, если бы мы не поместили параметр NOP в начало буфера, как показано на рис. 27.1?
3. Каким образом программа ping
получает маршрут от отправителя, когда используется параметр IP Record Route (запись маршрута), описанный в разделе 7.3 [128]?
4. Почему в примере кода для сервера rlogind
, приведенном в конце раздела 27.3, который предназначен для удаления полученного маршрута от отправителя, дескриптор сокета (первый аргумент функций getsockopt
и setsockopt
) имеет нулевое значение?
5. В течение долгого времени для удаления маршрута использовался код, несколько отличающийся от приведенного в конце раздела 27.3. Он выглядел следующим образом:
optsize = 0;
setsockopt(0, ipproto, IP_OPTIONS, NULL, &optsize);
Что в этом фрагменте неправильно? Имеет ли это значение?
- 27.1. Введение
- 27.2. Параметры IPv4
- 27.3. Параметры маршрута от отправителя IPv4
- 27.4. Заголовки расширения IPv6
- 27.5. Параметры транзитных узлов и параметры получателя IPv6
- 27.6. Заголовок маршрутизации IPv6
- 27.7. «Закрепленные» параметры IPv6
- 27.8. История развития интерфейса IPv6
- 27.9. Резюме
- Упражнения