
- •1. Сетевые адаптеры (сетевые карты)
- •1. Сетевая карта Ethernet (Fast Ethernet).
- •2. Сетевая карта Token Ring (High Speed Token Ring)
- •3. Сетевая карта fddi (Fiber Distributed Data Interface)
- •2. Сетевые кабели
- •3. Топология сети
- •4. Одноранговые сети и сети с выделенным файловым сервером.
- •5. Сетевое оборудование
- •6. Сетевые операционные системы.
- •6.8. Операционные системы мейнфреймов (vse/esa, vm/esa, os/390)
- •1. Физический уровень
- •2. Канальный уровень
- •3. Сетевой уровень
- •4. Транспортный уровень.
- •5. Сеансовый уровень.
- •6. Представительский уровень.
- •7. Прикладной уровень.
- •1. Протоколы канального уровня
- •1.1. Протокол Ethernet
- •1.2. Протокол FastEthernet
- •1.3. Протокол 100vg-AnyLan
- •1.4. Протокол GigabitEthernet
- •1.5. Протокол Token Ring (High Speed Token Ring)
- •1.6. Протокол fddi
- •1 .7. Протоколы slip и ppp
- •2. Протоколы сетевого и транспортного уровня
- •2.1. Стек протоколов ipx/spx
- •2.2. Стек протоколов NetBios / smb
- •2.3. Стек протоколов tcp/ip
- •2.3.1. Протокол ip (icmp)
- •2.3.2. Протоколы транспортного уровня tcp и udp.
- •3. Протоколы прикладного уровня http, ftp, smtp, imap, pop3, telnet.
- •4. Система доменных имен dns.
- •Лекция 3. Сетевое оборудование.
- •3.1. Повторитель (концентратор, hub)
- •1QBase*t граней вер'
- •0 Рн 1 pei jj е иные mac- адреса о:00:а2:00:07:вЭ
- •3.2. Мост (bridge)
- •3.3. Коммутатор (switch)
- •Арбитраж шины
- •Адрес назначений -►тэг Арбитраж шины
- •1) Поддержка алгоритма Spanning Tree.
- •2) Трансляция протоколов канального уровня.
- •3) Фильтрация трафика.
- •4) Приоритетная обработка кадров.
- •1) Скорость фильтрации/продвижения кадров (кадров в секунду), пропускная способность (мегабит в секунду), задержка передачи кадра.
- •2) Тип коммутации — "на лету" или с полной буферизацией.
- •3) Размер адресной таблицы.
- •4) Объем буфера кадров.
- •5) Производительность процессоров портов, производительность внутренней шины коммутатора.
- •3.4. Маршрутизатор (router)
- •1) Поддержка нескольких сетевых протоколов. Приоритеты сетевых протоколов.
- •2) Поддержка одновременно нескольких протоколов маршрутизации.
- •3) Поддержка политики маршрутных объявлений.
- •4) Поддержка немаршрутизируемых протоколов.
- •5) Разделение функций построения и использования таблицы маршрутизации.
- •1) Перечень поддерживаемых сетевых протоколов и протоколов машрутизации.
- •2) Перечень поддерживаемых интерфейсов локальных и глобальных сетей.
- •3) Общая производительность маршрутизатора.
- •3.5. Корпоративные модульные концентраторы.
- •3.6. Коммутаторы третьего уровня.
- •3.7. Шлюз (gateway), межсетевой экран (firewall), прокси-сервер, nat.
- •Лекция 4. Расчет корректности конфигурации локальной сети.
- •1) Ограничение на максимальную/минимальную длину кабеля.
- •2) Ограничение на количество компьютеров в одном сегменте сети.
- •3) Ограничение на число повторителей между любыми двумя компьютерами сети.
- •4) Ограничение на время двойного оборота сигнала (Path Delay Value, pdv).
- •5) Ограничение на сокращение межкадрового интервала (Path Variability Value, pvv).
- •4.2. Расчет корректности конфигурации сети Fast Ethernet.
- •412 М полудуплекс 2000 м полный дуплекс
- •136 М тйОм
- •Лекция 5. Windows 2000
- •5.1. Отличительные особенности Win2000
- •Сопоставление Windows 2000 и Unix/Linux систем
- •5.2. Файловая система ntfs
- •5.3. Распределенная файловая система dfs
- •5.4. Динамические диски в Windows 2000
- •5.5. Служба каталогов Active Directory в Windows 2000 (ранее ntds в Win nt 4.0), сценарии входа и профили пользователя.
- •5.6. Службы dns, wins, dhcp
- •5.7. Маршрутизация и удаленный доступ
- •5 .8. Диспетчер служб Интернета iis (Internet Information Services).
- •5.9. Служба Telnet.
- •5.10. Диспетчер службы терминалов
- •5.11. Управление компьютером.
- •5.12. Система безопасности Windows 2000 5.12.1. Пользователи и группы пользователей, права доступа, аудит.
- •5.12.2. Домены в Windows 2000, доверительные отношения между доменами, аутентификация пользователя (протоколы Kerberos и ntlm).
- •5.12.3. Политики безопасности Windows 2000
- •Возможности ос Linux.
- •Оболочки Linux
- •Система X Window
- •Файловая система Linux
- •Система безопасности Linux
- •Краткий перечень наиболее употребимых команд Linux
- •Лекция 7. Технологии глобальных сетей.
- •7.1. Выделенные и коммутируемые каналы - физическая основа построения глобальных сетей.
- •7.1.1. Аналоговые телефонные линии
- •4 Dte (компьютер, маршрутизатор) Интерфейс rs-449 (rs-232c) -прО40Дное окончание
- •7.1.2. Цифровые выделенные линии pdh и sonet/sdh
- •Маршрутизатор, мост, компьютер (dte)
- •7.1.3. Цифровые коммутируемые линии isdn (сети isdn)
- •7.1.4. Асимметричные цифровые абонентские линии adsl
- •7.2. Глобальные сети с коммутацией пакетов.
- •7.2.1. Сети X.25
- •7.2.2. Сети Frame Relay.
- •7.2.3. Сети atm
- •7.2.4. Сети tcp / ip (сеть Internet).
- •Создание таблиц в html
- •Создание форм в html
- •Фреймы в html
- •Использование разделенного рисунка
- •Слои dhtml, каскадные таблицы стилей css.
- •Лекция 9. Язык vbScript
- •Объект Window
- •Объект Document
- •Элементы формы
- •1) Свойства:
- •2) Методы:
- •Создание диалогов пользователя (метод showModalDialog объекта window)
- •Цикл For..Next в vbScript.
- •1. Java — интерпретируемый язык (виртуальная Java-машина)
- •2. Java — объектно-ориентированный язык
- •3. Апплеты Java
- •4. Встраивание апплетов в html-страницы
- •5. Безопасность Java апплетов
- •6. Система безопасности Java
- •7. Интерфейс Java api
- •8. Основные конструкции языка Java
- •8.1. Файлы классов, описание класса
- •8.2. Типы данных, свойства класса, модификаторы доступа свойств и методов, массивы.
- •8.3. Методы класса, методы доступа в классах, конструкторы и деструкторы класса. Объявление метода
- •8.4. Создание экземпляра класса
- •8.5. Наследование, переопределение методов
- •8.6. Создание иерархии объектов.
- •8.7. Использование пакетов
- •8.8. Интерфейсы
- •8.10. Математические функции, дата и время, работа со строками Математические функции:
- •8.11. Блоки try catch finally, обработка исключений.
- •9. Создание приложений на языке Java, запуск приложений
- •10. Создания апплетов на языке Java
- •10.1. Менеджер расположения
- •10.2. Элементы управления в апплете, обработка событий.
- •10.4. Фреймы, меню, диалоговые окна.
- •10.5. Взаимодействие апплета с сервером (пакет java.Net).
- •10.6. Параметры, конфигурирование апплета.
- •Описание функций в JavaScript.
- •Обработка событий в JavaScript.
- •Типы данных, глобальные и локальные переменные в JavaScript.
- •Преобразование типов данных
- •Массивы в JavaScript.
- •Циклы и управляющие операторы.
- •Математические функции, дата и время, работа со строками
- •Использование объекта event в обработчике события
- •Создание пользовательских объектов
- •Настройка встроенных объектов Web-браузера
- •Отображение бегущих строк
- •Создание гиперссылки в виде рисунка, меняющегося при наведении на него указателя мыши
- •Создание анимации с помощью массивов
- •Создание динамических страниц с помощью слоев (dhtml)
- •Зависимость программ на JavaScript от типа браузера
8.10. Математические функции, дата и время, работа со строками Математические функции:
В пакете java.lang имеется класс Math, который предоставляет некоторые полезные математические и тригонометрические функции. Пример: class primer {
public static void main(String args[ ] ) { // Запуск программы
case 2: case 3: case ' ': System.out.println ("two or three or space"); break; case default: System.out.println ("Default"); }
int chislo1 = Math.min (100, 700); // Возвращает минимальное значения из двух чисел 100 и 700 int chislo2 = Math.max (100, 700); // Возвращает максимальное значения из двух чисел 100 и 700 int chislo3 = Math.abs (-3); // Возвращает абсолютное значение числа
int chislo4 = ( int ) ( 10*Math.random ( ) ) + 1; /* Возвращает случайное целое число от 1 до 10.
double
chislo7 =
double
chislo8 =
double
chislo9 = double chislo10 = double chislo11 = double chislo12 =
double chislo14 = double chislo15 = Math.sin double chislo16 =
Math.cos double chislo17 =
Math.tan
}
}
Math.log
Math.log Math.exp
( 3.14 ); /* Тангенс. Существуют также методы asin(), acos(), atan(), означающие арккосинус, арксинус и арктангенс, соответственно. */
Для генерации случайных чисел можно воспользоваться и классом Random из пакета java.util. Пример: import java.util.Random class primer {
public static void main(String args[ ] ) { // Запуск программы
Random generator1 = new Random (12345 ); /* Инициализирует генератор случайных чисел числом 12345.
Если повторно проинициализировать генератор этим числом, то будет получена такая же последовательность случайных чисел. Если не задать число, то для инициализации выберется значение системного таймера (в миллисекундах, прошедших от 01.01.1970 г.)*/ int chislo 1 = generator1.nextInt ( ); // 32-разрядное случайное число типа int long chislo2 = generator1.nextLong ( ); // 64-разрядное случайное число типа long float chislo3 = generator1.nextFloat ( ); // случайное число типа float в диапазоне от 0 до 1 double chislo4 = generator1.nextDouble ( ); // случайное число типа double в диапазоне от 0 до 1 double chislo5 = generator1.nextGaussian ( ); /* Случайное число нормального распределения. Среднее
значение =0, стандартное отклонение = 1 */
}}
Дата и время:
Для работы со значениями даты и времени можно воспользоваться следующими конструкциями:
import java.util.Date // почти все функции работы с датой и временем находятся в этом классе class primer {
public static void main(String args[ ] ) { // Запуск программы
long timer1 = System.currentTimeMillis( ); //Число миллисекунд, прошедших с 01.01.1970
Date timer2 = new Date (); int vremya1 = timer2.getYear(); int vremya2 = timer2.getMonth(); int vremya3 = timer2.getDate(); int vremya4 = timer2.getHours(); int vremya5 = timer2.getMinutes(); int vremya6 = timer2.getSeconds(); int vremya7 = timer2.getDay();
// Создание объекта "дата"
// Получить число лет, прошедших с 1900 г, т.е. для 2001 = 101 // Получить текущий месяц. Январь = 0, Февраль = 1 и т.д. // Получить текущую дату // Получить часы // Получить минуты // Получить секунды
// Получить день недели: 0-воскресенье, 1-понедельник и т.д.
// Если менеджер безопасности разрешит вам эти операции, то вы сможете модифицировать дату и время:
timer2.setYear(102); // Установить 2002 год
timer2.setMonth(11); // Установить 12-й месяц
timer2.setDate(20);
timer2.setHours(23);
timer2.setMinutes(5);
timer2.setSeconds(10);
Работа со строками:
Работа со строками в Java реализована не достаточно удобно. Строки в Java фактически представляют собой строковые константы: после объявления строки ее содержимое нельзя изменять. Для изменения самой строки нужно создать объект StringBuffer, которому можно присвоить значение строки, а потом его
Программа |
Комментарии |
String stroka="3TO"; StringBuffer karman =new StringBuffer (stroka); karman.insert(0, 'а') ; karman.append ( '!' ) ; karman.setCharAt (2, 'а'); stroka=new String (karman); |
// Или более строго: String stroka =new String("Это"); // Создание буфера с именем karman // Вставка "а" в 1 позицию строки (индексация - с нуля) // Добавление "!" к строке // Замена третьего символа на "а" // Присваивание нового значения строке. |
Единственное исключение из такой неудобной процедуры - можно складывать строки, например: String komy = "вам" ;
String summa = "Привет "+komy+"братья" ;
Над строками можно выполнять некоторые функции, в результате которых создаются новые измененные строки (примеры см. ниже). Переносить часть строки на новую строчку нельзя. В тексте строки нельзя использовать двойные или одинарные кавычки и косую черту "\". Если же необходимо этими символами
Константа |
Значение |
||
\n |
перевод строки |
||
\f |
перевод формата |
||
\r |
возврат каретки |
||
\" |
\u0022 двойная кавычка |
||
\' |
\u0027 одиночная кавычка |
||
Пример: |
|||
стовые и вос Константа |
ьмеричные константы: Значение |
|
|
\\ |
\u005c обратная косая черта |
|
|
\007 |
\u0007 звонок |
|
|
\101 |
\u0041 буква" А" |
|
|
\071 |
\u0039 цифра "9" |
|
String primer = "На разных \n строках и \" в кавычках \" буква \110, со звонком \007"
Строки - это объекты, поэтому сравнивать строки при помощи простой операции равенства нельзя, т.к. при этом сравниваются не содержимое строк, а их объекты (которые будут разными, даже если содержимое строк одинаково). Для сравнения строк надо пользоваться специальными методами. Пример:
String stroka1 = "Это строка"; // создание объекта stroka1
String stroka2 = "Это строка"; // создание объекта stroka2
if (stroka1==stroka2) {/* операторы */} // условие не выполнится, т.к. stroka^ stroka2 - это 2 разных объекта if ( stroka1.equals(stroka2) ) {/*операторы*/ } // а вот так сравнивать строки правильно (метод equals) boolean otvet = stroka.equalslgnoreCase (stroka2); // сравнение без учета регистра.
Для поиска слова в словаре можно воспользоваться методом compareTo ( ), который возвращает: 0 - строки равны, число >0 - строка больше сравниваемой, число <0 - строка меньше сравниваемой. Пример:
String slovo = "Сергей"; // создание объекта slovo
int otvet1 = slovo.compareTo('Сам'); // результат: otvet1>0
int otvet2 = slovo.compareTo('Сеялка'); /* результат: otvet2<0 - значит слово "Сергей" находится по алфавиту
между словами "Сам " и "Сеялка". */
Над строками можно выполнять и другие операции. Ниже приведены примеры некоторых функций для работы со строками:
String stroka = "Это строка"; // создание строки stroka
boolean otvet = stroka.startsWith('Это'); /* переменная otvet будет true (истина), если строка начинается со
слова "Это", регистр учитывается */ boolean otvet = stroka.endsWith('строка); /* переменная ответ будет true (истина), если строка кончается
словом "строка", регистр учитывается */ int otvet = stroka.indexOf('о'); // переменная otvet будет содержать номер позиции первой буквы "о" в строке int otvet = stroka.indexOf('о',otvet+1); /* после того, как в предыдущем примере будет найдена первая буква
"о", в этом примере поиск следующей буквы "о" в строке будет продолжен, начиная со следующей после "o" позиции. Так можно найти все буквы "о", продолжая поиск до тех пор, пока otvet != 0*/
int otvet = stroka.lastIndexOf('о'); // тоже самое, что и indexO^'), но поиск начинается с конца строки int otvet = stroka.lastIndexOf('о', otvet-1 ); // аналогично примеру выше
int otvet = stroka.indexOf('Это'); /* можно определять позицию не только отдельного символа, но и
подстроки */
char bukva = stroka.charAt (3); /* в переменную bukva будет помещен 4-й символ строки (индекс первого
символа строки = 0) */ char massiv [ ] = new char [20]; // создается массив из 20-ти символов
stroka.getChars(5,10,massiv, 2); /* строка с 6 по 11 символ, посимвольно помещается в массив, начиная с 3-ей
позиции в массиве. Существует аналогичный метод getBytes ( ). */ String stroka2 = new String ( massiv [ ], 3, 2); /* создается новая строка длиной 2 символа, значения для строки
берутся, начиная с 4-ой позиции в массиве */ String stroka2 = stroka.subString(4); /* выделение подстроки из строки "stroka", начиная с 5-ой позиции и до
конца строки */
String stroka2 = stroka.subString(4 ); /* выделение подстроки из строки "stroka", начиная с 5-ой позиции и до
конца строки */
String stroka2 = stroka.subString(4, 9 ); /* выделение подстроки из строки "stroka", начиная с 5-ой и
заканчивая 10-ой позицией строки */ String stroka2 = stroka.replace('о', 'а'); // заменяет в строке все буквы "о" на букву "а" String stroka2 = stroka.toUpperCase( ); // преобразует строку в верхний регистр String stroka2 = stroka.toLowerCase( ); // преобразует строку в нижний регистр
int chislo=10; String stroka = String.valueOf(chislo); // переводит практически любой тип данных в тип String
Использование класса String Tokenizer (разбивка строк на слова):
Иногда необходимо разбить введенную пользователем строку на отдельные слова (например, при анализе запроса к поисковой системе). Для этого в пакете java.util определен специальный класс StringTokenizer, который разбивает строук на слова, ориентируясь на пробелы в качестве разделителей. Пример программы с использованием этого класса приведен ниже: class primer {
import j ava.util.StringTokenizer;
public static void main(String args[ ] ) { // Запуск программы
String stroka = "Инструкция по пользованию мылом"; // Задаем строку для разборки StringTokenizer razborka = new StringTokenizer (stroka); // Создаем объект "razborka", типа StringTokenizer System.out.println ("Число слов в строке = "+ razborka.countTokens( ) ); /* метод countTokens ( ) подсчитывает число слов в строке */
System.out.println ("Строка содержит следующие слова: " );
while (razborka.hasMoreTokens ( ) ) // метод hasMoreTokens возвращает true, пока в строке есть слова
System.out.println (razborka.nextToken ( ) ); // метод nextToken возвращает следующее слово в строке }