Министерство образования и науки Российской Федерации



Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ

УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Кафедра автоматизированных систем управления (АСУ)

А.Я. Суханов

Сети ЭВМ и телекоммуникации.

Учебное методическое пособие по лабораторным занятиям, самостоятельной и индивидуальной работе студентов направления 230100 Информатика и вычислительная техника

2012

Суханов А.Я.

Сети ЭВМ и телекоммуникации: Учебное методическое пособие по лабораторным занятиям, самостоятельной и индивидуальной работе студентов – 65 с.

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

( Суханов А.Я., 2012

Содержание

Введение 4

1. ЦЕЛИ И ЗАДАЧИ ДИСЦИПЛИНЫ, ЕЕ МЕСТО В УЧЕБНОМ ПРОЦЕССЕ 5

1.2. Задачи изучения сетей и телекоммуникаций. 5

1.3. Перечень дисциплин, усвоение которых студентами необходимо для изучения баз данных и экспертных систем. 5

2. Содержание курса 5

2.1 Лекции (54 часа) 5

2.2 Темы для самостоятельного изучения. Отчет в виде рефератов и докладов. 7

2.3 Экзаменационные вопросы 8

2.3.1 Экзаменационные билеты 9

3. Лабораторные работы 12

3.1 Работа с WinSocket 12

3.1.1 Определения 12

3.1.2 Создание сервера 12

3.1.3 Создание клиента 15

3.2 Лабораторная работа №1 Работа с сокетами Беркли 16

Протокол передачи времени Time 17

Протокол Finger 18

Задание на лабораторную работу: 19

3.3 Лабораторная работа №2 Протоколы SMTP и POP3 19

3.4 Лабораторная работа №3 Моделирование протоколов канального уровня 24

3.5 Лабораторная работа №4 Браузер и FTP-клиент 29

3.6 Лабораторная работа №5. HTML, Javascript технология PHP 30

HTML и Javascript 30

Технология PHP 34

3.7 Лабораторная работа № 6. Технология XML 36

3.8 Лабораторная работа №7 Маршрутизация в ВС 40

3.9 Лабораторная работа №8 Кэширующий HTTP прокси-сервер и SOCKS5 прокси-сервер 46

3.10 Лабораторная работа №9 распределенный UDP сервер/ UDP клиент 58

3.11 Лабораторная работа 10. Перехват сетевых пакетов 60

3.12 Лабораторная работа 11. SASL аутоинтефикация 64

ЛИТЕРАТУРА 65

Введение

Методическое пособие предназначено для студентов направления 230100 очной формы обучения и содержит рабочую программу дисциплины «Сети и телекоммуникации», руководство для выполнения лабораторных работ, задания для контрольной работы по вариантам, экзаменационные вопросы по дисциплине. Выполнение заданий поможет лучше усвоить теоретический материал и получить практические навыки при работе с базами данных и экспертными системами.

Лабораторные работы по дисциплине «Сети ЭВМ и телекоммуникации» у студентов направления бакалавриата 230100 «Информатики и вычислительная техника» проводятся в пятом семестре четырехлетнего учебного цикла. Учитывая специфику направления, основной акцент сделан на программном обеспечении для сетей ЭВМ.

Базовой, но не единственной, технологией программирования на сетевом и транспортном уровне эталонной модели взаимодействия открытых систем (ISO/OSI) являются сокеты (socket) Беркли. Сокеты Беркли в настоящее время реализованы в виде прикладного интерфейса (API) практически во всех современных операционных системах. В связи с широким распространением сетей ЭВМ и телекоммуникаций на сегодняшний день знание этой технологии является необходимым для специалиста в области программного обеспечения. Мировые тенденции развития сетевых технологий указывают на то, что технология программирования сокетов эволюционирует, становится протоколо- и платформонезависимой и имеет широкие перспективы в будущем. В тоже время программирование сокетов является достаточно низкоуровневой технологией, сосредотачивающей внимание на транспортировке данных безотносительно их пользовательской семантики. Для реализации законченных пользовательских приложений требуется применение более эффективных высокоуровневых технологий передачи гипертекста, бинарных данных (HTTP, FTP), и организации логики клиент-серверного взаимодействия (веб-технологии). Также мощной тенденцией развития программного обеспечения вообще и сетевого в частности является создание технологий программирования максимально независимых от программного и аппаратного окружения. Ярчайшим примером здесь является технология Java корпорации Sun Microsystems (США) и свободно распространяемая среда разработки Eclipse, продвигаемая одноименным сетевым сообществом (community).

Студент должен обладать некоторым набором знаний и навыков для выполнения данного лабораторного практикума. Так, для работы с сокетами в ОС MS Windows и Unix-подобных системах, требуется знание языка программирования C, а также основ работы в соответствующих ОС.

Язык программирования Java является развитием ЯП C++, и для освоения Java необходимо владеть методами объектно-ориентированного проектирования и программирования. Теоретические знания о построении сетей ЭВМ приобретаются в ходе лекционных занятий и при изучении основной и дополнительной литературы.

Программное обеспечение, а также справочная информация, используемые в данном практикуме, являются свободно распространяемыми и доступны для загрузки из сети Интернет.

Для экономии времени всё обеспечение загружено, упорядочено в структуру и размещено на локальных и публичных сетевых ресурсах. Одним из таких ресурсов является веб-узел афедры АСУ ТУСУР http:

//asu.tusur.ru (раздел методического обеспечения.

Можно указать то место, где установлена IDE Eclipse.

1. ЦЕЛИ И ЗАДАЧИ ДИСЦИПЛИНЫ, ЕЕ МЕСТО В УЧЕБНОМ ПРОЦЕССЕ

1.1. Цели преподавания дисциплины

Целью дисциплины является обучение студентов основам построения и функционирования вычислительных сетей (ВС) и телекоммуникационных систем (ТКС). На материале этой дисциплины базируются практически все дисциплины связанные с применением технологий вычислительных сетей.

1.2. Задачи изучения сетей и телекоммуникаций.

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

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

1.3. Перечень дисциплин, усвоение которых студентами необходимо для изучения баз данных и экспертных систем.

Дисциплина «Сети и телекоммуникации» относится к профессиональному циклу базовой (обязательной) части дисциплин. Изучение данной дисциплины необходимо для учебно-исследовательской работы и при изучении GRID-технологий. Для изучения данной дисциплины необходимо изучение таких дисциплин на младших курсах таких как: «Математика», «Физика», «Информатика», «Программирование», «Дискретная математика», «ЭВМ и периферийные устройства», «Объектно-ориентированное программирование», «Структуры и алгоритмы обработки данных», «Основы разработки программного обеспечения».

2. Содержание курса

2.1 Лекции (54 часа)

|Наименование разделов |Содержание разделов |Трудоемкост|

| | |ь (час.) |

|Введение |Предмет и содержание курса. Вычислительные машины, сети и системы телекоммуникаций - важный |2 |

| |фактор научно-технического прогресса и прогресса цивилизации. Различие понятий вычислительная | |

| |машина и вычислительная сеть. История и современные тенденции развития вычислительных сетей. | |

| |Задачи, решаемые современными вычислительными сетями: файловый сервис, сервис печати, сервис | |

| |сообщений, сервис приложений, сервис баз данных. | |

|Основы передачи данных |Понятие среды передачи данных. Характеристики сред. Шкала электромагнитных колебаний. Стандарты |4 |

| |сред передачи данных. Понятие полосы пропускания. Количество информации и энтропия, единицы | |

| |измерения. Законы Найквиста, Шеннона, Котельникова. Аналоговая и цифровая формы представления | |

| |информационного сигнала. Способы модуляции. Информационная и техническая скорость передачи. | |

| |Алгоритмы кодирования и сжатия информации. | |

|Принципы построения сетей ЭВМ |Классификация сетей. Многоуровневый подход к организации сетей. Протоколы и интерфейсы. Стандарты|4 |

| |и источники стандартов ВС. Открытые системы. Модель взаимодействия открытых систем (ВОС). Понятие| |

| |стека протоколов. Взаимодействие различных уровней стека. | |

|Прикладной уровень модели ВОС. |Сервисы прикладного уровня. Оповещение о сервисах. Использование сервисов. |2 |

|Транспортный, сеансовый уровни и |Разрешение имен. Адресация транспортного соединения. Сегментация, блокирование, сцепление данных.|4 |

|уровень представления |Алгоритм медленного пуска. Сервис транспортного соединения. Задачи уровня представления. | |

| |Шифрование. | |

|Сетевой уровень модели ВОС |Задачи сетевого уровня. Сервис шлюзов. Адресация в сетях. Задача маршрутизации. Методы |4 |

| |маршрутизации. Коммутация. Виртуальные каналы. Протоколы и алгоритмы групповой маршрутизации. | |

|Канальный уровень модели ВОС |Задачи канального уровня. Логическая топология. Методы доступа к среде передачи данных. |2 |

| |Адресация канального уровня. Синхронизация передачи. Сервис соединения канального уровня. | |

|Физический уровень модели ВОС |Задачи физического уровня. Типы соединения. Физическая топология. Аналоговое и цифровое |4 |

| |представление сигнала. Синхронизация бит. Использование полосы пропускания. Мультиплексирование | |

| |(TDMA, FDMA, CDMA, OFDMA). | |

|Базовые технологии сетей. |Ethernet, TokenRing, Frame Relay, ATM, FDDI, 100VG ANYLAN, Wifi, WiMax. Территориальные сети. |8 |

| |Аппаратное обеспечение сетей: сетевые интерфейсные карты, концентраторы, коммутаторы, мосты, | |

| |маршрутизаторы. | |

|Современные телекоммуникационные |Коммутируемые телефонные сети. Интегральные сети цифрового обслуживания. Сотовая телефония. |4 |

|системы |Спутниковые системы связи и навигации. Низкоорбитальные и высокоорбитальные системы. Системы | |

| |глобального позиционирования и синхронизации. Спутниковый Интернет. Система Iridium, GlobalStar, | |

| |GPS, VSAT. Технологии сотовой связи. UMTS, GSM. | |

|Стеки сетевых протоколов |TCP/IP (IPv4, IPv6, ICMP, DHCP, DNS, ARP, RARP, SCTP, UDP), IPX/SPX, SMB/NetBIOS, DNA, SNA, |4 |

| |AppleTalk, DecNet, стек OSI. | |

|Программное обеспечение сетей. |Определение сетевой ОС. Одноранговые сети и сети «клиент\сервер». Обзор сетевых ОС (Unix, Win32, |4 |

|Сетевые операционные системы |Novell Netware). Служба сетевых каталогов как средство интеграции сетевых продуктов. Драйверы | |

| |сетевых устройств. Сокеты Беркли. Программирование на уровне сокетов. | |

|Глобальные сети. Языки и средства |История возникновения и развития глобальных сетей (AOL, Compuserv, Internet). Служба WWW. Язык |4 |

|создания Web-приложений. |гипертекстовой разметки HTML – основные возможности. Способы организации динамической обработки | |

| |информации в WWW: на стороне сервера, на стороне клиента. Организация распределенных вычислений.| |

| |Технологии SONET/SDH, 10\40\100\ Gigabit Ethernet. | |

|Безопасность в вычислительных сетях.|Общие правила безопасности. Классы безопасности. Безопасность в ВС по ГОСТ. Понятие Firewall. |4 |

| |Аутентификация. Безопасность беспроводных сетей, WEP, атаки на WEP, WPA, WPA2. Квантовые | |

| |алгоритмы шифрования. DoS, DDoS атака, спуфинг, атака не переполнение буфера. | |

2.2 Темы для самостоятельного изучения. Отчет в виде рефератов и докладов.

Темы рефератов

1. Протокол шифрования WEP. Взлом WEP. FMS Атака.

2. Протокол IPSec.

3. Протокол сетевого уровня IPv6.

4. Протокол SSL/TLS.

5. Технологии глобальных сетей.

6. Сотовая связь. Основные технологии.

7. Современные технологии локальных сетей.

8. Спутниковая связь, спутниковый Интернет.

9. Методы мультиплексирования применяемые в сотовой связи.

10. Телекоммуникационные технологии будущего.

11. Квантовые криптографические алгоритмы и протоколы для передачи данных.

12. Квантовая телепортация.

13. Безопасность в Wi - Fi сетях.

14. Стек протоколов OSI.

15. Сети ЭВМ будущего.

16. Протоколы групповой маршрутизации.

17. Защищенные каналы в сети Интернет.

18. Безопасность в сети Интернет. Основные угрозы.

19. DDoS атака. DoS атака.

20. Облачные сервисы.

21. Сети WiMAX.

2.3 Экзаменационные вопросы

1. Виды сервисов, предоставляемых современными сетями. Привести примеры существующих технологий.

2. Глобальные и локальные сети. Современные тенденции развития.

3. Необходимость стандартизации сетей ЭВМ. Источники официальных стандартов и рекомендаций. Источники стандартов Интернет.

4. Модель взаимодействия открытых систем. Принцип построения. Понятия: протокол, интерфейс.

5. Понятие среды передачи данных. Шкала электромагнитного спектра. Достоинства и недостатки каждого из диапазонов.

6. Проводные технологии передачи данных. Основные характеристики.

7. Беспроводные технологии передачи данных. Основные характеристики.

8. Спутниковые системы передачи данных. Низко- и высокоорбитальные системы. VSAT. Iridium. GlobalStar. Глонасс. GPS.

9. Телефония и магистральные каналы связи. Технологии T1, E1, T3, X.25, Frame Relay, ISDN, ATM.

10. Аппаратное обеспечение сетей ЭВМ (сетевые карты, мосты, коммутаторы, маршрутизаторы, модемы, мультиплексоры). Разделение устройств по уровням OSI.

11. Понятие стека протоколов. Существующие стеки протоколов (назвать не менее 4-5 стеков). Стеки TCP/IP и IPX/SPX. Принципиальное отличие этих стеков.

12. Пример взаимодействие двух компьютеров в сети. Клиент и сервер. Задачи решаемые, сетевыми операционными системами. Обзор сетевых операционных систем. Основные критерии оценки.

13. Коммутация пакетов и коммутация каналов. Сравнительная характеристика, области и технологии применения.

14. Аналоговое и цифровое кодирование. Связь частоты, методов кодирования и информационной скорости передачи сигнала, энтропия: формула Шеннона.

15. Физический уровень модели OSI. Единицы данных физического уровня. Методы синхронизации бит. Физическая топология. Достоинства и недостатки различных топологий. Мультиплексирование физического уровня: методы мультиплексирования, области применения. Методы помехоустойчивого кодирования.

16. Канальный уровень модели OSI. Логическая топология сетей. Единицы данных канального уровня. Методы доступа к среде передачи данных. Синхронизация байт. Сервис соединений.

17. Технологии канального уровня: Ethernet, Token Ring.

18. Технология 100 VG-AnyLAN, FDDI.

19. Сетевой уровень модели OSI. Единицы данных, адресация сетевого уровня. Сервис шлюзов. Маршрутизация. Коммутация.

20. Транспортный уровень модели OSI. Сервис транспортного уровня. Сегменты.

21. Сеансовый, уровень представления и прикладной уровни.

22. Адресация в сетях. Адресация в сетях TCP/IP. Протоколы ARP, DHCP.

23. Алгоритм Дейкстры нахождения кратчайшего пути. Метод заливки.

24. Маршрутизация по вектору расстояний. Достоинства и недостатки методов.

25. Маршрутизация с учетом состояния линий.

26. Протокол IP. Назначение. Принцип действия. Формат заголовка.

27. Протоколы: UDP, ICMP, TCP, ICMP v6.

28. Протокол SOCKS5. Цепочки прокси.

29. Система DNS. Записи ресурсов в DNS. Серверы имен. Зоны DNS.

30. Электронная почта. К какому виду сетевого сервиса она относится? Стандарты e-mail. Почему неудобно использовать IP адреса в качестве адресов электронной почты?

31. Архитектура и службы электронной почты. Пользовательский агент и агент передачи сообщения. Перечислите протоколы электронной почты Internet.

32. Форматы сообщений. RFC822. MIME. Правила кодировки base64, quoted-printable.

33. Протоколы SMTP, POP3, IMAP4. Назначение. Основные отличия. Веб-почта.

34. Всемирная паутина WWW. История развития. Архитектура и принцип действия. Вопросы, рассматриваемые W3C.

35. Клиентское ПО в WWW. Действия выполняемые браузером. Способы расширения возможностей браузеров.

36. ПО веб-сервера. Действия сервера. Способы увеличения производительности серверов. Популярное ПО для веб-серверов (Apache и т.д.)

37. Протокол HTTP.

38. URL. URN. Технология cookie. Достоинства и недостатки.

39. Статические веб-документы. HTML – основные свойства. Сравнение возможностей различных версий HTML. Формы в HTML.

40. XML, XSL. XHTML.

41. Динамические веб-документы на стороне сервера. Назначение. Примеры реализации. Технологии CGI, ISAPI, PHP, ASP, JSP. Примеры кода. Достоинства и недостатки.

42. Динамические веб-документы на стороне клиента. JavaScript, Java, ActiveX, SWF. Примеры реализации. Достоинства и недостатки.

43. Описание сервиса в модели OSI. Функции уровней.

44. Представление сервиса в модели OSI. Правила описания сервиса. Взаимосвязь в режиме без соединения. Описание сервисов физического и канального уровней. Граф последовательности канальных сервисных примитивов.

45. Описание сервисов сетевого и транспортного уровней.

46. Описание сервисов сеансового уровня.

47. Описание сервисов уровней представления и прикладного уровня. Синтаксис ASN.1

48. Сети Gigabit, 10,40, 100 Gigabit Ethernet.

49. Сети SONET/SDH.

50. Протокол маршрутизации OSPF.

51. Протокол маршрутизации NLSP.

52. Протокол маршрутизации RIP.

53. Протокол IP версии 6. Отличия от версии 4. IP адреса v6.

54. Способы расширения адресного пространства IP v4. Устройства NAT.

55. Протоколы групповой маршрутизации.

56. Протокол групповой маршрутизации MOSPF.

57. Протокол IGMP.

58. Беспроводные сети. Wi-Fi, WiMax, Bluetooth.

59. Протоколы беспроводных сетей. WEP.

60. Протоколы беспроводных сетей. WPA.

61. Безопасность в беспроводных сетях.

62. Сотовая связь. CDMA, TDMA, FDMA.

63. Сотовая связь. UMTS, GSM.

64. Безопасность беспроводных сетей. Атаки на WEP.

65. Квантовые криптографические алгоритмы и протоколы.

66. Безопасность в сети. SSL 2.0. TLS (SSL 3.0).

67. Безопасность в сети. IPSec.

68. Безопасность в сети. SASL.

2.3.1 Экзаменационные билеты

1. Виды сервисов, предоставляемых современными сетями. Привести примеры существующих технологий.

2. Пример взаимодействие двух компьютеров в сети. Клиент и сервер. Задачи решаемые, сетевыми операционными системами. Обзор сетевых операционных систем. Основные критерии оценки.

3. Протоколы SMTP, POP3, IMAP4. Назначение. Основные отличия. Веб-почта.

–--------------------------------------------

4. Электронная почта. К какому виду сетевого сервиса она относится? Стандарты e-mail. Почему неудобно использовать IP адреса в качестве адресов электронной почты?

5. Протоколы беспроводных сетей. WEP.

6. Динамические веб-документы на стороне сервера. Назначение. Примеры реализации. Технологии CGI, ISAPI, PHP, ASP, JSP. Примеры кода. Достоинства и недостатки.

–---------------------------------------------

7. Технологии канального уровня: Ethernet, Token Ring.

8. Маршрутизация с учетом состояния линий.

9. Архитектура и службы электронной почты. Пользовательский агент и агент передачи сообщения. Перечислите протоколы электронной почты Internet.

–-------------------------------------------------

10. Транспортный уровень модели OSI. Сервис транспортного уровня. Сегменты.

11. Сетевой уровень модели OSI. Единицы данных, адресация сетевого уровня. Сервис шлюзов. Маршрутизация. Коммутация.

12. Протокол маршрутизации OSPF.

–----------------------------------------------------

13. Протокол маршрутизации NLSP.

14. Беспроводные сети. Wi-Fi, WiMax, Bluetooth.

15. Канальный уровень модели OSI. Логическая топология сетей. Единицы данных канального уровня. Методы доступа к среде передачи данных. Синхронизация байт. Сервис соединений.

–-----------------------------------------------------

16. Беспроводные технологии передачи данных. Основные характеристики.

17. Физический уровень модели OSI. Единицы данных физического уровня. Методы синхронизации бит. Физическая топология. Достоинства и недостатки различных топологий. Мультиплексирование физического уровня: методы мультиплексирования, области применения. Методы помехоустойчивого кодирования.

18. Технология 100 VG-AnyLAN, FDDI.

–-----------------------------------------------------------------

19. Описание сервиса в модели OSI. Функции уровней.

20. Представление сервиса в модели OSI. Правила описания сервиса. Взаимосвязь в режиме без соединения. Описание сервисов физического и канального уровней. Граф последовательности канальных сервисных примитивов.

21. Безопасность в сети. SSL 2.0. TLS (SSL 3.0).

–--------------------------------------------------------------------

22. Аппаратное обеспечение сетей ЭВМ (сетевые карты, мосты, коммутаторы, маршрутизаторы, модемы, мультиплексоры). Разделение устройств по уровням OSI.

23. Аналоговое и цифровое кодирование. Связь частоты, методов кодирования и информационной скорости передачи сигнала, энтропия: формула Шеннона.

24. Система DNS. Записи ресурсов в DNS. Серверы имен. Зоны DNS.

----------------------------------------------------------------------

25. Протокол SOCKS5. Цепочки прокси.

26. ПО веб-сервера. Действия сервера. Способы увеличения производительности серверов. Популярное ПО для веб-серверов (Apache и т.д.)

27. Описание сервисов сеансового уровня.

–------------------------------------------------------------

28. Сеансовый, уровень представления и прикладной уровни.

29. Понятие среды передачи данных. Шкала электромагнитного спектра. Достоинства и недостатки каждого из диапазонов.

30. Спутниковые системы передачи данных. Низко- и высокоорбитальные системы. VSAT. Iridium. GlobalStar. Глонасс. GPS.

–----------------------------------------------------------------------

31. URL. URN. Технология cookie. Достоинства и недостатки.

32. Динамические веб-документы на стороне клиента. JavaScript, Java, ActiveX, SWF. Примеры реализации. Достоинства и недостатки.

33. Описание сервисов сетевого и транспортного уровней.

–------------------------------------------------------------------------

34. Безопасность в сети. SASL.

35. Протоколы беспроводных сетей. WPA.

36. Форматы сообщений. RFC822. MIME. Правила кодировки base64, quoted-printable.

–-------------------------------------------------------------------

37. Протокол IP. Назначение. Принцип действия. Формат заголовка.

38. Адресация в сетях. Адресация в сетях TCP/IP. Протоколы ARP, DHCP.

39. Понятие стека протоколов. Существующие стеки протоколов (назвать не менее 4-5 стеков). Стеки TCP/IP и IPX/SPX. Принципиальное отличие этих стеков.

–------------------------------------------------------------------------

40. Глобальные и локальные сети. Современные тенденции развития.

41. Алгоритм Дейкстры нахождения кратчайшего пути. Метод заливки.

42. Клиентское ПО в WWW. Действия выполняемые браузером. Способы расширения возможностей браузеров.

–--------------------------------------------------------------------------------

43. Статические веб-документы. HTML – основные свойства. Сравнение возможностей различных версий HTML. Формы в HTML.

44. Сети Gigabit, 10,40, 100 Gigabit Ethernet.

45. Протокол IP версии 6. Отличия от версии 4. IP адреса v6.

–-----------------------------------------------------------------------------

46. Протокол групповой маршрутизации MOSPF.

47. Безопасность беспроводных сетей. Атаки на WEP.

48. Протоколы: UDP, ICMP, TCP, ICMP v6.

------------------------------------------------------------------------------

49. Всемирная паутина WWW. История развития. Архитектура и принцип действия. Вопросы, рассматриваемые W3C.

50. Необходимость стандартизации сетей ЭВМ. Источники официальных стандартов и рекомендаций. Источники стандартов Интернет.

51. Модель взаимодействия открытых систем. Принцип построения. Понятия: протокол, интерфейс.

–------------------------------------------------------------------------------

52. Коммутация пакетов и коммутация каналов. Сравнительная характеристика, области и технологии применения.

53. Маршрутизация по вектору расстояний. Достоинства и недостатки методов.

54. Протокол HTTP.

–------------------------------------------------------------------------------------

55. Протокол IGMP.

56. Квантовые криптографические алгоритмы и протоколы.

57. XML, XSL. XHTML.

–------------------------------------------------------------------------------------

58. Описание сервисов уровней представления и прикладного уровня. Синтаксис ASN.1

59. Способы расширения адресного пространства IP v4. Устройства NAT.

60. Телефония и магистральные каналы связи. Технологии T1, E1, T3, X.25, Frame Relay, ISDN, ATM.

–---------------------------------------------------------------------------------

61. Проводные технологии передачи данных. Основные характеристики.

62. Сети SONET/SDH.

63. Сотовая связь. CDMA, TDMA, FDMA.

–----------------------------------------------------------------------------------

64. Сотовая связь. UMTS, GSM.

65. Безопасность в сети. IPSec.

66. Протоколы групповой маршрутизации.

–--------------------------------------------------------------------------------------

67. Протокол маршрутизации RIP.

68. Безопасность в беспроводных сетях.

69. Коммутация пакетов и коммутация каналов. Сравнительная характеристика, области и технологии применения.

3. Лабораторные работы

3.1 Работа с WinSocket

3.1.1 Определения

Socket (гнездо, разъем) - абстрактное программное понятие, используемое для обозначения в прикладной программе конечной точки канала связи с коммуникационной средой, образованной вычислительной сетью. При использовании протоколов TCP/IP можно говорить, что socket является средством подключения прикладной программы к порту локального узла сети.

3.1.2 Создание сервера

Для создания сокета в операционной системе служит системный вызов socket(). Для транспортных протоколов семейства TCP/IP существует два вида сокетов:

UDP-сокет – сокет для работы с датаграммами, и TCP сокет – для работы с каналами.

При создании сокета необходимо точно специфицировать его тип. Эта спецификация производится с помощью трех параметров вызова socket(). Первый параметр указывает, к какому семейству протоколов относится создаваемый сокет, а второй и третий параметры определяют конкретный протокол внутри данного семейства.

Создание сокета осуществляется следующим системным вызовом:

#include #include int socket (int domain, int type, int protocol) Аргумент domain задает используемый для взаимодействия набор протоколов (вид коммуникационной области), для стека протоколов TCP/IP он должен иметь символьное значение AF_INET или PF_INET.

Аргумент type задает режим взаимодействия:

SOCK_STREAM - с установлением соединения;

SOCK_DGRAM - без установления соединения.

Аргумент protocol задает конкретный протокол транспортного уровня (из нескольких возможных в стеке протоколов). Если этот аргумент задан равным 0, то будет использован протокол "по умолчанию" (TCP для SOCK_STREAM и UDP для SOCK_DGRAM при использовании комплекта протоколов TCP/IP).

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

При обнаружении ошибки в ходе своей работы функция возвращает число "-1".

Прежде чем воспользоваться функцией socket необходимо проинициализировать процесс библиотеки wsock32.dll вызвав функцию WSAStartup например:

WSADATA WsaData;

int err = WSAStartup (0x0101, &WsaData);

if (err == SOCKET_ERROR) { printf ("WSAStartup() failed:

%ld\n", GetLastError ());

return 1;

} Здесь 0х0101 версия библиотеки которую следует использовать.

Кроме того, не забудьте подключить к проекту библиотеку ws2_32.lib.

Теперь объявить переменную типа SOCKET можно следующим образом:

s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

Далее следует задать параметры для сокета (сервера) для этого нам необходимо объявить структуру SOCKADDR_IN sin примерно следующим образом:

SOCKADDR_IN sin;

sin.sin_family = AF_INET;

sin.sin_port = htons(80);

sin.sin_addr.s_addr = INADDR_ANY;

Структура SOCKADDR_IN используется несколькими системными вызовами и функциями socket-интерфейса, ее определение в файле in.h выглядит следующим образом:

struct SOCKADDR_IN { short sin_family;

u_short sin_port;

struct in_addr sin_addr;

char sin_zero[8];

};

Поле sin_family определяет используемый формат адреса (набор протоколов), в нашем случае (для TCP/IP) оно должно иметь значение AF_INET.

Поле sin_addr содержит адрес (номер) узла сети.

Поле sin_port содержит номер порта на узле сети.

Поле sin_zero не используется.

Определение структуры in_addr (из того же файла in.h) таково:

struct in_addr { union { u_long S_addr;

/* другие (не интересующие нас) члены объединения */ } S_un;

#define s_addr S_un.S_addr };

Структура SOCKADDR_IN должна быть полностью заполнена перед выдачей системного вызова bind. При этом, если поле sin_addr.s_addr имеет значение INADDR_ANY, то системный вызов будет привязывать к сокету c номером (адресом) локального узла сети.

Для подключения сокета к коммуникационной среде, образованной вычислительной сетью, необходимо выполнить системный вызов bind, определяющий в принятом для сети формате локальный адрес канала связи со средой. В сетях TCP/IP socket связывается с локальным портом.

Системный вызов bind имеет следующий синтаксис:

int bind (SOCKET s, SOCKADDR_IN *addr, int addrlen) Пример:

err = bind( s, (LPSOCKADDR)&sin, sizeof(sin) );

Аргумент s задает дескриптор связываемого сокета.

Аргумент addr в общем случае должен указывать на структуру данных, содержащую локальный адрес, приписываемый сокету. Для сетей TCP/IP такой структурой является SOCKADDR_IN.

Аргумент addrlen задает размер (в байтах) структуры данных, указываемой аргументом addr.

В случае успеха bind возвращает 0, в противном случае - "-1".

Для установления связи "клиент-сервер" используются системные вызовы listen и accept (на стороне сервера), а также connect (на стороне клиента). Для заполнения полей структуры sockaddr_in, используемой в вызове connect, обычно используется библиотечная функция gethostbyname, транслирующая символическое имя узла сети в его номер (адрес).

Системный вызов listen выражает желание выдавшей его программы- сервера ожидать запросы к ней от программ-клиентов и имеет следующий вид:

int listen (SOCKET s, int n);

Пример:

err = listen(s, SOMAXCONN);

Аргумент s задает дескриптор сокета, через который программа будет ожидать запросы к ней от клиентов. Socket должен быть предварительно создан системным вызовом socket и обеспечен адресом с помощью системного вызова bind.

Аргумент n определяет максимальную длину очереди входящих запросов на установление связи. Если какой-либо клиент выдаст запрос на установление связи при полной очереди, то этот запрос будет отвергнут.

Признаком удачного завершения системного вызова listen служит нулевой код возврата.

Перед тем как воспользоваться функцией accept, необходимо объявить ещё одну переменную типа SOCKET, например s1 .

SOCKADDR_IN from;

int fromlen=sizeof(from);

s1 = accept(s,(struct sockaddr*)&from,&fromlen);

Это сделано для того, что бы узнать IP адрес и порт удаленного компьютера.

Для приема запросов от программ-клиентов на установление связи в программах-серверах используется системный вызов accept, имеющий следующий прототип:

int accept (SOCKET s, sockaddr_in *addr, int *p_addrlen;

Аргумент s задает дескриптор сокета, через который программа-сервер получила запрос на соединение (посредством системного запроса listen ).

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

Аргумент p_addrlen должен указывать на область памяти в виде целого числа, задающего размер (в байтах) области памяти, указываемой аргументом addr.

Системный вызов accept извлекает из очереди, организованной системным вызовом listen, первый запрос на соединение и возвращает дескриптор нового (автоматически созданного) сокета с теми же свойствами, что и socket, задаваемый аргументом s. Этот новый дескриптор необходимо использовать во всех последующих операциях обмена данными.

Если очередь запросов на момент выполнения accept пуста, то программа переходит в состояние ожидания поступления запросов от клиентов на неопределенное время (хотя такое поведение accept можно и изменить).

Признаком неудачного завершения accept служит отрицательное возвращенное значение (дескриптор сокета отрицательным быть не может).

После установления соединения с клиентом можно передавать и получать данные. Для этого в операционной системе Window используются системные вызовы recv для чтения и send для записи.

Системные вызовы recv и send имеют следующие прототипы:

int recv (SOCKET s, void *buf, size_t len, int flags);

int send (SOCKET s, const void *buf, size_t len, int flags);

Возвращаемое значение:

число принятых или переданных байтов в случае успеха или -1 в случае ошибки Аргумент s задает дескриптор сокета, через который принимаются данные.

Аргумент buf для вызова recv указывает на область памяти, предназначенную для размещения принимаемых данных, а для вызова send - область памяти, содержащая передаваемые данные.

Аргумент len задает размер (в байтах) области buf.

Аргумент flags зависит от системы, но и UNIX, и Windows поддерживают следующие флаги:

MSG_OOB – следует послать или принять срочные данные.

MSG_PEEK – используется для просмотра поступивших данных без их удаления из приемного буфера. После возврата из системного вызова данные еще могут быть получены при последующем вызове recv.

MSG_DONTROUTE – сообщает ядру, что не надо выполнять обычный алгоритм маршрутизации. Как правило, используется программами маршрутизации или для диагностических целей.

При работе с протоколом TCP вам ничего больше не понадобиться. Но при работе с UDP нужны еще системные вызовы recvfrom и sendto. Они очень похожи на recv и send, но позволяют при отправке датаграммы задать адрес назначения, а при приеме – получить адрес источника.

Системные вызовы recvfrom и sendto имеют следующие прототипы:

int recvfrom (SOCKET s, void *buf, size_t len, int flags, struct socketaddt *from, int *fromlen);

int sendto (SOCKET s, const void *buf, size_t len, int flags, const struct sockaddr *to, int tolen);

Возвращаемое значение:

число принятых или переданных байтов в случае успеха или -1 в случае ошибки Первые четыре аргумента – s, buf, len и flags – такие же, как и в вызовах recv и send. Аргумент from в вызове recvfrom указывает на структуру, в которую ядро помещает адрес источника пришедшей датаграммы. Длина этого адреса хранится в целом числе, на которое указывает аргумент fromlen. Обратите внимание, что fromlen – это указатель на целое.

Аналогично аргумент to в вызове sendto указывает на адрес структуры, содержащей адреса назначения датаграммы, а аргумент tolen – длина этого адреса.

Заметьте, что to - это целое, а не указатель.

Для закрытия ранее созданного сокета в системе Windows используется системный вызов closesocket, а в UNIX – системный вызов close.

Прототипы системных вызовов close и closesocket имеют следующий вид:

int close(SOCKET s);

int closesocket(SOCKET s);

Аргумент s задает дескриптор ранее созданного сокета.

3.1.3 Создание клиента

Программа клиента делается аналогично до момента создания сокетов.

Cоздайте сокет так, как описано выше, но не пользуйтесь командой bind:

SOCKADDR_IN anAddr;

anAddr.sin_family = AF_INET;

anAddr.sin_port = htons(80);

anAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");

Заполнение структуры производится почти также но во время инициализации переменной anAddr необходимо указать IP-адрес сервера ( пример 127.0.0.1 ) .

Для обращения программы-клиента к серверу с запросом на установление логической соединения используется системный вызов connect, имеющий следующий прототип:

int connect(SOCKET s, const struct sockaddr *peer, int peer_len));

Аргумент s задает дескриптор сокета, через который программа обращается к серверу с запросом на соединение.

Аргумент addr должен указывать на структуру данных, содержащую адрес, приписанный сокету программы-сервера, к которой делается запрос на соединение. Для сетей TCP/IP такой структурой является sockaddr_in.

Для формирования значений полей структуры sockaddr_in удобно использовать функцию gethostbyname.

Аргумент addrlen задает размер (в байтах) структуры данных, указываемой аргументом addr.

Для того, чтобы запрос на соединение был успешным, необходимо, по крайней мере, чтобы программа-сервер выполнила к этому моменту системный вызов listen для сокета с указанным адресом.

При успешном выполнении запроса системный вызов connect возвращает 0, в противном случае - "-1" (устанавливая код причины неуспеха в глобальной переменной errno).

Примечание. В режиме взаимодействия без установления соединения необходимости в выполнении системного вызова connect нет. Однако, его выполнение в таком режиме не является ошибкой - просто меняется смысл выполняемых при этом действий: устанавливается адрес "по умолчанию" для всех последующих посылок дейтаграмм.

3.2 Лабораторная работа №1 Работа с сокетами Беркли

Лабораторная работа №1 выполняется после изучения материала, посвященного описанию принципов работы с сокетами Беркли.

Цель работы:

написать консольные приложения на языке C/C++, реализующие работу протоколов Time, DayTime и Finger.

Рекомендуемая литература:

Глава 1 Работа с WinSocket данного пособия.

Снайдер Й. Эффективное программирование TCP/IP. Библиотека программиста. – Спб: Питер, 2002. – 230 с.: ил.

Электронный вариант лекций «Основы операционных систем.

Практикум». Лекция 10 «Семейство протоколов TCP/IP. Сокеты (sockets) в UNIX и основы работы с ними». Лекции можно найти в архиве, в файле osintropractice.zip.

Описание протокола Time в спецификации RFC-868 (Archive\Documents\ RFC\rfc868.txt)

Описание протокола Finger в спецификации RFC-1288 (Archive\Documents\RFC\rfc1288.txt)

Примитивы сокетов Беркли Сокет обычно трактуется как дескриптор файла и указывается в качестве параметра практически во всех примитивах.

Примитивы сокетов для TCP

SOCKET (гнездо) Дескриптор сокета, именование ресурса

BIND (связать) Связывает ресурсы (сокет) с локальным адресом хоста

LISTEN (ожидать) Возможность принять данные с указанием размера очереди

ACCEPT (принять) Блокирует сервер до попытки соединения клиента

CONNECT (соединить) Попытка установить соединения

SEND (переслать) Посылает данные по соединению

RECEIVE (получить) Получает данные у соединения

CLOSE (закрыть) Разрывает соединение на стороне сервера и клиента примитивы используются в следующем порядке:

Сторона сервера:

Вызовы примитивов осуществляются в следующем порядке:

SOCKET - создает дескриптор (примерно так же как OPEN при открытии файла) и выделяет для него место в таблице транспортного объекта. При этом сообщается, какая служба необходима, канальная (TCP) или дейтаграммная (UDP).

BIND – привязывает конкретный сетевой адрес к сокету, после чего становится возможной подключение клиентов.

LISTEN – выделяет место для очереди входящих вызовов на случай одновременного обращения нескольких клиентов.

ACCEPT – сервер переходит в режим ожидания (блокируется) до прихода блока с запросом соединения от клиента. При этом создается новый сокет, с теми же параметрами, что и оригинального сокета. Сервер может распараллелить процесс обработки нового сокета, что бы иметь возможность вернуться к ожиданию новых соединений.

Сторона клиента:

SOCKET - аналогично серверу.

CONNECT – блокирует вызывающего до завершения процесса фазы установки соединения, т.е. до подтверждения сервера, что соединение установлено.

Далее между сервером и клиентом идет обмен с использованием RECEIVE и SEND.

Соединение разрывается, если обе стороны используют примитив CLOSE.

Примечание. Для того чтобы выполнить преобразование символьного имени сервера или IP-адреса, в формат, используемый при работе с сетевыми функциями, следует использовать функции gethostbyname и inet_addr соответсвенно.

Также, следует помнить, что аргументы и типы приведённых выше функций, могут различаться в разных ОС, поэтому, для получения более полной информации следует воспользоваться системой помощи в данной системе (команда man в UNIX или MSDN в Windows).

При работе с сокетами в Windows, не забывайте подгрузить, а по окончании работы выгрузить библиотеку реализующую поддержку сокетов через функции WSAStartup/WSACleanup.

Протокол передачи времени Time

Данный протокол предназначен для передачи показаний времени по сети. В сети работают так называемые time-серверы, у которых можно запросить точное время. В ответ на запрос клиента, сервер возвращает время в секундах (32х битное двоичное число), прошедшее с 00:00:00 1 января 1900 года.

Этот протокол может использовать в качестве транспортной службы как UDP-протокол, так и TCP-протокол. Стандартный порт протокола - 37.

Если в качестве транспортной службы используется TCP, взаимодействие осуществляется так:

SERVER: прослушивает 37 порт, ожидая соединений;

CLIENT: запрашивает соединение с портом 37 сервера;

SERVER: посылает время в виде двоичного 32х битного числа;

CLIENT: получает время;

SERVER: закрывает соединение;

CLIENT: закрывает соединение;

Если сервер по каким-либо причинам не может определить время на своей стороне, он отказывается от соединения, не посылая ничего.

Если в качестве транспортной службы используется UDP, взаимодействие осуществляется так:

SERVER: прослушивает 37 порт, ожидая соединений;

CLIENT: посылает серверу пустой UDP-пакет, номер порта = 37;

SERVER: получает пустой UDP-пакет;

SERVER: посылает UDP-пакет, содержащий время в виде двоичного 32х битного числа;

CLIENT: получает UDP -пакет, содержащий время;

Если сервер по каким-либо причинам не может определить время на своей стороне, он отбрасывает полученный пустой UDP-пакет и не посылает ничего в ответ.

Протокол Finger

Сетевой протокол Finger предназначен для предоставления информации о пользователях удалённого компьютера. Стандартный порт протокола - 79. Используя данный протокол, вы можете получить данные о списке пользователей, которые работают в данный момент на интересующей вас ЭВМ, о конкретном пользователе (дата последнего сеанса входа в систему и т.д.), о списке загруженных задач, о типах интерфейсов (например, терминалов). Протокол Finger обеспечивает интерфейс для удаленной информационной программы пользователя (RUIP - Remote User Information Program).

Данный протокол базируется на TCP. Локальная ЭВМ осуществляет TCP-соединение с удаленным узлом через указанный порт. После этого становится доступной программа RUIP и пользователь может посылать ей свои запросы. Каждый запрос представляет собой строку текста. RUIP, получив запрос, анализирует его и присылает ответ, после чего соединение закрывается.

Любые пересылаемые данные должны иметь формат ASCII, не иметь контроля по четности и каждая строка должна завершаться последовательностью CRLF (ASCII 13, за которым следует ASCII 10).

Диалог двух машин через TCP выглядит следующим образом:

SERVER: слушает порт 79;

CLIENT: устанавливает соединение на 79 порт;

CLIENT: посылает имя пользователя;

SERVER: посылает информацию о запрашиваемом пользователе;

CLIENT: принимает;

SERVER: закрывает соединение;

CLIENT: закрывает соединение;

Пример реализации протокола Daytime

В качестве примера, приводится текст программы, реализующей работу Daytime Protocol’а.

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define strHost "212.192.122.109"

#define Port 13

int main(void) { int s, res;

int nCharRecv;

struct sockaddr_in clnt_sin;

char timebuf[128];

if ((s=socket(AF_INET, SOCK_STREAM, 0)) == -1) { printf("Cannot create socket!!!!\n");

return -1;

}

memset ((char *)&clnt_sin, '\0', sizeof(clnt_sin));

clnt_sin.sin_family = AF_INET;

clnt_sin.sin_addr.s_addr = inet_addr(strHost);

clnt_sin.sin_port = htons(Port);

res = connect (s, (struct sockaddr *)&clnt_sin, sizeof(clnt_sin));

if (res == -1) { perror("connect");

}

else { printf("Connected\n");

}

memset(timebuf, '\0', 128);

nCharRecv = recv(s, &timebuf, sizeof(timebuf), 0);

if (nCharRecv == -1) { printf("Cannot get info from server!!!!\n");

perror("Receive");

return -1;

}

close(s);

printf("Time: %s\n", timebuf);

return 0;

}

Задание на лабораторную работу:

Ознакомившись с протоколом в RFC 868 написать программу, запрашивающую время с удаленного сервера через Time Protocol.

Полученное от сервера 32 – битное число необходимо преобразовать в строку и вывести на экран.

Написать программу, запрашивающую информацию о пользователе от удаленного сервера через протокол Finger, описанный в RFC 1288.

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

Пользоваться готовыми классами, компонентами, библиотеками, реализующими работу с сетью, ЗАПРЕЩЕНО. Все программы должны использовать элементарные функции, работающими с сокетами Беркли.

3.3 Лабораторная работа №2 Протоколы SMTP и POP3

Лабораторная работа №2 выполняется после изучения материала, посвященного описанию принципов работы почтовых служб SMTP и POP3 [Компьютерные сети. 4-е издание / Э. Таненбаум].

Цель работы:

написать GUI приложение для ОС Windows, реализующие работу протоколов SMTP или POP3.

Рекомендуемая литература:

Компьютерные сети. 4-е издание / Э. Таненбаум. – Спб.: Питер, 2003. – 992 с.:ил. Глава 7 («Прикладной уровень») раздел «Электронная почта».

Описание протокола SMTP в спецификации RFC-788 (ARCHIVE\Documents\RFC\rfc788.txt).

Описание протокола POP3 в спецификации RFC-1939 (ARCHIVE\Documents\RFC\rfc1939.txt).

Протокол электронной почты SMTP Протокол SMTP (Simple Mail Transfer Protocol) был разработан для обмена почтовыми сообщениями в сети Internet. SMTP не зависит от транспортной среды и может использоваться для доставки почты в сетях с протоколами, отличными от TCP/IP и Х.25.

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

Фактически, отправитель выступает в роли клиента, а получатель - сервера. На рис. 2.1 приведена схема взаимодействия клиента и сервера по протоколу SMTP.

[pic] Рис. 2.1 - Схема взаимодействия по протоколу SMTP

Канал связи устанавливается непосредственно между отправителем и получателем сообщения. При таком взаимодействии почта достигает абонента в течение нескольких секунд после отправки.

Обмен сообщениями и инструкциями в SMTP ведется в ASCII-кодах.

После установления соединения, как правило, используя 25 порт, клиент должен обязательно отправить на сервер команду HELO . Эта команда используется для идентификации машины отправителя (HOST) на SMTP сервере.

Следующее командой должна идти команда MAIL, идентифицирующая отправителя:

MAIL FROM:

Пример:

MAIL FROM: cat@australia.mail.au

Эта команда указывает SMTP-серверу начать новую транзакцию по приёму почты. В качестве аргумента, она передаёт на сервер почтовый адрес отправителя письма.

Если адрес отправителя правильный и не содержит ошибок, то сервер вернёт ответ «250 OK».

Следующей командой идёт команда

RCPT:

RCPT TO:

Пример:

RCPT TO: dog@switzerland.mail.sz

Эта команда передаёт на сервер почтовый адрес получателя письма.

Если адрес получателя не содержит ошибок, то тогда SMTP сервер вернёт ответ «250 OK». Если в адресе получателя есть ошибка, то сервер вернёт сообщение с кодом 550. Данная команда может повторяться сколь угодно долго по числу получателей, однако современные почтовые сервера вводят ограничения на количество одновременных получателей.

Следующей командой идёт команда DATA

Если она принимается сервером, то он возвращает сообщение с кодом 354, приглашающее продолжить отправку сообщения. После этого, на сервер можно передавать текст почтового сообщения. Признаком окончания передачи почтового сообщения является символ точки «.» в начале новой строки. Если сообщение принято к доставке, то сервер вернёт уведомление с кодом 250, а иначе – сообщение об ошибке.

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

Пример SMTP диалога, между отправителем (SENDER) и сервером (RECEIVER):

SENDER: MAIL FROM:

RECEIVER: 250 OK

SENDER: RCPT TO:

RECEIVER: 250 OK

SENDER: RCPT TO:

RECEIVER: 550 No such user here

SENDER: RCPT TO:

RECEIVER: 250 OK

SENDER: DATA

RECEIVER: 354 Start mail input; end with .

SENDER: Blah blah blah...

SENDER: ...etc. etc. etc.

SENDER: .

RECEIVER:

250 OK

Протокол электронной почты POP3 РОРЗ (Post Office Protocol v.3) — это простейший протокол для работы пользователя с содержимым своего почтового ящика. Он позволяет только забрать почту из почтового ящика сервера на рабочую станцию клиента и удалить ее из почтового ящика на сервере. Всю дальнейшую обработку почтовое сообщение проходит на компьютере клиента.

Многие концепции, принципы и понятия протокола POP выглядят и функционируют подобно SMTP. Команды POP практически идентичны командам SMTP. На рис. 4.2 изображена модель взаимодействия клиента и сервера по протоколу POP. Сервер POP находится между агентом пользователя и почтовыми ящиками.

[pic] Рис. 2.2 – Конфигурация модели клиент-сервер по протоколу POP3

В протоколе РОРЗ оговорены три стадии процесса получения почты:

авторизация, транзакция и обновление. После того как сервер и клиент РОРЗ установили соединение, начинается стадия авторизации. На стадии авторизации клиент идентифицирует себя для сервера. Если авторизация прошла успешно, сервер открывает почтовый ящик клиента и начинается стадия транзакции. В ней клиент либо запрашивает у сервера информацию (например, список почтовых сообщений), либо просит его совершить определенное действие (например, выдать почтовое сообщение). Наконец, на стадии обновления сеанс связи заканчивается.

Авторизация пользователя. После того как программа установила TCP-соединение с портом протокола РОРЗ (официальный номер 110), необходимо послать команду USER с именем пользователя в качестве параметра. Если ответ сервера будет +ОК, нужно послать команду PASS с паролем этого пользователя:

Пример:

CLIENT: USER ivan

SERVER: +ОК

CLIENT: PASS secret

SERVER: +ОК ivan's maildrop has 2 messages (320 octets)

Последняя строчка ответа означает, что в почтовом ящике ivan есть 2 сообщения (320 байтов).

Транзакции РОРЗ. После того как стадия авторизации окончена, обмен переходит на стадию транзакции. В следующих примерах демонстрируется возможный обмен сообщениями на этой стадии.

Команда STAT возвращает количество сообщений и количество байтов в сообщениях:

CLIENT: STAT

SERVER: +ОК 2 320

Команда LIST (без параметра) возвращает список сообщений в почтовом ящике и их размеры:

CLIENT: LIST

SERVER: +ОК

SERVER: 2 messages (320 octets)

SERVER: 1 120

SERVER: 2 200

...

Команда LIST с параметром возвращает информацию о заданном сообщении:

CLIENT: LIST 2

SERVER: +ОК 2 200

...

CLIENT: LIST 3

SERVER: -ERR no such message, only 2 messages in maildrop

Команда TOP возвращает заголовок, пустую строку и первые десять строк тела сообщения:

CLIENT: TOP 10

SERVER: +ОК

SERVER: (сервер POP высылает заголовки сообщений, пустую строку и первые десять строк тела сообщения)

SERVER:

....

CLIENT: TOP 100

SERVER: -ERR no such message

Команда NOOP не возвращает никакой полезной информации, за исключением позитивного ответа сервера. Однако позитивный ответ означает, что сервер находится в соединении с клиентом и ждет запросов:

CLIENT: NOOP

SERVER: +ОК

Следующие примеры показывают, как сервер POP3 выполняет действия.

Например, команда RETR извлекает сообщение с указанным номером и помещает его в буфер местного UA (почтового агента):

CLIENT: RETR 1

SERVER: +OK 120 octets

SERVER: (РОРЗ-сервер высылает сообщение целиком)

SERVER:

. . . . . .

Команда DELE отмечает сообщение, которое нужно удалить:

CLIENT: DELE 1

SERVER: +OK message 1 deleted ...

(сообщение 1 удалено) CLIENT:

DELE 2

SERVER: -ERR message 2 already deleted (сообщение 2 уже удалено)

Команда RSET снимает метки удаления со всех отмеченных ранее сообщений:

CLIENT: RSET

SERVER: +OK maildrop has 2 (в почтовом ящике 2 сообщения (320 байтов)) messages (320 octets)

Как и следовало ожидать, команда QUIT закрывает соединение с сервером:

CLIENT: QUIT

SERVER: +OK dewey POP3 server signing off

CLIENT: QUIT

SERVER: +OK dewey POP3 server signing off (maildrop empty)

CLIENT: QUIT

SERVER: +OK dewey POP3 server signing off (2 messages left)

Обратите внимание на то, что отмеченные для удаления сообщения на самом деле не удаляются до тех пор, пока не выдана команда QUIT и не началась стадия обновления. В любой момент в течение сеанса клиент имеет возможность выдать команду RSET, и все отмеченные для удаления сообщения будут восстановлены.

Задание на лабораторную работу:

Ознакомившись с протоколами SMTP, описанным в RFC 788 и POP3, описанным в RFC 1939 выполнить нижеприведенные задания.

Написать приложение:

с помощью которого можно отправлять email сообщения.

с помощью которого можно принимать email сообщения, оставленные в почтовом ящике.

с помощью которого можно просматривать список email сообщений в почтовом ящике и удалять выбранные сообщения.

с помощью которого можно просматривать дополнительную информацию о заданном сообщении и удалять выбранные сообщения из почтового ящика.

Указанные приложения можно реализовать как в консольном варианте, так и с применением GUI. Для реализации можно использовать Java-Swing, AWT, C# - .Net , C++ - QT, Python.

3.4 Лабораторная работа №3 Моделирование протоколов канального уровня

Основные протоколы канального уровня, рассматриваемые в данной работе, соответствуют стандартным топологиям локальных сетей: звезда, шина и кольцо, им в свою очередь соответствуют такие известные технологии как 100VGAnyLan, Ethernet, Token Ring, FDDI.

Ethernet. (самый распространённый стандарт локальных сетей ieee 802.3)

Технология ethernet использует метод доступа к среде CSMA/CD — коллективного доступа к несущей и обнаружением коллизий и логической общей шиной, данный метод произошел из радиосетей. Все компьютеры имеют общий доступ к одной среде или шине для передачи данных, все компьютеры могут получать данные из такой среды. Перед отправкой кадра каждый узел сети проверяет занят ли в данный момент канал, анализируя наличие несущей частоты в канале — 5 — 10Мгц, если она присутствует то узел ждет освобождения канала для передачи, если канал свободен, то узел отправляет кадр, после отправки кадра идет 9.5 мкс интервал простоя. Часто в такой сети при интенсивной загрузке возникают коллизии если два узла сразу отправляют кадр обнаружив канал свободным, что искажает кадры и сигналы. Обнаружение коллизии осуществляется всеми узлами, при этом узел обнаруживая коллизию усиливает ее отправляя специальную 32 битовую последовательность. Отправляющий узел зафиксировавший коллизию должен прекратить передачу кадра и осуществить повторную отправку через случайный интервал времени, при повторной коллизии интервал времени выбирается случайным образом из большего диапазона до 54 мс. При нормальной передаче кадр воспринимается всеми узлами, если поле адреса совпадает с получателем, то кадр записывается в буфер узла, затем отправляется ответ узлу отправителю. Технология предусматривает, что в определенных ситуациях коллизия может быть не обнаружена и поврежденный кадр будет принят, когда, например, кадр распространяется быстрее, чем коллизия распространится по всей шине. Для этого приняты соглашения о максимальной длине шины и минимальном размере передаваемого кадра. С одной стороны протоколы верхнего уровня могут решить эту проблему при анализе контрольных сумм, но это внесет дополнительные проблемы со скоростью передачи. Таким образом, принято, что максимальная длина шины 500 м и 2500 м при сегментировании сети повторителями и 576 бит отведено на минимальный кадр. Пропускная способность составляет от 5 до 10 Мбит в сек. Существует четыре вида кадра данной технологии. Кадр стандарта 802.3llc, являющий кадром уровня mac состоит из поля преамбулы 7 байт синхронизирующих бит 10101010 и завершающего 8-го 10101011. Адрес назначения — 2 или 6 байт, Обычно 6 байт, первый старший бит указывает является ли адрес групповым, или индивидуальным. Групповой адрес может предназначаться всем узлам сети или группе, для широковещательного адреса используется последовательность из единичных битов. Второй бит определяет назначен ли адрес централизовано или локально, обычно 0 — централизовано. 22 старших бита кодируют номер компании выдаваемый организаций ieee, остальные три байта даются компании для кодирования своих интерфейсов устройств. Далее адрес источника, 2 или 6 байт, с 0м старшим битом. Далее двубайтовое поле определяющее длину поля данных. Поле данных 0 — 1500 байт. Поле заполнения для обеспечения минимальной длины поля данных 46 байт. Поле контрольной суммы по алгоритмы crc -32, 4 байта. В поле данных данного кадра вкладывается mac подуровня вкладывается llc кадр.

Другие три типа кадров усовершенствованы добавлением дополнительного поля type — два байта указывающий протокол более высокого сетевого уровня (напр. IP - 0x0800) (тоже что и sap), причем номера sap и type не совпадают для одного протокола. Также доблавяется дополнительный байт кодирующий номер организации контролирующей номера поля type. Например, ip протокол в сетях ethernet использует как раз такой кадр llc/snap, в сетях fast ethernet, ethernet/dix, только с полем type и без вложения кадра llc.

Распознавание типа кадра делается по остаточным битам поля длины поля данных, т.к. максимальная длина данных 1500 байт, остальные биты под тип кадра ethernet.

Выработано несколько спецификаций ethernet для различных типов физических сред передачи данных — коаксиальные, витая пара, оптоволокно. 10Base-2, 10Base-5, 10Base-T, 10Base-F, первые основаны на применении коаксиальный кабелей с заглушками на концах проводов, две последние основаны на топологии звезда на основе концентраторов, узел подключается через витую пару ко входу концентратора для передачи сигнала и к выходу концентратора для приема, концентраторы между собой образуют связь и логическое соединение шина. При этом концентраторы могу выстраиваться между собой в иерархическую связь, для обнаружения коллизий должно соблюдаться правило — число концентраторов между двумя узлами не более 4-х или правило четырех хабов.

Технология Token Ring (ieee 802.5).

Сети Token Ring используют разделяемую среду передачи данных, которая состоит из отрезков кабеля, соединяющих все станции сети в кольцо. Скорость работы сети может быть 4 и 16 Мбит в с. Технология обладает свойством отказоустойчивости. Для контроля сети одна из станций выполняет роль активного монитора, который выбирается во время инициализации кольца как станция с максимальным MAC адресом. Если активный монитор выходит из строя, то процедура инициализации повторяется и выбирается новый активный монитор. Чтобы сеть могла обнаружить отказ активного монитора, он каждые три секунды отправляет специальный кадр своего присутствия. Если этот кадр не появляется более 7 ми секунд, то остальные станции начинаю процедуру выбора активного монитора. Для обеспечения доступа станций к физической среде по кольцу циркулирует кадр специального формата и назначения — маркер. В сети tr любая станция всегда получает данные только от предыдущей в кольце станции — ближайший активный сосед выше по потоку. Передачу данных станция всегда осуществляет своему ближайшему соседу вниз по потоку. Получив маркер, станция анализирует его и при отсутствии у нее данных для передачи обеспечивает его продвижение к следующей станции. Станция, которая имеет данные для передачи, при получении маркера изымает его из кольца, что дает ей право доступа к физической среде. Станция выдает в кольцо кадр данных последовательно по битам. Переданные данные проходят по кольцу всегда в одном направлении от одной станции к другой. Кадр снабжен адресом источника и адресом назначения. Все станции ретранслируют кадр побитно. Если кадр распознан станцией назначения, то она копирует кадр в свой внутренний буфер и вставляет в кадр признак подтверждения приема. Станция, выдавшая кадр данных в кольцо, при обратном его получении с подтверждением приема изымает кадр из кольца и передает в сеть новый маркер. После истечения времени удержания маркера станция обязана прекратить передачу собственных данных, обычно при этом время удержания 10 мс, со скоростью 4 мбит в сек, можно передать 5000 байт 1 или более кадров. Существует процедура раннего освобождения маркера когда станция сразу после передачи последнего бита кадра не дожидаясь подтверждения о приеме кадра станцией назначения, передает маркер доступа другой станции. Для различных видов сообщений кадрам может назначаться приоритет, от 0 (низший) до 7(высший). Станция имеет захватить маркер если она имеет кадры для передачи того же или высшего приоритета чем приоритет маркера, иначе маркер передается следующей станции. За наличие единственного в сети маркера отвечает активный монитор, если активный монитор не получает долго время маркера, он порождает новый.

Существует три типа кадров. Кадр маркера состоит из трех полей длиной в 1 байт, сначала идет начальный ограничитель — уникальная последовательность символов манчестерского кода — jk0jk000. Затем управление доступом — с битами приоритета, маркера, монитора и резервных бит. Бит маркера указывает, что данный кадр является маркером, бит монитора устанавливается в 1 монитором и в ноль станциями, монитор тогда знает если маркер был обработан станциями при прохождении кольца. Поле конечного ограничителя — уникальная последовательность jk1jk1, а также бит ошибки и бит того, является ли кадр последним в серии кадров или промежуточным.

Кадр данных включает те же три поля и имеет еще несколько дополнительных полей: Начальный ограничитель, управление кадром, адрес назначения, адрес источника, данные, контрольная сумма, конечный ограничитель, статус кадра. Стандарт tr определяет шесть типов управляющих кадров MAC уровня. Для того, чтобы удостовериться, что адрес уникальный станция, когда впервые присоединяется к кольцу, посылает кадр — тест дублирования адреса. Активный монитор чтобы сообщить о своей работоспособности другим станциям периодически отправляет кадр — существует активный монитор. Резервный монитор отправляет кадр маркер заявки, когда подозревает отказ активного монитора. Станция отправляет кадр Сигнал в случае возникновения серьезных сетевых проблем — обрыв кабеля, обнаружения станции отправляющей кадры без получения маркера, выход станции из строя. Кадр очистка используется новым активным монитором для приведения кольца в исходное состояние и очистка от ранее посланных кадров. В данном стандарте используются тот же формат адресов, что и в ethernet.

Стандарт tr предусматривает построение сети связей с помощью концентраторов, MSAU (multistation access unit), допускается до 260 узлов сети. Концентратор может работать в режиме простого соединителя, так, чтобы станции при соединении образовывали кольцо и при отключении одного из узлов происходил обход порта данного узла через порт концентратора, также концентратор может быть и повторителем усиливающим сигналы. В общем случае tr имеет комбинированную звезднокольцевую конфигурацию. Конечные узлы подключаются к MSAU по топологии звезды, а сами концентраторы объединяются через специальные порты для образования магистрального физического кольца. Максимальная длина кольца 4000 м.

Технология FDDI — оптоволоконный интерфейс распределенных данных, во многом основана на технологии token ring. Позволяет достигать скорости передачи до 100 Мбит в сек. Сеть строится на основе двух оптоволоконных колец, которые образуют основной и резервный пути передачи данных между узлами сети. Максимальный диаметр кольца до 100 км, число машин 500, расстояние между узлами до 2 км. В нормальном режиме работы сети данные передаются через все узлы и все участки кабеля первичного кольца. В случае какого либо отказа, когда часть первичного кольца не может передавать данные, то первичное кольцо объединяется со вторичным образуя единое кольцо, при этом первичное кольцо замыкается на вторичное. При множественных отказах сеть распадается на несколько не связанных сетей. Время удержания маркера в fddi не является постоянной величиной. Механизм приоритетов отсутствует, вводится два класса трафика — синхронный и асинхронный. Синхронный обслуживается всегда, даже при перегрузки сети. Асинхронный может захватить маркер только если тот сделал обход кольца достаточно быстро. В остальном пересылка кадров на уровне mac такая же как и в tr. Станции fddi также используют механизм раннего освобождения маркера. Для передачи световых сигналов по оптическим волокнам реализовано кодирование 4b 5b в сочетании с потенциальным кодом и инверсией при единице.

Для ускорения передачи данных была разработана технология fast ethernet позволяющая достигать скорости передачи до 100 Мбит в сек, при этом данная технология наследовала практически все свойства технологии ethernet, оставив метод доступа с коллизиями. Все отличия в основном на физическом уровне, когда используются 4-е пары витой пары 3-й категории или две витые пары 5-й категории, либо два оптоволоконных кабеля. Время передачи минимального кадра уменьшено в 10 раз, диаметр сети сокращен до 200 м.

Технология 100VG-AnyLAN использует 4-е витых пары с скоростью передачи в каждой 25 мбит в сек, что в сумме дает 100 мбит в сек. Устранен механизм коллизий. Используется код 5b 6b. В сети используется арбитр доступа — концентратор, который решает проблему доступа к среде. Узлы и концентраторы могут выстраиваться в иерархию из трех уровней, где корнем выступает центральный концентратор. Каждый концентратор должен быть настроен либо на кадры token ring либо ethernet. Концентратор циклически проводит опрос портов. Станция желающая передать кадр посылает специальный низкочастотный сигнал запрашивая передачу кадра и указывая его приоритет — низкий или высокий. Например станция долго не имеющая доступ к сети, получает высокий приоритет, либо высокий приоритет могут иметь мультимедийные данные. Если сеть свободная концентратор разрешает передачу кадра. При этом анализируя адрес получателя сразу отправляет данные по назначению, анализ адресов и маршрутов производится на этапе подключения узлов к сети. Если не свободна то ставит запрос в очередь и обслуживает запрос в соответствии с приоритетами. Если к концентратору подключён другой концентратор, то сначала ожидается когда завершит опрос концентратор на более низком уровне. Решение об обслуживании запроса выполняется после опроса всех концентраторов и портов. Концентратор не может хранить кадры в своем буфере.

Gigabit ethernet допускает скорость передачи до 1000 мбит в секунду. Минимальный размер кадра увеличен до 512 байт. Сохраняются все принципы ethernet.

Задание на лабораторную работу.

Реализовать с помощью соккетов UDP моделирование какой-либо из технологий канального уровня, осуществлять пересылку кадров от узла к узлу. Каждый узел генерирует трафик кадров с заданной интенсивностью через случайные промежутки времени. Каждый из узлов является или отдельным приложением или является частью многопоточного приложения с несколькими клиентами. Промоделировать ситуацию повреждения кадра с какой-то вероятностью.

Варианты заданий.

1) Топология шина. Технология Ethernet. Рассмотреть ситуации связанные с коллизиями, вывести на экран количество коллизий и количество переданных кадров, количество полученных кадров. Осуществить расчет минимального размера кадра исходя из диаметра сети и скорости передачи.

2) Топология шина. Технология Ethernet. Осуществить сравнение сети с наличием интеллектуального коммутатора (или моста) и сетью без разбиения на сегменты. Реализовать для этого работу интеллектуального коммутатора. Проверить ситуации связанные с появлением петель.

3) Топология кольцо. Технология Token Ring. Осуществить реализацию выбора системного монитора в случае его потери, для чего случайным образом или по выбору пользователя моделировать данную ситуацию. Осуществить моделирование ситуации потери маркера.

4) Топология кольцо. Технология FDDI. Реализовать выборы системного монитора в случае разрыва кольца, использование резервного кольца в случае разрыва или выхода из строя промежуточного элемента связи.

5) Иерархическая топология (арбитрный доступ). Звезда. Технология 100VGAnyLan. Реализовать работу арбитрного коммутатора, арбитрных коммутаторов соединенных между собой в виде иерархии.

Пример клиента и сервера, использующие UDP

UDP основывается на протоколе без установления соединений, то есть протокол, не гарантирующий доставку информации. UDP-пакеты могут приходить не в указанном порядке, дублироваться и приходить более одного раза, или даже не доходить до адресата вовсе. Из-за этих минимальных гарантий, UDP значительно уступает протоколу TCP. Отсутствие установки соединений означает отсутствие потоков или соединений между двумя хостами, так как вместо этого данные прибывают в датаграммах (Датаграммный сокет).

Адресное пространство UDP, область номеров UDP-портов (в терминологии ISO — TSAP) полностью отделены от TCP-портов.

Сервер

Код может создавать UDP-сервер на порту 7654 следующим образом:

int sock = socket( PF_INET, SOCK_DGRAM, IPPROTO_UDP );

struct sockaddr_in sa;

int bound;

ssize_t recsize;

socklen_t *address_len=NULL;

sa.sin_addr.s_addr = htonl(INADDR_ANY);

sa.sin_port = htons( 7654 );

bound = bind( sock, ( struct sockaddr* )&sa, sizeof( struct sockaddr ) );

if ( bound < 0 )

fprintf( stderr, "bind(): ошибка %s\n", strerror( errno ) );

//bind() связывает сокет с парой адрес/порт.

while( 1 )

{

printf( "recv test....\n" );

recsize = recvfrom( sock, ( void* )Hz, 100, 0, ( struct sockaddr* )&sa, address_len );

if ( recsize < 0 )

fprintf( stderr, "Ошибка %s\n", strerror( errno ) );

printf( "recsize: %d\n ", recsize );

sleep( 1 );

printf( "datagram: %s\n", Hz );

}

Такой бесконечный цикл получает все UDP-датаграммы, приходящие на порт 7654, при помощи recvfrom(). Функция использует параметры:

Клиент

Простейшая демонстрация отправки UDP-пакета, содержащего «Привет!» на адрес 127.0.0.1 порт 7654 выглядит примерно так:

#include

#include

#include

#include

#include

#include

#include /* для вызова close() для сокета */

int main( void )

{

int sock;

struct sockaddr_in sa;

int bytes_sent;

const char* buffer = "Привет!";

int buffer_length;

buffer_length = strlen( buffer ) + 1;

sock = socket( PF_INET, SOCK_DGRAM, IPPROTO_UDP );

if ( sock == -1 )

{

printf("Ошибка создания сокета");

return 0;

}

sa.sin_family = PF_INET;

sa.sin_addr.s_addr = htonl( 0x7F000001 );

sa.sin_port = htons( 7654 );

bytes_sent =

sendto(

sock,

buffer,

strlen( buffer ) + 1,

0,

( struct sockaddr* )&sa,

sizeof( struct sockaddr_in )

);

if ( bytes_sent < 0 )

printf( "Ошибка отправки пакета: %s\n", strerror( errno ) );

close( sock );

return 0;

}

3.5 Лабораторная работа №4 Браузер и FTP-клиент

Лабораторная работа №3 выполняется после изучения материала, посвященного описанию принципов использования стандартных компонентов Delphi, Visual C++ или Java, для управления соединениями с сервером по протоколам HTTP и FTP.

Цель работы:

написать GUI приложение для ОС Windows, представляющее собой простой Web – браузер и FTP – клиент, используя стандартные компоненты Delphi, Visual C++, Java Рекомендуемая литература:

Компьютерные сети. 4-е издание / Э. Таненбаум. – Спб.: Питер, 2003. – 992 с.: ил. Глава 7 («Прикладной уровень») раздел «HTTP – протокол передачи гипертекста».

Описание протокола HTTP в спецификации RFC-2616 (ARCHIVE\Documents\RFC\rfc2616.txt).

Описание протокола FTP в спецификации RFC-959 (ARCHIVE\Documents\RFC\rfc0959.txt).

На различных платформах и в языках программирования предусмотрены стандартные классы для работы с сетью.

Например, в состав библиотеки MFC (Microsoft Foundation Classes – библиотека базовых классов) включено большое количество классов, с помощью которых можно писать как клиентские, так и серверные приложения. В частности, для связи с Internet в Visual C++ существует так называемый WinInet Class. В него входят несколько подклассов.

Задание на лабораторную работу Следует создать сетевое приложение на любом из перечисленных языков.

1. Браузер HTML. Создать на любом из трех языков программирования (C++, Delphi, Java, С#) простой Web-браузер. С установленного ранее Web- сервера запросите и получите Web-страницу с рисунками, текстом и ссылками. Ссылки должны работать, то есть щелчок мышью по ссылке вызывает загрузку и отображение соответствующей страницы. У браузера должна быть адресная строка, в которую заносится адрес URL.

2. FTP - клиент. Создать на любом из трех языков программирования (C ++, Delphi, Java, C#) простое приложение-клиент для работы по протоколу FTP. Приложение должно обеспечивать соединение с сервером, передачу имени пользователя и пароля, отображение списка каталогов и файлов, навигацию по каталогам, копирование файла или каталога на сторону клиента. У приложения клиента должны быть текстовые поля для ввода имени сервера, пользователя, пароля, объект для отображения содержимого каталогов, кнопка для копирования, и удаления каталогов и файлов.

3.6 Лабораторная работа №5. HTML, Javascript технология PHP

HTML и Javascript

Лабораторная работа выполняется после изучения основ Web – программирования на языке HTML и JavaScript.

Цель работы:

Научиться использовать технологии HTML, JavaScript, PHP для создания простых Web - страниц со статическим содержанием Материалы:

1. Материалы лекций, 2. http:

//ru.wiki/ – элементы HTML.

3. http:

//ru.wiki/JavaScript - JavaScript В таблице дан список файлов и описание электронной документации прилагаемой в архиве.

Инструменты:

Текстовый редактор Web - браузер Internet Explorer Структура HTML-документа HTML — это теговый язык разметки документов, то есть любой документ на языке HTML представляет собой набор элементов, причем начало и конец каждого элемента обозначается специальными пометками, называемыми тегами. Регистр, в котором набрано имя тега, в HTML значения не имеет. Элементы могут быть пустыми, то есть не содержащими никакого текста и других данных (например, тег перевода строки ). В этом случае обычно не указывается закрывающий тег.

Кроме того, элементы могут иметь атрибуты, определяющие какие-либо их свойства (например, размер шрифта для тега ). Атрибуты указываются в открывающем теге. Вот пример части разметки HTML- документа:

Текст между двумя тегами - открывающим и закрывающим. Здесь элемент содержит атрибут href. А вот пример пустого элемента:

Каждый HTML-документ, отвечающий спецификации HTML какой- либо версии, обязан начинаться со строки декларации версии HTML , которая обычно выглядит примерно так:

Если эта строка не указана, то добиться корректного отображения документа в браузере становится труднее.

Далее обозначается начало и конец документа тегами и соответственно. Внутри этих тегов должны находиться теги заголовка () и тела () документа.

Основные элементы HTML – документа Теги и их параметры нечувствительны к регистру. То есть и означают одно и то же.

В последних версиях HTML практически у каждого тега огромное число необязательных параметров — обычно не меньше 15. Мы приводим только основные параметры тегов.

Гиперссылки гиперссылка — гиперссылка.

Текстовые блоки … , … , … , … — заголовки 1, 2, … 6 уровня:

— новый параграф. Можно в конце параграфа поставить , но это не обязательно;

— новая строка. Этот тег не закрывается (то есть не существует тега ;

— горизонтальная линия;

… — цитата.

Обычно текст сдвигается вправо;

2.

Это синоним для "" или XML, language="php"> редакторы (например, FronPage) обработки”);

3. ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download

To fulfill the demand for quickly locating and searching documents.

It is intelligent file search solution for home and business.

Literature Lottery

Related searches