По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
В этой статье мы расскажем как интегрировать Python c Excel и Word, чтобы без проблем создавать автоматические отчеты. Microsoft Excel и Microsoft Word – это, без доли сомнений, две наиболее широко используемые программы как в мире бизнеса, так и в некорпоративной сфере. Они практически являются синонимами слову «работа». Как правило, не проходит и недели, чтобы мы тем или иным способом не воспользовались их преимуществами. И хотя для обычных повседневных задач автоматизация не требуется, бывают случаи, когда она может стать необходимостью. А именно, когда у вас есть множество диаграмм, рисунков, таблиц и отчетов, которые необходимо сделать, это может стать очень утомительным занятием, если все это выполнять вручную. А это не должно быть так. На самом деле существует способ создать конвейер в Python, где можно будет легко интегрировать эти программы для создания электронных таблиц в Excel, а затем передавать результаты в Word для создания отчета практически мгновенно.
Openpyxl
Познакомьтесь с Openpyxl, возможно, одной из самых универсальных привязок в Python, которая превращает взаимодействие с Excel буквально в прогулку по парку. Используя этот пакет, вы сможете читать и записывать все новые и старые форматы Excel, то есть .xlsx и .xls. Openpyxl позволяет заполнять строки и столбцы, выполнять формулы, создавать 2D- и 3D-диаграммы, маркировать оси и заголовки, а также имеет множество других возможностей, которые могут пригодиться. Однако здесь наиболее важно то, что этот пакет позволяет вам перебирать бесконечное количество строк и столбцов Excel, тем самым избавляя вас от всех этих утомительных вычислений и построения графиков, которые вам приходилось делать ранее самим.
Python-docx
А затем появляется Python-docx – пакет для Word – то же, что Openpyxl для Excel. Если вы все еще не изучили их документацию, то вам все же стоит на нее взглянуть. Python-docx – без преувеличения один из самых простых и понятных наборов инструментов, с которыми я работал с тех пор, как начал работать с Python. Он позволяет автоматизировать создание документов, автоматически вставляя текст, заполняя таблицы и отображая изображения в отчете без каких-либо усилий.
Без лишних церемоний давайте создадим наш собственный автоматизированный конвейер. Запустите IDE по вашему выбору и установите следующие пакеты:
pip install openpyxlpip install python-docx
Автоматизация Microsoft Excel
Для начала загрузим уже созданную книгу Excel (как показано ниже):
workbook = xl.load_workbook('Book1.xlsx')
sheet_1 = workbook['Sheet1']
Затем мы пройдемся по всем строкам в нашей электронной таблице для того, чтобы вычислить и вставить значение мощности, которую мы получим, умножив ток на напряжение:
for row in range(2, sheet_1.max_row + 1):
current = sheet_1.cell(row, 2)
voltage = sheet_1.cell(row, 3)
power = float(current.value) * float(voltage.value)
power_cell = sheet_1.cell(row, 1)
power_cell.value = power
Как только мы сделаем это, то мы сможем использовать рассчитанные значения мощности для построения линейной диаграммы, которая будет вставлена в указанную ячейку, как показано ниже:
values = Reference(sheet_1, min_row = 2, max_row = sheet_1.max_row, min_col = 1, max_col = 1)
chart = LineChart()
chart.y_axis.title = 'Power'
chart.x_axis.title = 'Index'
chart.add_data(values)
sheet_1.add_chart(chart, 'e2')
workbook.save('Book1.xlsx')
Извлечение диаграммы
Теперь, когда мы построили нашу диаграмму, нам нужно ее извлечь в формате изображения для того, чтобы мы могли использовать ее в нашем отчете Word. Для начала объявим точное местоположения нашего файла Excel, а также место, куда мы хотим сохранить изображение получившейся диаграммы:
input_file = "C:/Users/.../Book1.xlsx"
output_image = "C:/Users/.../chart.png"
Затем необходимо получить доступ к таблице, используя следующий метод:
operation = win32com.client.Dispatch("Excel.Application")
operation.Visible = 0
operation.DisplayAlerts = 0
workbook_2 = operation.Workbooks.Open(input_file)
sheet_2 = operation.Sheets(1)
И далее вы можете перебрать все диаграммы в таблице (если их больше одной) и сохранить их в указанном месте:
for x, chart in enumerate(sheet_2.Shapes):
chart.Copy()
image = ImageGrab.grabclipboard()
image.save(output_image, 'png')
passworkbook_2.Close(True)
operation.Quit()
Автоматизация Microsoft Word
Теперь, когда у нас есть изображение диаграммы, мы должны создать шаблон документа, который представляет собой обычный документ Microsoft Word (.docx), сформированный именно так, как нам необходимо, чтобы наш отчет имел определенный тип и размер шрифта, нужное форматирование и структуру страницы. Далее, все, что нам необходимо сделать, это создать заполнители для нашего автоматизированного содержимого, то есть значений таблиц и изображений, и объявить их с переменными, как показано ниже.
Внутри двойных фигурных скобок {{variable_name}} может быть объявлен любое автоматизированное содержимое, включая текст и изображения. Для таблиц вам необходимо создать таблицу с шаблонной строкой, в которую включены все столбцы, а затем вам необходимо добавить еще одну строку выше и одну строку ниже со следующими обозначениями:
Первая строка:
{%tr for item in variable_name %}
Последняя строка:
{%tr endfor %}
На рисунке выше указаны следующие имена переменных:
table_contents для словаря Python, в котором будут храниться наши табличные данные.
Index для ключей словаря (первый столбец).
Power, Current и Voltage для значений словаря (второй, третий и четвертый столбцы).
Затем мы импортируем наш документ-шаблон в Python и создаем словарь, в котором будут храниться значения нашей таблицы:
template = DocxTemplate('template.docx')
table_contents = []for i in range(2, sheet_1.max_row + 1):
table_contents.append({
'Index': i-1,
'Power': sheet_1.cell(i, 1).value,
'Current': sheet_1.cell(i, 2).value,
'Voltage': sheet_1.cell(i, 3).value
})
Далее мы импортируем изображение диаграммы, которое ранее мы создали в Excel, и создаем еще один словарь для создания экземпляров всех переменных-заполнителей, объявленных в документе-шаблоне:
image = InlineImage(template,'chart.png',Cm(10))context = {
'title': 'Automated Report',
'day': datetime.datetime.now().strftime('%d'),
'month': datetime.datetime.now().strftime('%b'),
'year': datetime.datetime.now().strftime('%Y'),
'table_contents': table_contents,
'image': image
}
И, наконец, мы отображаем отчет с нашей таблицей значений и изображением диаграммы:
template.render(context)
template.save('Automated_report.docx')
Заключение
И вот, мы получили автоматически созданный отчет Microsoft Word с числами и диаграммами, созданными в Microsoft Excel. При этом у вас есть полностью автоматизированный конвейер, который можно использовать для создания любого количества таблиц, диаграмм и документов.
Исходный код программы
import openpyxl as xl
from openpyxl.chart import LineChart, Reference
import win32com.client
import PIL
from PIL import ImageGrab, Image
import os
import sys
from docx.shared import Cm
from docxtpl import DocxTemplate, InlineImage
from docx.shared import Cm, Inches, Mm, Emu
import random
import datetime
import matplotlib.pyplot as plt
######## Generate automated excel workbook ########
workbook = xl.load_workbook('Book1.xlsx')
sheet_1 = workbook['Sheet1']
for row in range(2, sheet_1.max_row + 1):
current = sheet_1.cell(row, 2)
voltage = sheet_1.cell(row, 3)
power = float(current.value) * float(voltage.value)
power_cell = sheet_1.cell(row, 1)
power_cell.value = power
values = Reference(sheet_1, min_row = 2, max_row = sheet_1.max_row, min_col = 1, max_col = 1)
chart = LineChart()
chart.y_axis.title = 'Power'
chart.x_axis.title = 'Index'
chart.add_data(values)
sheet_1.add_chart(chart, 'e2')
workbook.save('Book1.xlsx')
######## Extract chart image from Excel workbook ########
input_file = "C:/Users/.../Book1.xlsx"
output_image = "C:/Users/.../chart.png"
operation = win32com.client.Dispatch("Excel.Application")
operation.Visible = 0
operation.DisplayAlerts = 0
workbook_2 = operation.Workbooks.Open(input_file)
sheet_2 = operation.Sheets(1)
for x, chart in enumerate(sheet_2.Shapes):
chart.Copy()
image = ImageGrab.grabclipboard()
image.save(output_image, 'png')
pass
workbook_2.Close(True)
operation.Quit()
######## Generating automated word document ########
template = DocxTemplate('template.docx')
#Generate list of random values
table_contents = []
for i in range(2, sheet_1.max_row + 1):
table_contents.append({
'Index': i-1,
'Power': sheet_1.cell(i, 1).value,
'Current': sheet_1.cell(i, 2).value,
'Voltage': sheet_1.cell(i, 3).value
})
#Import saved figure
image = InlineImage(template,'chart.png',Cm(10))
#Declare template variables
context = {
'title': 'Automated Report',
'day': datetime.datetime.now().strftime('%d'),
'month': datetime.datetime.now().strftime('%b'),
'year': datetime.datetime.now().strftime('%Y'),
'table_contents': table_contents,
'image': image
}
#Render automated report
template.render(context)
template.save('Automated_report.docx')
Привет! Начнем: в первую очередь необходимо подключить прибор ТИС-Е1 к компьютеру.
Установка на ПК программного обеспечения TIS-Soft-E1
Если на ПК еще не установлено ПО TIS-Soft-E1, то это можно сделать следующим образом.
Найти файл установщика программы TIS-Soft-E1 на диске с ПО, поставляемым в комплекте с прибором и запустить его.
В запустившемся мастере установки в диалоговом окне несколько раз подряд нажать кнопку <Далее>, и затем кнопку <Установить>.
Мастер оповестит о том, что ПО успешно установлено и предложит запустить приложение. На этом установка окончена, ПО готово к использованию.
Подключение прибора к ПК
Порт RS-232 прибора с помощью кабеля, входящего в комплект, необходимо подключить к свободному COM-порту компьютера. Во избежание выхода из строя COM-порта компьютера, рекомендуется, чтобы прибор ТИС-Е1 был выключен во время подключений/отключений порта RS-232.
Следует иметь ввиду, что ПО TIS-Soft-E1 позволяет использовать COM-порты с номерами от 1 до 4, поэтому если подключить прибор к порту COM5, то связь с прибором установить не удастся.
Подключить адаптер питания к разъему 9-15В на задней стенке прибора и включить его в сеть. Включить питание прибора тумблером на боковой панели.
Перевести управление прибором в режим "УДАЛЕННОЕ". Для этого:
Нажать кнопку "Меню" на приборе.
Стрелками ↑ или ↓ выбрать пункт <Установки>, нажать кнопку "Ввод"
В появившемся окне выбрать пункт <Режим работы>, нажать кнопку "Ввод"
Выбрать пункт <управление>. Изначально режим управления установлен <МЕСТНОЕ>. Нажать кнопку >> для перевода прибора в режим <УДАЛЕННОЕ>. При этом на дисплее установится надпись "Режим управления от внешней ЭВМ", и кроме кнопок >> и <<, позволяющих перейти в режим <МЕСТНОЕ>, в этом режиме более клавиатура прибора не работает.
Запустить программу TIS-Soft-E1 с помощью ярлыка на рабочем столе
Или <Пуск/ Все программы/ TIS-Soft-E1/ TIS-Soft-E1 >. Внешний вид окна программы TIS-Soft-E1 представлено на рисунке.
Окно программы делится на три области ОБЩЕЕ, ПРИЕМ и РЕЗУЛЬТАТЫ. Область ОБЩЕЕ при нажатии на кнопку "Передача" в верхней части программы меняется на область ПЕРЕДАЧА.
Первоначально необходимо выбрать COM-порт компьютера, к которому подключен прибор. Для этого в верхней строке выбрать меню <Прибор> и выбрать из выпадающего списка нужный порт.
Далее необходимо осуществить соединение программы с прибором, для чего необходимо нажать кнопку <Связь> в верхней правой части окна программы.
Если программа выдала сообщение "Нет ответа от прибора", то, вероятно, существует проблема подключения прибор не включен, не переведен в режим удаленного управления, неправильно выбран com-порт компьютера.
Если программа выдает сообщение об ошибке открытия порта, то вероятно данный порт в данный момент используется другой программой или выбран неправильно.
Если прибор включен, подключен к ПК и COM-порт выбран правильно, то программа выдает сообщение, что будут загружены конфигурация и данные из прибора.
Нажать кнопку "ОК". В течение нескольких секунд данные из прибора загрузятся в ПК. Кнопка <Связь> поменяет свое название на <Разъединить>, кнопка <Старт> станет активной.
На этом подключение прибора к ПК закончено. Теперь все управление прибором осуществляется с помощью окна программы на ПК.
Подключение измеряемого оборудования к прибору ТИС-Е1
На задней стенке прибора имеются гнезда:
"Выход испытательного сигнала" - выход прибора:
"Вход испытательного сигнала" - вход прибора:
Вход внешней синхронизации:
А так же выход внешней синхронизации и заземление. При проведении измерений с перерывом связи и постановкой "заворота" на удаленном конце, необходимо проделать следующее:
Выход прибора ТИС-Е1 необходимо подключить на вход оборудования, выход оборудования - на вход прибора. На удаленном конце на измеряемом потоке необходимо установить шлейф.
При правильном подключении прибора и при наличии "заворота" (шлейфа) на удаленном конце, в окне прибора должна отсутствовать аварийная сигнализация. Аварийные сигналы выведены в крайней левой части области "РЕЗУЛЬТАТЫ":
Как правило, возникают следующие аварии:
LOS отсутствие входного сигнала. Необходимо проверить соединение ВЫХОД оборудования ВХОД прибора (кабель, разъемы, контакт на кроссовом оборудовании), правильность подключения, работоспособность оборудования.
AIS индикация удаленной аварии. Отсутствует входной сигнал или присутствует какая-либо другая авария на удаленном конце.
LOF потеря цикловой синхронизации.
PL несоответствие входного сигнала выходному. Сигнал на входе прибора не соответствует испытательному сигналу на выходе прибора. Может означать, что на удаленном конце не установлен шлейф или неправильное соединение ВЫХОД прибора ВХОД оборудования.
После правильного подключения прибора к оборудованию необходимо настроить параметры измерений.
Настройка параметров прибора
При запуске программы открыто окно общих параметров измерений, к которым относятся:
Параметры испытательного сигнала
Период измерений
Совместная/раздельная настройка параметров приема/передачи.
Интервал записи промежуточных данных в память
Вид измеряемых ошибок
Параметры испытательного сигнала - установить переключатель в положение ПСП (псевдослучайная последовательность), параметры последовательности оставить по умолчанию (2^15 -.
Период проведения измерений. Выбрать <Оперативное>, в следующей строке установить переключатель в положение <За>, в активировавшемся окне нажать кнопку с многоточием, в новом окне указать период измерений. Для оперативных измерений обычно достаточно 15-ти минут.
Так же, при необходимости, можно проводить измерения до определенного времени, для чего нужно установить указанный выше переключатель в положение <До>, и , как и в предыдущем случае, установить время завершения измерений.
Следующий переключатель позволяет настраивать параметры приема/передачи совместно или раздельно. В нашем случае, при проведении измерений с перерывом связи, по шлейфу на удаленном конце, необходимо выбрать режим <совместно>
Интервал записи в память. Определяет, с каким интервалом будут записаны в память промежуточные результаты. Параметр имеет только три предопределенных значения: 1 минута, 10 минут, 1 час.
При относительно малом периоде измерений (15 минут), устанавливаем параметр <1 минута>.
Тип измеряемых ошибок. Прибор позволяет измерять кодовые и бинарные ошибки. Необходимо выбрать <бинарные>. При проведении измерений без перерыва связи параллельным включением прибора необходимо установить Счет ошибок <кодовые>. Если в параметрах передачи задать формирование цикла, то появляется возможность измерять <цикловые> ошибки.
Далее, необходимо настроить параметры передачи. Для этого в левой верхней части окна необходимо нажать кнопку "ПЕРЕДАЧА".
После этого окно программы поменяет свой вид кнопка <Передача> поменяет название на <Общее>, окно примет следующий вид:
Параметры частоты сигнала <2048> и <Номинал>, установленные по умолчанию, оставляют без изменений.
Ниже выбирается код, который используется в оборудовании HDB-3 или AMI. Эти данные можно узнать из технического описания оборудования. Как правило, используется код HDB-3.
Далее задается формирование цикла, установкой флага <цикл>. При этом появятся параметры цикла.
Если ранее, в окне общих параметров, установлен переключатель, определяющий совместное изменение параметров приема/передачи, то в соседнем окне <ПРИЕМ> параметры приема будут изменяться автоматически, и изменить их в таком режиме невозможно.
В данном режиме возможно заполнение сигналом любого количества канальных интервалов, передача синусоидального сигнала по любому выбранному каналу с заданной частотой и уровнем и другие параметры.
Измерения можно проводить как с формированием цикла, так и без него.
Проведение измерений
После того, как все параметры настроены, можно приступить к началу измерений. Для этого необходимо нажать кнопку <Сброс> в области программы "РЕЗУЛЬТАТЫ", и затем нажать кнопку <СТАРТ> в верхней правой части окна программы, на вопрос программы "Начать измерения?" нажать кнопку "ОК".
На приборе загорится зеленый светодиод, свидетельствующий о том, что процесс измерений запущен. Когда измерения не производятся, на приборе горит красный светодиод.
В области "РЕЗУЛЬТАТЫ" в реальном времени отображаются результаты измерений, а так же аварийные сигналы, если такие есть в наличии.
В нижней части окна отображается оставшееся до конца сеанса измерений время
или, если сеанс уже окончен, сообщение "измерено" и время окончания последнего сеанса измерений.
После окончания измерений результаты отображаются в нижней части программы в области "РЕЗУЛЬТАТЫ".
Сохранение результатов
Для более подробного отображения результатов измерений (с расшифровкой по минутам) для последующего анализа, для передачи по электронной почте или для распечатки на бумажном носителе протокол измерений необходимо передать и сохранить на ПК. Для этого необходимо проделать следующие действия:
В окне программы выбрать меню "файл", далее пункт "протокол" (в верхней части скриншота ниже).
В открывшемся окне установить флаги ("галочки") на всех параметрах, которые должны быть отображены в протоколе.
Если отметить флаг "Комментарии", то в окне появляется дополнительное пустое поле, в котором можно указать краткий комментарий, например, условия проведения измерений, или участок. Внесенный текст также будет сохранен в протоколе измерений.
Нажать кнопку <Сохранить>, в раскрывшемся окне указать путь к папке, где необходимо сохранить файл, и имя файла и нажать кнопку <Сохранить> еще раз.
Папка для сохранения результатов по умолчанию C:Program FilesTIS Soft E1
Нажать кнопку "Выход" в нижней части диалогового окна. Окно сохранения результатов закроется автоматически.
Протоколы измерений сохраняются в файле программы "Блокнот" (расширение .txt), который может быть открыт в любом текстовом редакторе на ПК.
Протокол содержит информацию о дате и времени проведения измерений, при условии, что дата и время правильно установлены в приборе. Но рекомендуется указать в имени файла принадлежность потока и дату проведения измерений.
После завершения измерений, программу TIS-Soft-E1 можно закрыть как любое приложение Windows. Сам прибор можно выключить тумблером на боковой панели.
Пример протокола измерений, полученного с помощью прибора ТИС-Е1
***** П Р О Т О К О Л И З М Е Р Е Н И Й *****
Создан: 06.11.2008 10:13:36
*** Р Е З У Л Ь Т А Т Ы И З М Е Р Е Н И Я ***
Ошибки: 1
Коэффициент: 5,42E-10
Джиттер: 0,03
Джиттер ВЧ: 0,00
==== АВАРИЙНЫЕ СЕКУНДЫ ====
Нет входа: 0
Прием СИАС: 0
Потеря цикла: 0
==== РЕЗУЛЬТАТЫ ПО G826 ====
ES: 1
SES: 0
ESR: 1,11E-03
SESR: 0,00E+00
BBER: 1,11E-06
*** ТАБЛИЦА РЕЗУЛЬТАТОВ ПО ИНТЕРВАЛАМ ИЗМЕРЕНИЯ ***
Измеряемые ошибки: Бинарные
Количество интервалов: 15
Начало измерения: 06.11.2008 9:53:00
Окончание измерения: 06.11.08 10:08:00
N п/п Время Ошибки Коэфф. Джит. Джит.ВЧ Аварии
1 06-09:54 0 0,00E+00 0,04 0,00
2 06-09:55 0 0,00E+00 0,04 0,00
3 06-09:56 0 0,00E+00 0,04 0,00
4 06-09:57 0 0,00E+00 0,04 0,00
5 06-09:58 0 0,00E+00 0,04 0,00
6 06-09:59 0 0,00E+00 0,04 0,00
7 06-10:00 0 0,00E+00 0,04 0,00
8 06-10:01 0 0,00E+00 0,04 0,00
9 06-10:02 0 0,00E+00 0,04 0,00
10 06-10:03 0 0,00E+00 0,04 0,00
11 06-10:04 0 0,00E+00 0,04 0,00
12 06-10:05 0 0,00E+00 0,05 0,00
13 06-10:06 1 8,14E-09 0,04 0,00
14 06-10:07 0 0,00E+00 0,04 0,00
15 06-10:08 0 0,00E+00 0,05 0,00
Эта серия статей подробно объясняет основные понятия, принципы и операции протокола маршрутизации RIP с примерами. Узнайте, как работает RIP (Routing Information Protocol) и как обновляет таблицу маршрутизации из широковещательного сообщения шаг за шагом.
Маршрутизаторы используют таблицу маршрутизации для принятия решения о переадресации. Таблица маршрутизации содержит информацию о сетевых путях. Сетевой путь - это простой фрагмент информации, который говорит, какая сеть подключена к какому интерфейсу маршрутизатора.
Всякий раз, когда маршрутизатор получает пакет данных, он ищет в таблице маршрутизации адрес назначения. Если маршрутизатор найдет запись сетевого пути для адреса назначения, он переадресует пакет из связанного интерфейса. Если маршрутизатор не найдет никакой записи для адреса назначения, он отбросит пакет.
Существует два способа обновления таблицы маршрутизации: статический и динамический. В статическом методе мы должны обновить его вручную. В динамическом методе мы можем использовать протокол маршрутизации, который будет обновлять его автоматически. RIP - это самый простой протокол маршрутизации. В этой статье мы узнаем, как RIP обновляет таблицу маршрутизации.
В протоколе RIP маршрутизаторы узнают о сетях назначения от соседних маршрутизаторов через процесс совместного использования. Маршрутизаторы, работающие по протоколу RIP, периодически транслируют настроенные сети со всех портов. Список маршрутизаторов обновит их таблицу маршрутизации на основе этой информации.
Давайте посмотрим, как работает процесс RIP шаг за шагом. Следующий рисунок иллюстрирует простую сеть, работающую по протоколу маршрутизации RIP.
Когда мы запускаем эту сеть, маршрутизаторы знают только о непосредственно подключенной сети.
OFF1 знает, что сеть 10.0.0.0/8 подключена к порту F0/1, а сеть 192.168.1.252/30 подключена к порту S0/0.
OFF2 знает, что сеть 192.168.1.252/30 подключена к порту S0/0, а сеть 192.168.1.248/30 подключена к порту S0/1.
OFF3 знает, что сеть 20.0.0.0/8 подключена к порту F0/1, а сеть 192.168.1.248/30 подключена к порту S0/0.
В отличие от статической маршрутизации, где мы должны настроить все маршруты вручную, в динамической маршрутизации все, что нам нужно сделать, это просто сообщить протоколу маршрутизации, какой маршрут мы хотим объявить. А остальное будет сделано автоматически, запустив динамический протокол. В нашей сети мы используем протокол маршрутизации RIP, поэтому он будет обрабатываться RIP.
Иногда RIP также известен как маршрутизация прослушки. Потому что в этом протоколе маршрутизации маршрутизаторы изучают информацию о маршрутизации от непосредственно подключенных соседей, а эти соседи учатся от других соседних маршрутизаторов.
Протокол RIP будет совместно использовать настроенные маршруты в сети через широковещательные передачи. Эти широковещательные передачи называются обновлениями маршрутизации. Прослушивающие маршрутизаторы обновят свою таблицу маршрутизации на основе этих обновлений.
OFF1 будет слушать трансляцию из OFF2. От OFF2, он узнает об одной новой сети 192.168.1.248/30
OFF2 будет слушать две передачи с OFF1 и OFF3. Из OFF1 он узнает о 10.0.0.0/8 и от OFF3 он узнает о сети 20.0.0.0/8.
OFF3 будет слушать трансляцию из OFF2. От OFF2 он узнает о сети 192.168.1.252.
Маршрутизатор выполняет несколько измерений, обрабатывая и помещая новую информацию о маршруте в таблицу маршрутизации. Мы объясним их позже в этой статье. Если маршрутизатор обнаружит новый маршрут в обновлении, он поместит его в таблицу маршрутизации.
Через 30 секунд (интервал времени по умолчанию между двумя обновлениями маршрутизации) все маршрутизаторы снова будут транслировать свои таблицы маршрутизации с обновленной информацией.
В данный момент времени:
OFF1 будет транслироваться для 10.0.0.0/8, 192.168.1.248/30 и 192.168.1.252/30.
OFF2 будет транслировать для 10.0.0.0/8, 20.0.0.0/8, 192.168.1.248/30 и 192.168.1.252/30.
OFF3 будет транслироваться для 20.0.0.0/8, 192.168.1.248/30 и 192.168.1.252/30.
OFF1 узнает о сети 20.0.0.0/8 из трансляции OFF2.
У OFF2 нет ничего, чтобы обновить из трансляции OFF1 и OFF2.
OFF3 узнает о сети 10.0.0.0/8 из трансляции OFF2.
Через 30 секунд маршрутизатор снова будет транслировать новую информацию о маршрутизации. На этот раз маршрутизаторам нечего обновлять. Эта стадия называется конвергенцией.
Конвергенция
Конвергенция - это термин, который относится к времени, затраченному всеми маршрутизаторами на понимание текущей топологии сети.
Метрика протокола маршрутизации RIP
У нас может быть два или более путей для целевой сети. В этой ситуации RIP использует измерение, называемое метрикой, чтобы определить наилучший путь для целевой сети. RIP использует подсчет прыжков как метрику. Прыжки - это количество маршрутизаторов, необходимое для достижения целевой сети.
Например, в приведенной выше сети OFF1 есть два маршрута для достижения сети 20.0.0.0/8.
Маршрут 1: - через OFF3 [на интерфейсе S0/1]. С прыжком - один.
Маршрут 2: - через OFF2-OFF3 [на интерфейсе S0/0]. С прыжком - два.
Итак, по какому маршруту OFF1 доберется до места назначения? Маршрут 1 имеет один прыжок, в то время как маршрут 2 имеет два прыжка. Маршрут 1 имеет меньшее количество переходов, поэтому он будет помещен в таблицу маршрутизации.
Резюме
Протокол маршрутизации RIP использует локальную широковещательную передачу для обмена информацией о маршрутизации.
RIP транслирует обновления маршрутизации каждые 30 секунд, независимо от того, изменилось что-то в сети или нет. По истечении 30 секунд маршрутизаторы, работающие по протоколу RIP, будут транслировать информацию о своей маршрутизации на любые устройства, подключенные к их интерфейсам.
Перед отправкой обновлений маршрутизации маршрутизатор добавляет метрику инициализации ко всем маршрутам, которые он имеет, и увеличивает метрику входящих маршрутов в объявлениях, чтобы маршрутизатор листинга мог узнать, как далеко находится сеть назначения.
При отправке широковещательных передач RIP не заботится о том, кто слушает эти широковещательные обновления или нет.
После отправки широковещательного сообщения RIP не заботится о том, получили ли соседи эти широковещательные обновления или нет.
Когда маршрутизатор получает обновления маршрутизации, он сравнивает их с маршрутами, которые уже есть в его таблице маршрутизации.
Если обновление содержит информацию о маршруте, которая недоступна в его таблице маршрутизации, маршрутизатор будет рассматривать этот маршрут как новый маршрут.
Маршрутизатор добавит все новые маршруты в таблицу маршрутизации перед обновлением существующего.
Если обновление содержит лучшую информацию для любого существующего маршрута, маршрутизатор заменит старую запись новым маршрутом.
Если обновление содержит худшую информацию для любого существующего маршрута, маршрутизатор проигнорирует ее.
Если обновление содержит точно такую же информацию о любом существующем маршруте, маршрутизатор сбросит таймер для этой записи в таблице маршрутизации
Далее, почитайте нашу статью о функциях и терминологии RIP.