Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на ГОС экзамен.doc
Скачиваний:
7
Добавлен:
27.10.2018
Размер:
6.99 Mб
Скачать

Источники и типы записей в таблице маршрутизации:

  • Первым источником является программное обеспечение стека TCP/IP.

  • Вторым источником появления записи в таблице является администратор, непос­редственно формирующий запись с помощью некоторой системной утилиты.

  • Третьим источником записей могут быть протоколы маршрутиза­ции, такие как RIP или OSPF.

Фрагментация ip-пакетов

Протокол IP позволяет выполнять фрагментацию пакетов, поступающих на входные порты маршрутизаторов.Следует различать фрагментацию сообщений в узле-отправителе и динамическую фрагментацию сообщений в транзитных узлах сети - маршрутизаторах. Практически во всех стеках протоколов есть протоколы, которые отвечают за фрагментацию сообщений прикладного уровня на такие части, которые укладываются в кадры канального уровня. В стеке TCP/IP эту задачу решает протокол TCP, который разбивает поток байтов, передаваемый ему с прикладного уровня на сообщения нужного размера (например, на 1460 байт для протокола Ethernet). Поэтому протокол IP в узле-отправителе не использует свои возможности по фрагментации пакетов.

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

В большинстве типов локальных и глобальных сетей значения MTU, то есть максимальный размер поля данных, в которое должен инкапсулировать свой пакет протокол IP, значительно отличается. Сети Ethernet имеют значение MTU, равное 1500 байт, сети FDDI - 4096 байт, а сети Х.25 чаще всего работают с MTU в 128 байт.

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

Процедура объединения заключается в помещении данных из каждого фрагмента в позицию, указанную в заголовке пакета в поле «fragment offset».

Каждый модуль IP должен быть способен передать пакет из 68 байт без дальнейшей фрагментации.

2.29. ТЕНДЕНЦІЇ РОЗВИТКУ МІКРОПРОЦЕСОРНОЇ ТЕХНІКИ. СТРУКТУРА ТА РЕЖИМИ ФУНКЦІОНУВАННЯ СУЧАСНИХ МІКРОПРОЦЕСОРІВ.

Год

Процессор

Частота

Разрядность

Технология

Память

Нововведения и особенности

1971

Intel 4004

4 бит

1974

Intel 8080

2 MHz

8 бит

6 µ

64 Kb

1978

Intel 8086

8 MHz

16 бит

3 µ

1 Mb

Сегментация памяти. Положил основу семейству x86

1982

Intel 80286

12.5 MHz

16 бит

16 Mb

Реализован защищенный режим

1985

Intel 80386

20-40 MHz

32 бит

1.5 µ

4 Gb

Введена страничная организация памяти

1989

Intel 80486

50-100 MHz

1 µ

4 Gb

Появляется FPU. Встроенная кэш-память.

1993

Pentium

100-200 MHz

32 бит

4 Gb

Суперскалярная архитектура. Блок BTB (буфер адресов ветвления). Разделенный кэш (команд и данных).

1997

Pentium MMX

133-233 MHz

32 бит

4 Gb

57 новых команд MMX (Multimedia Extensions). 8 регистров MMX0-MMX7. Конвейер – 6 стадий.

1995

Pentium Pro

FSB=66MHz

32 бит

4 Gb

Первый процессор семейства P6. Появляется кэш L2 в ядре процессора. Серверный процессор.

1997

Pentium 2

FSB=100 MHz

32 бит

0.25 µ

64 Gb

L2 вынесен из ядра процессора. Первый массовый процессор семейства P6.

1998

Celeron

FSB=66MHz

32 бит

0.25 µ

64 Gb

L2 снова внесен в корпус процессора

1999

Pentium 3 Katmai

FSB=100 MHz

32 бит

64 Gb

70 команд SSE (мультимедийные команды с плавающей запятой). Также есть MMX и 3DNow!

2000

Pentium 3 Coppermine

FSB=133 MHz

32 бит

0.18 µ

64 Gb

2001

Pentium 3 Tualatin

FSB=133 MHz

32 бит

0.13 µ

64 Gb

2000

Pentium 4 Willamette

FSB=400 MHz(4x100)

32 бит

0.18 µ

64 Gb

Конвейер – 20 стадий. Вместо L1 появляется Trace Cache – кэш трассировки. АЛУ работает с двойной частотой. Добавлены 144 команды SSE2.

2002

Pentium 4 Northwood

FSB=400 MHz(4x100)

32 бит

0.13 µ

64 Gb

Позже появляется FSB=533 MHz.

2003 г. FSB=800 MHz. Самое главное – технология Hyper Threading (два логических процессора в одном физическом ядре).

2002

Pentium 4M

FSB=400 MHz(4x100)

32 бит

0.13 µ

64 Gb

Мобильная версия Pentium 4.

2003

Pentium M Banias

FSB=800 Mhz

32 бит

0.13 µ

64 Gb

Технология Centrino для мобильных устройств.

L2 = 1Mb.

Основные тенденции на ближайший год: переход на 64-битную платформу, выпуск двухядерного процессора, переход на технологию 0.06 µ, частота FSB=1033MHz.

Режимы работы современных микропроцессоров:

1. Реальный режим (Real Mode) – полностью совместим с 8086. В этом режиме возможна адресация до 1 Мб физической памяти.

2. Защищенный режим (Protected Mode). В этом режиме процессор позволяет адресовать до 4 Гб физической памяти, через которые при использовании механизма страничной адресации (которая доступна только в защищенном режиме) могут отображаться до 64 Тбайт виртуальной памяти каждой задачи. В защищенном режиме процессор может выполнять дополнительные инструкции, недоступные в реальном режиме. Существует аппаратная поддержка многозадачной работы МП. Есть аппаратная защита памяти.

3. Режим виртуального процессора 8086 (Virtual 8086 Mode). В таком режиме на одном процессоре может параллельно исполняться несколько задач с изолированными друг от друга ресурсами. При этом использование физического адресного пространства памяти управляется механизмами сегментации и трансляции страниц.

4. «Неофициальный» режим Big Real Mode (или Unreal Mode). Позволяет адресоваться ко всему 4-Гбайтному пространству памяти. В этом режиме инструкции исполняются так же, как и в реальном режиме, но с помощью дополнительных сегментных регистров FS и GS программы получают непосредственный доступ к данным во всей физической памяти.

5. Режим системного управления (SMM – System Management Mode). Используется в служебных и отладочных целях.

Структура микропроцессора на примере Intel 80486:

- шинный интерфейс (БШ);

- внутренняя кэш-память (кэш);

- блок опережающей выборки команд (БПВ);

- двухступенчатый дешифратор команд (БДШ);

- блок управления (БУ);

- целочисленное устройство (БИ);

- арифметический сопроцессор (БСопр.);

- блок сегментации (БСег.);

- блок страничного управления (БСтр.).

2.30. НА БАЗІ ІСНУЮЧИХ ТЕХНІЧНИХ РІШЕНЬ ПРОВЕСТИ РОЗРОБКУ СТРУКТУРНОЇ СХЕМИ МІКРОПРОЦЕСОРА.

На рис. 1.2 показана структура мікропроцесорів сімейства P6, яка має дві

Системна шина

L2 кеш

Інтерфейс шини

L1 кеш команд

L1 кеш даних

Пристрій вибірки та дешифрування

Пристрій диспетчеризації та виконання

Пристрій вивантаження

Пул команд

Рис. 1.2. Структура мікропроцесорів сімейства P6

основні відмітні особливості: мікро-архітектуру динамічного виконання команд, яка є ядром МП, і архітектуру подвійної шини, яка дозволяє підключити до ядра МП як системну шину, так і кеш-пам'ять другого рівня L2. Конструктивно ця кеш-пам'ять може розташовуватися на платі (картриджі) разом з МП у виді мікросхеми чи кількох мікросхем, або знаходитися в одному корпусі з МП. Кеш-пам'ять L2, на відміну від кеш-пам'яті 1-го рівня, є об'єднаною, тобто містить як команди, так і дані. Обмін даними між мікропроцесором та кеш-пам'яттю 2-го рівня здійснюється для МП Pentіum ІІІ (Copermіne) по 288-розрядній шині, 32 байта якої є даними (рядок кеша), і 32 розряди є кодами виявлення і виправлянь помилок. Для інших МП сімейства P6 ця шина складає 64 розряду.

Мікро-архітектура динамічного виконання команд має три основних вузли (рис. 1.2):

– пристрій вибірки та дешифрування (Fetch/Decode Unіt);

– пристрій диспетчеризації та виконання (Dіspatch/ExecuteUnіt);

– пристрій вивантаження (Retіre Unіt).

Пристрій вибірки та дешифрування здійснює вибірку команд з кеш-пам'яті команд і їх дешифрування, тобто перетворення команд формату x86 в мікрооперації, у тому порядку, в якому команди розташовані в програмі, і тому є упорядкованим пристроєм.

Пристрій диспетчеризації та виконання здійснює розподіл мікрооперацій по виконавчим пристроям та їх виконання в міру готовності даних цих мікрооперацій і наявності вільних ВП, тобто неупорядковано.

Пристрій вивантаження здійснює віддалення команд з конвеєра після їх виконання у вихідному порядку, тобто упорядковано.

2.31. СЕГМЕНТАЦІЯ ПАМ’ЯТІ В ЗАХИЩЕНОМУ РЕЖИМІ. РОЗРОБКА ДЕСКРИПТОРІВ СЕГМЕНТІВ. ФОРМУВАННЯ ЛІНІЙНОЇ АДРЕСИ ПРИ ЗВЕРТАННІ ДО ПАМ’ЯТІ.

Сегмент характеризуется такими параметрами:

-размер;

-базовый адрес;

-права доступа к сегменту.

Эти параметры формируются в виде 8-байтовой структуры, называемой дескриптором сегмента.

Структура дескриптора сегмента:

7

6

5

4

3

2

1

0

Баз. адрес (31-24)

G

D/B

0

X

Граница (19-16)

Байт доступа

Базовый адрес (23-0)

Граница (15-0)

Граница сегмента = Размер сегмента-1.

Базовый адрес – это адрес, по которому сегмент находится в банке памяти.

X: бит программно доступен для пользователя.

D/B (Default/Big): D=0 – 16-разрядные данные, D=1 – 32-разрядные данные;

B=0 – размер стека = 64 Кбайт, B=1 – размер стека = 4 Гбайт.

G (Granularity): G= 0 – размер сегмента выражен в байтах, G = 1 – в 4-Кбайтовых страницах.

Байты доступа:

Сегмента кода

Сегмента данных

Системного сегмента

7

6

5

4

3

2

1

0

P

DPL

S=1

E=1

C

R

A

7

6

5

4

3

2

1

0

P

DPL

S=1

E=0

ED

W

A

7

6

5

4

3

2

1

0

P

DPL

S=0

TYPE

P(Present) P=1 – сегмент в памяти, P=0 – сегмент на диске

P

P

DPL–уровень защищенности сегмента 0 – высший, 3 - низший

DPL

DPL

S(System) S=1–несистемный сегмент, S=0 – системный сегмент

S=1

S=0

E(Execute) E=1–сегмент кода,E=0- сегмент стека

E=0

TYPE=1100 – шлюз;

TYPE=1110 – обработчик прерывания;

TYPE=1111 – обработчик ловушки

С(Conform) – бит подчинения (используется для шлюзов)

ED(Expand Down) ED=0 – сегмент данных, ED=1 – сегмент стека

R(Read) R=1 – сегмент можно читать, R=0 – нельзя читать

W(Write) W=1 – писать можно, W=0 – писать нельзя

A(Access) устанавливается аппаратно при доступе к сегменту

A

При программном описании дескриптор сегмента представляется в виде такой структуры:

t_descr = record

lim_l, {граница 15-0}

base_l: word; {база 15-0}

base_h, {база 23-16}

access, {байт доступа}

lim_h, {граница 23-16}

base_hh: byte; {база 31-24}

end;

gdt: array [0..n] of t_descr; {таблица GDT}

Схема формирования линейного адреса:

2.32. ОБРОБКА ПЕРЕРИВАНЬ В ЗАХИЩЕНОМУ РЕЖИМІ. ВИДИ ВИКЛЮЧЕНЬ. ФОРМУВАННЯ ДЕСКРИПТИВНОЇ ТАБЛИЦІ ПЕРЕРИВАНЬ.

Прерывания бывают программные (синхронные) и аппаратные (асинхронные).

Аппаратные прерывания делятся на внешние и внутренние (исключения).

Внешние прерывания бывают маскируемые и немаскируемые.

Исключения делятся на три группы:

1). Отказы (faults) – возникают при исполнении команд (например, деление на 0).

2). Ловушки (traps) – возникают после выполнения команд.

3). Выходы из режимов, процессов (abort) – не имеют точного места возникновения.

Механизм обработки прерываний микропроцессором:

1. Запоминает в стеке регистр флагов (EFLAGS), регистры CS и EIP.

2. Определяет номер прерывания по причине. Если прерывание внешнее – номер определяется по сигналу INTR путем обмена данными с контроллером прерываний. Если прерывание программное – номер определяется по команде.

3. Используя таблицу IDT, определяет адрес обработчика прерывания и загружает его в CS:EIP.

4. Выход из прерывания – по команде IRET.

При возникновении исключений № 8, 10-14, 17 микропроцессор заносит в стек 32-разрядный код ошибки.

Обработчики всех исключений, аппаратных и программных прерываний имеют свои дескрипторы, которые хранятся в IDT (Interrupt Descriptor Table).

Структура дескриптора IDT:

7

6

5

4

3

2

1

0

Смещение обработчика прерывания (high)

Байт доступа

0

Селектор обработчика прерывания

Смещение обработчика прерывания (low)

Формирование таблицы IDT:

t_idt = record

off_l, {смещение обработчика прерывания – мл. часть}

sel: word; {селектор обработчика прерывания}

par, {параметры}

acc: byte; {байт доступа}

off_h: word; {смещение обработчика прерывания – ст. часть}

end;

idt: array [0..$30] of t_idt; {32 исключения + 16 внешних прерываний + 1 программное прерывание}

idt[0].off_l := Ofs (exc_00);

idt[0].sel := code_sel;

idt[0].par := 0;

idt[0].acc := $8F;

idt[0].off_h := 0;

2.33. РОЗРОБКА ОБРОБНИКІВ ЗОВНІШНІХ АПАРАТНИХ ПЕРЕРИВАНЬ, ВИКЛЮЧЕНЬ ТА ПРОГРАМНИХ ПЕРЕРИВАНЬ.