Главная » Просмотр файлов » А. Робачевский - Операционная система UNIX

А. Робачевский - Операционная система UNIX (1114671), страница 90

Файл №1114671 А. Робачевский - Операционная система UNIX (А. Робачевский - Операционная система UNIX) 90 страницаА. Робачевский - Операционная система UNIX (1114671) страница 902019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 90)

Онинициируется пользователем транспортных услуг исвидетельствует либо об отказе пользователем вустановлении связи, либо о желании пользователяразорвать уже существующее соединение для дан%ного потока. Сообщение состоит из одного блоказа которым может следовать один илинесколько блоков типа M_DATA, содержащих при%кладные данные, определенныеБлок M_PROTO содержит следующие поля:PRIM_typeТип примитива —Идентификатор соединенияИндикация разрыва связи.Этот примитив применим только для транспорт%ных услуг с предварительным установлением свя%зи и свидетельствует о том, что удаленный поль%зователь либо отказывает в установлении связи,либо желает разорвать существующее соедине%ние.

Сообщение состоит из одного блокаM_PROTO, за которым может следовать один илинесколько блоков типасодержащих при%кладные данные, определенные пользователем.Блок M_PROTO содержит следующие поля:Тип примитива — T_DISCON_INDПричина разрыва связиИдентификатор соединенияЗапрос на "аккуратное" прекращение связи.Этот примитив применим только для транспортныхуслуг с предварительным установлением связи иуказывает поставщику транспортных услуг, что поль%зователь завершил передачу данных. При этом со%единение переходит в симплексный режим, позво%ляя пользователю принимать данные от удаленногоузла.

Сообщение состоит из одного блокаИндикация "аккуратного" прекращения связи.Этот примитив применим только для транспорт%ных услуг с предварительным установлением свя%зи и отправляется пользователю транспортныхуслуг, свидетельствуя о том, что удаленный поль%зователь соединения завершил передачу данных.При этом соединение переходит в симплексныйрежим, позволяя пользователю передавать дан%ные удаленному узлу. Сообщение состоит из од%ного блока м PROTO.www.books-shop.com477сети в UNIX System VТаблица 6.10 (продолжение)Транспортный ТиппримитивобщенияТREQM PROTOЗапрос на передачу данных.Этот примитив применим только для транспорт%ных услуг без предварительного установлениясвязи и отправляется пользователем транспорт%ных услуг в качестве запроса на передачу дата%граммы.

Сообщение состоит из одного блокаM_PROTO, за которым может следовать один илинесколько блоков типасодержащих при%кладные данные пользователя. Блоксодержит значение размера адреса и сам адресполучателяа также опции, связан%ные с этим примитивом.Блоксодержит следующие поля:PRIM_typeDEST_lengthТип примитива —Размер адреса протоколаСмещение адреса получателя в бло%кеРазмер опцийСмещение опций в блоке PROTOОРТ offsetТM PROTOИндикация получения данных.Этот примитив применим только для транспорт%ных услуг без предварительного установлениясвязи и указывает пользователю, что поставщи%ком транспортных услуг получена датаграмма отудаленного узла.

Сообщение состоит из одногоблоказа которым может следоватьодин или несколько блоков типасодер%жащих прикладные данные пользователя. Блоксодержит значение адреса отправителядатаграммы, а также опции, связанные с этимпримитивом.БлокSRC_offsetOPT_lengthОРТ offsetсодержит следующие поля:Тип примитива —Размер адреса протоколаСмещение адреса отправителя вблокеРазмер опцийСмещение опций в блоке M PROTOwww.books-shop.comГлава 6.478сети в операционной системе UNIXТаблица 6.10 (продолжение)Транспортный Тип со[примитивобщенияЗначениеТ UDERRORСообщение об ошибкеЭтот примитив применим только для транспортныхуслуг без предварительного установления связи иуказывает пользователю, что датаграмма с указан%ным адресом получателя и опциями вызвала ошиб%ку.

Сообщение состоит из одного блокасодержащего размер адреса и сам адрес получа%теля, опции, а также код ошибки, зависящий отконкретного транспортного протокола.Блоксодержит следующие поля:Тип примитива — T_UDERROR_INDDEST_length Размер адреса протоколаDEST_offset Смещение адреса отправителя вблокеРазмер опцийf setСмещение опций в блокеERROR_typeКод ошибкиЗапрос на передачу данных.Этот примитив применим только для транспортныхуслуг без предварительного установления связи иинформирует поставщика транспортных услуг, чтосообщение содержит пакет данных интерфейса(Transport Interface Data Unit,Одно или болеетаких сообщений формируют пакет данных прото%кола TSDU. Сообщение состоит из одного блоказа которым может следовать один илинесколько блоков типасодержащих при%кладные данные пользователя.

Блоксо%держит флагlag, указывающий, являетсяли следующее сообщениечастьютого же TSDU. На основании этого флага постав%щик транспортных услуг компонует транспортныепакеты TSDU. Передача данных с помощью запро%совпозволяет сохранить границызаписи при передаче. Заметим, что протоколомTCP данная возможность не поддерживается.Индикация получения данных.Этот примитив применим только для транспорт%ных услуг без предварительного установлениясвязи и информирует пользователя, что сообще%ние содержит пакет данных интерфейса TIDU.Сообщение состоит из одного блока M_PROTO, закоторым может следовать один или несколькоблоков типасодержащих прикладныеданные удаленного пользователя.

Блоксодержит флагпозволяющий поль%зователю определить границы TSDU.M PROTOM_PROTOwww.books-shop.com479сети в UNIX System VТаблица 6.10 (продолжение)ТранспортныйпримитивТип со[общенияЗначениеТ EXDATA REQM PROTOЗапрос на передачу экстренных данных.Этот примитив аналогиченно слу%жит для передачи экстренных данных. ПротоколTCP поддерживает передачу экстренных данных спомощью функции t_snd(3N) с аргументом flags,содержащим флаг T_EXPEDITED и, возможно,Т MORE.Т EXDATAM PROTOИндикация получения экстренных данных.Этот примитив аналогичен T_DATA_IND, но служитдля передачи пользователю экстренных данных.Положительное подтверждение.Этот примитив сообщает пользователю транс%портных услуг, что предшествующий примитив,инициированный им, был успешно принят по%ставщиком транспортных услуг. В то же время,получение подтверждения не означает, что по%ставщиком были совершены какие%либо действия,связанные с предыдущим примитивом.

Сообще%ние состоит из одного блока M_PCPROTO в кото%ром хранится тип подтвержденного примитиваCORRECT prim.Т ERROR ACKM PCPROTOСообщение об ошибке.Этот примитив сообщает пользователю услуг,последний примитив, инициированный им, вызвалошибку. Получение этого примитива может рассмат%риваться как отрицательное подтверждение, свиде%что никаких действий, связанных сошибочным примитивом, не было предпринято. Со%общение состоит из одного блокасо%держащего тип примитива, вызвавшего ошибку, кодTLI и код системной ошибки UNIX.Блок M_PCPROTO содержит следующие поля:PRIM_typeТип примитива —Тип ошибочного примитиваTLI_errorКод ошибки TLIUNIX errorКод системной ошибки UNIXТ INFO REQM PCPROTOЗапрос на получение параметров транспортногопротокола.Этот примитив служит для запроса пользователемзначений размеров различных параметров прото%кола, а также информации о текущим состояниипоставщика транспортных услуг.

Сообщение со%стоит из одного блока PCPROTO.Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRSɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕɈɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com480Глава 6.сети в операционнойUNIXТаблица 6.10 (продолжение)Транспортный Тип со[примитивобщенияЗначениеT_INFO_ACKПараметры транспортного протокола.Этот примитив служит для передачи пользователюранее запрошенных с помощьюпара%метров транспортного протокола. Сообщение состо%ит из одного блокасодержащего ин%формацию, часть из которой возвращается функци%ей t_open(3N), рассмотренной в разделе "Програм%мный интерфейсранее в этой главе.Блок M_PCPROTO состоит из следующих полей:Тип примитива — T_INFO_ACKTSDU_sizeОпределяет максимальный раз%мер пакета данных протоколаTSDUETSDU_sizeОпределяет максимальный раз%мер пакета экстренных данныхпротокола ETSDUОпределяет максимальный обь%CDATA sizeем данных, передаваемых приустановлении связи.

Соответст%вует полю connect структурыфункции t_open(3N)DDATA sizeОпределяет максимальныйем данных, передаваемых приразрыве связи. Соответствуетполюструктуры infoфункцииADDR sizeОпределяет максимальныйем транспортного протокола.Соответствует полю addr струк%турыфункцииOPT sizeОпределяет размер опций дляданного протокола. Соответству%ет полю options структурыфункцииsizeОпределяет размер пакета дан%ных интерфейса TIDUSERV typeОпределяет тип транспортныхуслуг, предоставляемых постав%щикомСоответствует полю servtypeструктурыinfoфункцииt_open(3N)CURRENT stateОпределяет текущее состояниепоставщика транспортных услугОпределяетдополнительныеPROVIDER_flagхарактеристикипоставщикатранспортных услугM_PCPROTOwww.books-shop.com481в UNIX System VТаблица 6.10 (окончание)Транспортный Тип со[примитивобщенияЗначениеТУправление опциями протокола.Этот примитив позволяет пользователю получитьили установить опции протокола.

Сообщение со%стоит из одного блока M_PROTO, включающегоследующие поля:Тип примитива —OPT_lengthРазмер опцийСмещение опций в блокеФлаги, определяющие характерзапроса пользователя:T_NEGOTIATE — установить опции,указанные пользователем. В ре%зультате опции, установленныепоставщиком, могут отличаться отзаказанных;Т_СНЕСК — проверить, поддержи%ваются ли опции, указанные поль%зователем, поставщиком;T_DAFAULT — возвратить значенияопций протокола.Положительное подтверждение.Этот примитив подтверждает завершение опера%ции с опциями протокола, заказанными пользова%телем. Сообщение состоит из одного блокавключающего те же поля, что иREQТ OPTMGMT АСКPROTOM PCPROTOТ OPTMGMT REQ.Взаимодействие с прикладными процессамиРассмотренный ранее программный интерфейс ТЫ полностью реализуетфункциональность TPI. Легко заметить соответствие между отдельнымифункциями ТЫ и примитивами TPI, приведенными в табл.Схемавызова функций ТЫ и обмена соответствующими примитивами TPI междуклиентом и сервером для типичного TCP!сеанса приведена на рис.

6.32.Программный интерфейс потоков был рассмотрен в главе 5 при обсужде!нии подсистемы STREAMS. Основными функциями, обеспечивающимипередачу и получение сообщений, являются системные вызовыиgetmsg(2). Таким образом, большинство функций ТЫ, составляющих про!граммный интерфейс доступа прикладных процессов к транспортным про!токолам, являются удобной оболочкой (реализованной в виде библиотеки,например,более фундаментальным системным вызовами getmsg(2).www.books-shop.com482Глава 6.сети в операционнойUNIXРис. 6.32. Функции TLI и примитивы TPIВ качестве примера рассмотрим функциюможет иметь следующий вид:Ее реализацияwww.books-shop.comсети в UNIX System Vint{structstructstructstructstructstructcharint483struct t_call *sndcall,struct t_callT_conn_conT_ok_ackT_error_ackstrbuf connect, ack, confirm,netbufaddr, opt, udata;адреса буферов netbuf запроса sndcall*/addr =opt =udata =поля структуры strbuf для формирования управляющей частисообщения=++ opt.len;=Т conn req) ++buf = (char= buf;(блокполя заголовка блока M_PROTO сообщениясоответствии с форматом структурыconnreq = (struct T_conn_req=connreq>DEST_length =connreq>DEST_offset = sizeof (structbuf +===в+buf +=поля структуры strbuf для формирования блока данных (блок===запрос Т CONN REQ поставщику транспортных услуг по потоку&connect,к приемуВыделим максимальный размер дляполучения негативного подтверждения, посколькуТзанимает больше== (charявляется приоритетным, поэтому установим флаг RS HIPRI.До получения подтверждения не предпринимаем никакихwww.books-shop.com484Глава 6.сети вUNIXflags = RS_HIPRI;(struct*)0,okack = (struct T_ok_ackполучено ли положительное или негативноеif=={/*Если подтверждениеподготовимся к получению согласияудаленного пользователя на установление связи (примитивif (recvcall != NULL){=opt =udata ==T_conn_con) +=++T_conn_con)+buf = (char= buf;===примитивconncon = (struct T_conn_conif=={/*Если это действительно согласие, заполним структуру rcvcall дляпользователя==offset,закончилось удачно — возвращаем}}else{/*В случае отказа мы готовы обработать примитивelsewww.books-shop.comсети в UNIX System V/*Если получен примитивerrack = (struct T_error_ack— обработаем}}Подобным образом реализовано большинство функций ТЫ.

Характеристики

Тип файла
PDF-файл
Размер
8,11 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6447
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее