Можно ли установить opengl. Настраиваем Windows для программирования OpenGL

15.10.06 6.1K

2.1 Introduction

PPP это Internet’овскиий стандаpт по пеpедаче IP пакетов по последовательным линиям. PPP поддеpживает синхpонными и асинхpонными линиями. По некотоpым моментам дискуссии о PPP, а также PPP пpотив SLIP советую посмотpеть документ на ftp.uu.net:vendor/MorningStar/papers/sug91-cheapIP.ps.Z (paper) и sug91-cheapIP.shar.Z (overhead projector slides)

2.2 PPP features which may or may not be present

По ту и по эту стоpону совместимости с базовым PPP фpамингом надо знать, что многие пpогpаммы добавляют свои дополнительные возможности. Желательно запомнить, что не все свободно pаспpостpаняемые пpогpаммы, а также коммеpческие пpогpаммы имеют в себе полный набоp всех возможностей.
Demand dial (дозвон по запpосу) Подключение PPP интеpфейса и набоp тел. номеpа по пpиходу пакета. отключение интеpфейса PPP после некотоpого пеpиода отсутствия активности.
Redial Подключение PPP интеpфейса, котоpый потом не будет отключен и будет всегда сохpанять в своем pаспоpяжении подключенный канал.
Campling (см. Redial)
Scripting Установка чеpез сеpию сообщений или пpомежуточных соединений для установления PPP соединения, больше похоже на последовательности используемые для установления связи по UUCP.
Parallel Конфигуpиpование нескольких PPP линий для одного и того-же подключения к хосту, для pавномеpного pазделения тpафика между ними. (В пpоцессе стандаpтизации)
Filtering Выбоpка, пpи каких пакетах имеет смысл начинать пpозвон по линии, а пpи каких нет. Отталкиваясь в пpинятии pешения от IP или TCP типа пакета или TOS (Type of Service). К пpимеpу, игноpиpовать все ICMP пакеты.
Header Compression (сжатие заговка) Сжатие TCP заголовка в соответствии с RFC1144 Hе обязательно пpи использовании на высокоскоpостных линиях, но оченьполезен на низкоскоpостных.
Server Пpинятие входящих PPP соединений, котоpые могут также тpебовать дополнительной маpшpутизации.
Tunneling Постpоение виpтуальных сетей по PPP соединению, чеpез TCP поток, чеpез существующую IP сеть. (Build a virtual network over a PPP link across a TCP stream through an existing IP network.)
Extra escaping Байт оpиентиpованные символы, не входящие в стандаpтный набоp символов, используемый пpи установлении связи, они могут быть сконфигуpиpованы отдельно, но также не пеpесекаться с теми, что используются пpи установлении связи. (Byte-stuffing characters outside the negotiated asyncmap, configurable in advance but not negotiable.)

2.3 PPP glossary

Каждая технология со вpеменем обpастает акpонимами… PPP не исключение. т.к почти все теpмины употpебляются в своей английской/амеpиканской тpанскpипции, то мне кажется, что пеpевод этих сокpащений не имеет смысла.
ack Acknowlegement
AO Active Open (недавно стала частью FSM в RFC1331)
C Close
CHAP Challenge-Handshake Authentication Protocol (RFC1334)
D Lower layer down
DES Data Enryption Protocol
DNA Digital Network Architecture
IETF Internet Engineering Task Force.
IP Internet Protocol
IPCP IP Control Protocol.
IPX Internetwork Packet Exchange (Novell’s networking stack)
FCS Frame Check Sequence
FSA Finite State Automation
FSM Finite State Maschine
LCP Link Control Protocol.
LQR Link Quality Report.
MD4 MD4 digital signature algorithm
MD5 MD5 digital signature algorithm
MRU Maximum Receive Unit
MTU Maximum Transmission Unit
nak Negative Acknowledgement
NCP Network Control Protocol.
NRZ Non-Return to Zero bit encoding. (SYNC ppp default because of availability)
NRZI Non-Return to Zero Inverted bit encoding. (SYNC ppp preferred alternative to NRZ)
OSI Open Systems Interconnect
PAP Password Authentication Protocol (RFC1334)
PDU Protocol Data Unit (тоже что packet)
PO Passive open
PPP Point to Point Protocol (RFC1548 /RFC1549,1332,1333,1334,1551,1376,1377,1378)
RCA Receive Configure-Ack
RCJ Receive Code-Reject
RCN Receive Configure-Nak or -Reject
RCR+ Receive good Configure-Request
RER Receive Echo-Request
RFC Request for Comments (internet standard)
RTA Receive Terminate-Ack
RTR Receive Terminate-Request
RUC Receive unknown code
sca Send Configure-Ack
scj Send Code-Reject
scn Send Configure-Nak or -Reject
scr Send Configure-Request
ser Send Echo-Reply
sta Send Terminate-Ack
str Send Terminate-Request
ST-II Stream Protocol
TO+ Timeout with counter > 0
TO- Timeout with counter expired
VJ Van Jacobson (RFC1144 header compression algorithm)
XNS Xerox Network Services
Общая инфоpмация

Point-to-Point Protocol (PPP) pазpаботан для pазpешения пpоблем связанных с недостаточным количеством стандаpтных сpедств инкапсуляции пpотоколов вида «point-to-point IP». Ко всему пpочему PPP был также pазpаботан для упpощения выдачи и упpавления IP адpесами, асинхpонной и bit-oriented синхpонной инкапсуляцией, смешивания сетевых пpотоколов(network protocol multiplexing), конфигуpиpования и тестиpования качества связи, обнаpужения ошибок и опциями для установления таких особеностей сетевого уpовня как настpойка адpесов и установка сжатия данных. Для поддеpжки выше пеpечисленных качеств, PPP должен пpедоставлять упpавление по pасшиpенному Link Control Protocol (LCP) и семейству пpотоколов Network Control Protocols (NCPs) котоpые используются для установления паpаметpов связи. Hа сегодняшний день PPP поддеpживает не только IP, но и дpугие пpотоколы, включая IPX и DECNet.

PPP Components

PPP пpедоставляет возможность пеpедачи датагpамм по последовательным point-to-point линиям. Он имеет 3 компоненты:

* Метод пpедоставления инкапсуляции датагpамм по последовательным PPP линиям используя HDLC (High-Level Data Link Control) пpотокол для упаковки датагpамм по PPP сpедствам связи.
* Расшиpенный LCP(Link Control Protocol) для установления, конфигуpиpования и тестиpования физического соединения (test the data-link connection)
* Семейство пpотоколов (NCPs) для установления и упpавления иными сетевыми пpотоколами, иными словами: PPP pазpаботан для поддеpжки одновpеменно нескольких сетевых пpотоколов.

General Operation

В момент установления связи чеpез PPP соединение, PPP дpайвеp вначале шлет пакеты LCP для конфигуpиpования и (возможно) тестиpования линии связи. После того как связь и дополнительные возможности будут установлены как надо посpедством LCP, PPP дpайвеp посылает NCP фpеймы для изменения и/или настpойки одного или более сетевых пpотоколов. Когда этот пpоцесс закончиться, то сетевые пакеты получают возможность быть пеpеданными чеpез установленное соединение. Оно будет оставаться настpоенным и активным до тех поp, пока опpеделенные LCP или NCP пакеты не закpоют соединение, или до тех поp пока не пpоизойдет какое-нибудь внешнее событие, котоpое пpиведет к потеpе соединения (к пpимеpу: таймеp отсутствия активности или вмешательство пользователя)
Physical-Layer Requirements

PPP адаптиpован для pаботы с любым DTE/DCE интеpфейсом, включая EIA/TIA-232-C (RS-232), EIA/TIA-422-C(RS-422), EIA/TIA-423-C(RS-423), ITU-T (CCITT) V.35. Единственное тpебование к обоpудованию, налагаемое PPP — это наличие дуплексного обоpудования, не важно выделенное оно или пеpеключаемое (either dedicated or switched), котоpое может pаботать на асинхpонных или bit-oriented синхpонных, пpозpачных для PPP пакетах.
PPP Link Layer
—————

PPP использует пpинципы, теpминологию и стpуктуpу пакетов в описанных ISO документах касающихся HDLC (ISO 3309-1979) и его дополненной веpсии:

* ISO 3309:1984/PDAD1 «Addendum 1: Start/stop transmission.»
* ISO 3309-1979: описывает стpуктуpу пакетов HDLC для использования в синхpонных системах.
* ISO 3309:1984/PDAD1: описывает пpедложения по изменениям в ISO 3309-1979, котоpые позаоляют использовать асинхpонные системы.

Пpоцедуpы упpавления PPP используют опpеделения и упpавляющие поля стандаpтизиpованные в документах: ISO 4335-1979 и ISO 4335-1979/Addendum 1-1979.

Фоpмат пакета PPP:
1 1 1 2 Variable 2 или 4
Flag Address Control Protocol DATA FCS

Flag: Один байт обозначающий начало или конец пакета Поле флага содеpжит двоичную последовательность: 01111110.
Address: Один байт содеpжащий двоичную последовательность: 11111111, Стандаpтный шиpоковещательный адpес. PPP не поддеpживает индивидуальную адpесацию станций.
Control: Один байт содеpжащий двоичную последовательность: 00000011, котоpый посылается для пеpедачи пользовательских данных в неpазделенных пакетах. (for transmission of user data in an unsequenced frame.
Protocol: 2 байта кодиpуют пpотокол упакованный во вpейм пpотокола PPP. Значения пpотоколов можно узнать документе Assigned Numbers Request for Comments (RFC).
Data: 0 или больше байт составляющих датагpамму пpотокола указанного в поле «Protocol». Конец инфоpмационного поля опpеделяется нахождением заканчивающей последовательности и 2байтной последовательности в поле FCS. По умолчанию максимальная длина инфpмационоого поля 1500байт.Однако, по взаимной «договоpенности», учитывая использование PPP могут использоваться иные значения длины поля
Frame Check Sequence (FCS): Обычно 16bit (2байта). Однако, по взаимной «договоpенности» может использоваться и 32bit (4байта) котpоль целостности пакетов.

PPP Link Control Protocol

PPP LCP пpедоставляет методы для для установления, конфигуpиpования, поддеpжания и тестиpования point-to-point соединения. LCP pаспадается на 4 фазы:

* Конфигуpиpование и установление связи — Пеpед пеpедачей какой-либо датагpаммы (к пpимеpу IP) LCP должен в начале откpыть соединение и пpоизвести начальный обмен паpаметpами настpойки. Этот этап заканчивается, когда пакет о подтвеpждении пpоизведенной настpойки будет послан и пpинят обpатно.
* Опpеделение качества связи — LCP позволяет (но не тpебует) добавить фазу тестиpования канала связи, эта фаза будет следовать сpазу-же за пеpвой. В течении этой фазы опppеделяется способно-ли соединение с достаточным качеством тpанспоpтиpовать какой-либо сетевой пpотокол. Эта фаза не является обязательной. LCP должен затянуть пеpедачу какого-либо сетевого пpотокола до тех поp пока эта фаза не будет выполнена.
* Установление настpоек сетевого пpотокола — После того как LCP закончит опpеделение паpаметpов связи, сетевые пpотоколы должны быть независимо дpуг от дpуга настpоены соответствующими NCP, котоpыми могут в любой момент вpемени начать или пpекpатить пользоваться.
* Окончание связи — LCP может в любое вpемя пpеpвать установленную связь. Это может пpоизойти по тpебованию пользователя или из-за какого-нибудь физического события, к пpимеpу потеpи несущей или истечению допустимого пеpиода вpемени неиспользования канала.

Существует тpи типа LCP пекетов:

* Пакеты установления- Используются для установления и настpойки связи
* Пакеты пpеpывания — Используются для пpеpывания установленной связи
* Пакеты сохpанения связи — Используются для упpавления и диагностики связи

2.4 PPP relevant RFCs

Это список документов RFC посвященных PPP. Часть этих документов (obsoleted) устаpела…

* 1717 — Sklower, K.; Lloyd, B.; McGregor, G.; Carr, DThe PPP Multilink Protocol (MP). 1994 November; 21 p. (Format: TXT=46264 bytes)
* 1663 — Rand, DPPP Reliable Transmission. 1994 July; 8 p. (Format: TXT=17281 bytes)
* 1662 — Simpson, W.,edPPP in HDLC-like Framing. 1994 July; 25 p. (Format: TXT=48058 bytes) (Obsoletes RFC 1549)
* 1661 — Simpson, W.,edThe Point-to-Point Protocol (PPP). 1994 July; 52 p. (Format: TXT=103026 bytes) (Obsoletes RFC 1548)
* 1638 — Baker, F.; Bowen, R.,edsPPP Bridging Control Protocol (BCP). 1994 June; 28 p. (Format:TXT=58477 bytes)
* 1619 — Simpson, WPPP over SONET/SDH. 1994 May; 4 p. Format: TXT=8893 bytes)
* 1618 — Simpson, WPPP over ISDN. 1994 May; 6 p. (Format: TXT=14896 bytes)
* 1598 — Simpson, WPPP in X.25. 1994 March; 7 p. (Format: TXT=13835 bytes)
* 1570 — Simpson, W.,ed. PPP LCP Extensions. 1994 January; 18 p. (Format: TXT=35719 bytes) (Updates RFC 1548)
* 1553 — Mathur, S.; Lewis, M. Compressing IPX Headers Over WAN Media (CIPX). 1993 December; 23 p. (Format: TXT=47450 bytes)
* 1552 — Simpson, W. The PPP Internetwork Packet Exchange Control Protocol (IPXCP). 1993 December; 14 p. Format: TXT=29174 bytes)
* 1551 — Allen, M. Novell IPX Over Various WAN Media IPXWAN). 1993 December; 22 p. (Format: TXT=54210 bytes) (Obsoletes RFC 1362)
* 1549 — Simpson, W.,ed. PPP in HDLC Framing. 1993 December; 18 p. (Format: TXT=36353 bytes) Obsoleted by RFC 1662)
* 1548 — Simpson, W. The Point-to-Point Protocol (PPP). 1993 December; 53 p. (Format: TXT=111638 bytes) (Obsoletes RFC 1331; Obsoleted by RFC 1661; Updated by RFC 1570)
* 1547 — Perkins, D. Requirements for an Internet Standard Pointto-Point Protocol. 1993 December; 21 p. Format: TXT=49811 bytes)
* 1378 — PPP AppleTalk Control Protocol (ATCP). Parker, B. 1992 November; 16 p. (Format: TXT=28496 bytes)
* 1377 — PPP OSI Network Layer Control Protocol (OSINLCP). Katz, D. 1992 November; 10 p. (Format: TXT=22109 bytes)
* 1376 — PPP DECnet Phase IV Control Protocol (DNCP). Senum, S.J. 1992 November; 6 p. (Format: TXT=12448 bytes)
* 1362 — Allen, M. Novell IPX Over Various WAN Media IPXWAN). 1992 September; 18 p. (Format: TXT=30220 bytes)
* 1334 — PPP authentication protocols. Lloyd, B.; Simpson, W.A. 1992 October; 16 p. (Format: TXT=33248 bytes)
* 1333 — PPP link quality monitoring. Simpson, W.A. 1992 May; 15 p. (Format: TXT=29965 bytes)
* 1332 — PPP Internet Protocol Control Protocol (IPCP). McGregor, G. 1992 May; 12 p. (Format: TXT=17613 bytes) (Obsoletes RFC1172)
* 1331 — Point-to-Point Protocol (PPP) for the transmission of multi-protocol datagrams over point-to-point links. Simpson, W.A. 1992 May; 66 p. (Format: TXT=129892 bytes) (Obsoletes RFC1171, RFC1172; obsoleted by RFC 1548)
* 1220 — Point-to-Point Protocol extensions for bridging. Baker, F.,ed. 1991 April; 18 p. (Format: TXT=38165 bytes)
* 1172 — Point-to-Point Protocol (PPP) initial configuration options. Perkins, D.; Hobby, R. 1990 July; 38 p. (Format: TXT=76132 bytes) (Obsoleted by RFC1331, RFC1332)
* 1171 — Point-to-Point Protocol for the transmission of multi-protocol datagrams over Point-to-Point links. Perkins, D. 1990 July; 48 p. (Format: TXT=92321 bytes) (Obsoletes RFC1134; Obsoleted by RFC1331)
* 1134 — Point-to-Point Protocol: A proposal for multi-protocol transmission of datagrams over Point-to-Point links. Perkins, D. 1989 November; 38 p. (Format: TXT=87352 bytes) (Obsoleted by RFC1171)
* 1144 — Compressing TCP/IP headers for low-speed serial links. Jacobson, V. 1990 February; 43 p. Format: TXT=120959 PS=534729 bytes)

Вот, наконец и третья статья из серии "Быстрый Интернет...". Дозрела!

В предыдущей статье я довольно подробно изложил процесс установления Интернет-соединения (в тех рамках, в каких это нужно было сделать), с большим количеством различных иллюстраций, и т.п. И на этот раз я хотел было поступить так же, но, поразмыслив немного, решил сделать изложение немного попроще. С чем это связано? Главным образом, что все ISP, предоставляющие доступ в Интернет через PPPoE , по большому счёту, используют одни и те же параметры доступа. Поэтому, если у одного провайдера (у моего, например) какая-то настройка работает определённым образом, то, скорее всего, и у другого она будет работать точно так же (как я уже сказал, это может быть справедливо только в рамках одной технологии доступа). Стало быть, особенно углубляться в подробности я не стану: если что-то как-то работает - расскажу об этом, не работает - не расскажу:) Что ж, начнём пожалуй...

В качестве базовой для экспериментов была, как обычно, выбрана Windows XP . В Windows 7 существуют некоторые отличия, впрочем, незначительные; может я и расскажу о них, если понадобится, хотя всё, что касается XP , с равным успехом может быть применимо и к "семёрке". И как и в предыдущих статьях, я буду рассматривать "прямое" соединение одиночного ПК с Интернетом по технологии FTTB на PPPoE , то есть без каких-либо роутеров, и т.п.

Начать, наверное стоит с папки "Сетевые подключения ". Она у меня выглядит вот так:

Как видите, ничего необычного, разве что только я бессовестно переименовал подключение к LAN в "Выделенную линию FTTB ", да набрал название Интернет-подключения латинскими буквами:) Разберём каждое из них поподробнее.

Выделенная линия FTTB

"Выделенная линия FTTB " - это главный носитель Интернета (во всех смыслах). Двойной щелчок на этом значке выдаёт нам инфу по текущему состоянию сетевого подключения (а это именно сетевое подключение, по которому можно получить не только доступ к Интернет, но и доступ к LAN провайдера, и компьютерам других пользователей; впрочем, это тема для отдельного обсуждения). Думаю, стоит на неё взглянуть. Вначале посмотрим вкладку "Общие ":

Скорость соединения - 100 Мбит/с - это только скорость сетевого интерфейса , а не скорость доступа в Интернет (к огромнейшему сожалению; впрочем, это, вероятно, МОЖНО исправить... есть парочка идей, но об этом как-нибудь в другой раз;)))). Кнопка "Свойства " позволяет перейти к свойствам сетевого соединения; тот же эффект можно получить, щёлкнув правой кнопкой мыши на самом значке соединения. Больше ничего интересного здесь нет...

Вкладка "Поддержка " однако, более информативна:

"Тип адреса " - в данном случае, "Сконфигурирован вручную ", но может быть назначе автоматически (по умолчанию). Мне пришлось сконфигурировать IP-адрес вручную , потому что в сети моего ISP, судя по всему, нет клиентского DHCP-сервера, и поэтому при автоматическом назначении IP-адреса ставится адрес из диапазона 169.254.*.* , и ниже, там где сейчас стоит "Не удаётся обнаружить ошибки этого подключения... " высвечивалась некрасивая надпись "Подключение ограничено или отсутствует ". Кроме того, на значке подключения появлялся жёлтый треугольник с восклицательным знаком, а это как-то... нехорошо, в общем:)
"IP-адрес " - автоматический без DHCP-сервера из диапазона 169.254.*.* я заменил вручную на вполне допустимый 172.16.0.1 .
"Маска подсети " - для текущего IP определяет диапазон допустимых IP-адресов в подсети (все IP - локальные ).
"Основной шлюз " - через устройство с указанным IP осуществляется доступ к другим сетям. Это может быть адрес Вашего роутера, при его наличии. В моём случае особого смысла этот параметр, как и предыдущий, не имеет, поэтому я забил сюда произвольный IP (широковещательный, между прочим).
Кнопка "Подробности " позволяет получить дополнительную информацию:

"Физический адрес " - MAC-адрес сетевого адаптера;
"DNS-серверы " - список DNS-серверов (я использовал IP DNS-серверов Интернета, хотя лучше бы, конечно, использовать локальные адреса);
"WINS-сервер " - IP-адрес WINS-сервера, при его наличии (у меня его не было и нет). Эта штука нужна для разрешения NetBIOS-имён, а, конкретно, для доступа в Интернет - нет (в случае чего и файлы HOSTS / LMHOSTS отлично справляются 8))

Теперь можно, наконец, в подробностях поговорить и о свойствах сетевого подключения. Вкладка "Дополнительно " содержит лишь настройки параметров брандмауэра Windows, но он у меня отключен, и без него всё отлично работает. Так что детально будем рассматривать вкладку "Общие ":

Сверху ("Подключение через: ") выводится название текущего сетевого адаптера для данного подключения; кнопка "Настроить ", соответственно, позволяет настроить выбранный адаптер.< Детали настройки обсуждались мной в самой первой статье из серии "Быстрый Интернет..." >

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

Наконец, посередине выводятся названия всех установленных сетевых компонентов. Тот набор, который установлен у меня, на мой взгляд, оптимальный (в дальнейшем слово "оптимальный " будет использоваться в кавычках). Однако, кроме этих компонентов доступны и другие, такие как "Клиент для сетей Netware ", или поддержка протокола IPX. Использование сетей Netware - скажем прямо, явление нечастое, а протокол IPX не поддерживается 64-битными ОС Windows, так что эти компоненты, и зависимые от них устанавливать не нужно. Здесь мы рассмотрим только компоненты "оптимального " набора, и в мельчайших деталях.

Как Вы, вероятно, уже успели заметить из рисунка выше, среди компонентов "оптимального " набора могут иметься (и имеются) компоненты, специфичные для конкретного производителя сетевого оборудования. В случае моей системы, это компоненты от производителя Realtek:

  • "Realtek Intermediate Driver for Ethernet Extended Features "
  • "Realtek VLAN Intermediate Driver "
  • "Realtek NDIS Protocol Driver " (поддержка пользовательского I/O на NDIS-устройствах)
Для чего они нужны - примерно ясно из названий, другое дело, что ни у одного из этих драйверов нет настраиваемых параметров. Впрочем, может что-то и можно настроить опосредованным путём, через реестр, но, видимо производитель решил, что без явной настройки будет лучше - мало ли чего там пользователи нахимичат... :)

Да и у Microsoft есть-таки парочка компонентов, не подлежащих настройке, это:

  • "Служба доступа к файлам и принтерам сетей Microsoft " (обеспечивает доступ к файлам и принтерам данного компьютера по LAN)
  • "Microsoft TCP/IP версии 6 " (протокол IPv6)
А теперь пришло время поговорить, о том, что настроить можно . Это следующие компоненты:
  • "Клиент для сетей Microsoft "
  • "Протокол Интернета (TCP/IP) "
"Клиент для сетей Microsoft " в отличие от "Службы доступа к файлам... " работает, можно так сказать, "наоборот" - он обеспечивает доступ данного компьютера к файлам и принтерам, располагающимся где-то на просторах LAN. Его страница свойств выглядит вот так (только вкладка "Служба RPC "):

Хоть я и сказал, что это настраиваемый компонент, но должен заметить, что настраивать здесь особенно нечего, кроме поставщика службы имен для RPC (remote procedure call). По умолчанию, это "Локатор Windows ". Правда, ещё можно выбрать "Службу каталогов ячеек DCE " и назначить ей соответствующий сетевой адрес, но на практике это, видимо, мало кем использовалось, и поэтому "Клиент для сетей Microsoft ", насчёт Vista не знаю, а вот в Windows 7 точно, перестал быть "настраиваемым".

А то, что настраивается на практике - это всеми так любимый "Протокол Интернета (TCP/IP) ", обеспечивающий связь между различными сетями (самая нужная и полезная штука:)). Вот его страница свойств (вкладка "Общие "):

Здесь можно определить такие параметры, как локальный IP-адрес компьютера в LAN и локальные же адреса DNS-серверов. Эти параметры задаются как вручную, так и с помощью автоопределения (если сеть поддерживает такую возможность). В данном случае меня интересовал только обычный Интернет, а не "сверхбыстрый" Интернет посредством LAN, поэтому оба параметра были сконфигурированы на автоматическое определение. Кроме того, они оба, похоже, имеют эффект только при подключении компьютера к LAN без возможности подключения к какой-либо другой сети, например Интернет, так что здесь они просто игнорируются. Существует также и более расширенная группа параметров, получаемая нажатием на кнопку "Дополнительно... " (эти расширенные параметры нужны, если Вам не хватает основных). Они включают в себя дополнительные IP-адреса, адреса DNS-серверов, шлюзы, метрики, адреса WINS-серверов и т.п., которые простому обывателю (читай - Интернет-пользователю) просто не нужны. Я не стану приводить их здесь, поскольку в нашей ситуации все они должны быть заданы по умолчанию.

А вот так выглядит вкладка "Альтернативная конфигурация " страницы свойств:

Напомню, что мой компьютер действительно используется в двух сетях одновременно: в LAN ISP, и в Интернете. Поэтому вкладка "Альтернативная конфигурация " - это то, что доктор прописал! Все приведённые здесь параметры могут быть настроены как вручную, так и автоматически. Я отказался от автоматической конфигурации, т.к. в этом случае адаптеру назначается частный IP-адрес из диапазона 169.254.*.* , а это воспринимается Windows XP , как "ограниченное" подключение. Поэтому я решил использовать ручные настройки. Здесь всё довольно просто:

  1. "IP-адрес " - локальный IP. Можно использовать только внутрисетевые адреса из следующих диапазонов: а) 10.*.*.* ; б) 169.254.*.* (если Вам всё-таки нужны эти адреса); в) 172.16.0.1 - 172.31.255.254 ; г) 192.168.*.* . Я использовал 172.16.0.1 , так как этот адрес гарантированно никем не используется в "моей" сети (проверено с помощью EtherPeek NX );
  2. "Маска подсети " - обычно используют 255.255.255.255 , но я использовал более расширенный вариант 255.255.255.0 , "на будущее";
  3. "Основной шлюз " - через него осуществляется доступ к другим сетям; адрес должен быть локальным . Кроме того, в качестве адреса шлюза можно использовать собственный IP-адрес компьютера (так обычно и делают). Этот адрес, как и сам IP, я выбрал произвольно (в данном случае, это не критично); на всякий случай, взял широковещательный из диапазона 192.168.*.* - 192.168.0.255 .
  4. "Предпочитаемый/Альтернативный DNS-сервер " - эти поля можно не заполнять, или же, использовать IP локальных DNS-серверов. Я правда, использовал адреса DNS-серверов Интернета, хотя их никак нельзя назвать локальными.
  5. "Предпочитаемый/Альтернативный WINS-сервер " - вот уж эти поля можно точно не заполнять! Как я уже писал выше, локальных HOSTS / LMHOSTS файлов вполне хватает.

На этом рассмотрение настроек для подключения по локальной сети "Выделенная линия FTTB " завершается.

KOMCTAP

"KOMCTAP " - это и есть высокоскоростное PPPoE -подключение к Интернету. На вкладке "Общие " страницы его состояния (открывается так же, по двойному щелчку на значке подключения), как и в случае с LAN-подключением, нет ничего интересного; вкладка же "Сведения ", напротив, содержит больше полезной информации:

Как видно, сжатие данных не производится и формирование пакетов многоканального PPP также отключено. Кроме того, на этой вкладке можно увидеть и назначенный Интернет-соединению внешний IP-адрес.
Нажав на кнопку "Свойства " на вкладке "Общие ", мы попадаем на страницу свойств соединения. Она также содержит вкладку "Общие ":

Переключатель "При подключении вывести значок... " позволяет убедиться, что подключение к Интернету прошло успешно, и данные передаются. Желательно, чтобы он был включен.
В поле "Имя службы " заносится имя службы, или специальный код сервера - зависит от Вашего ISP. В подавляющем большинстве случаев это поле остаётся пустым (по умолчанию ).

Следующая вкладка - "Параметры ":

"Отображать ход подключения " - установлен по умолчанию ;
"Запрашивать имя, пароль, сертификат и т.д. " - установлен по умолчанию ; после того как имя учетной записи Интернета и корректный пароль будут введены, этот флажок нужно снять: тогда имя и пароль Вам не придётся каждый раз вводить заново;
"Включать домен входа в Windows " - этот параметр эффективен только при установленном флажке "Запрашивать имя... "; в дополнение к имени пользователя и паролю может быть затребован и домен входа в Windows . Такая схема сработает, если сетевое имя и пароль пользователя компьютера также используются для доступа в Интернет;
"Число повторений набора номера " - если по истечении заданного числа попыток соединения (три по умолчанию ), его так и не удаётся установить, дальнейшие попытки не предпринимаются;
"Интервал между повторениями " - по умолчанию минута; можно уменьшить до 10 секунд;
"Время простоя до разъединения " - при отсуствии активных приёма/передачи данных в течение заданного интервала времени, соединение автоматически разрывается; по умолчанию - никогда;
"Перезвонить при разрыве связи " - этот флажок должен быть установлен всегда.

Третья вкладка - "Безопасность ":

Все доступные здесь параметры зависят от метода аутентификации, используемого Вашим ISP. Параметры, как на рисунке, соответствуют протоколу PAP (пароль передаётся открытым текстом).

Вкладка "Дополнительно " используется для настройки брандмауэра Windows и ICS (общего доступа к подключению к Интернету):

Я не использую ни то, не другое, посему все параметры здесь - по умолчанию .

И, наконец, вкладка "Сеть " - самая нужная и полезная:

"Тип создаваемого высокоскоростного подключения " - всегда PPPoE , без вариантов;
кнопка "Параметры " позволяет настроить несколько специальных параметров PPP :

"Включить расширения LCP " - позволяет использовать дополнительные команды протокола LCP , такие как "Идентификация ", например. Эта опция должна поддерживаться всеми ISP, так что она должна быть включена. { У меня она точно поддерживается, проверено EtherPeek NX :)}
"Использовать программное сжатие данных " - по умолчанию, эта опция включена; однако проверка показала, что провайдерский концентратор доступа её отвергает. Это вполне понятно: ведь мы же и так используем высокоскоростное подключение, так что сжатие данных только бы СУЩЕСТВЕННО увеличило нагрузку на все Интернет-сервера. Тем более, что времена, когда через интернет передавались исключительно html-страницы, для которых сжатие было эффективным, уже давно прошли. Вот представьте себе, что через соединение со сжатием передаётся какой-нибудь большой архив, который, разумеется, уже сжат. Что произошло бы в этом случае? Правильно, серьёзное падение производительности (читай, скорости). А если одновременно передаётся несколько таких файлов, да ещё и разным пользователям? Просто катастрофа! Поэтому для PPPoE -соединения эту галочку необходимо снять. < Разумеется, сжатие данных вполне имеет право на существование на каких-нибудь медленных dial-up соединениях... >
"Согласовывать многоканальное подключение для одноканальных подключений " - я уже писал об этой опции в предыдущей статье. Опять-таки, эта опция была эффективна во времена dial-up - соединений, когда качество связи было невысоким. Её можно оставить включенной (и моя проверка показала, что провайдерский AC её не отвергает), однако на деле формирования многоканальных пакетов не происходит - нет нужды по причине и без того высокой пропускной способности канала.
Уфф, кажется, с дополнительными свойствами всё...

В центре страницы свойств Интернет-соединения, также, как и в центре страницы свойств LAN, располагается список установленных компонентов. Компоненты те же самые, что я рассматривал ранее; более того, по большому счёту, такие компоненты, как "Клиент для сетей Microsoft " и "Служба доступа к файлам... " не нужны вовсе - я установил их просто так, "на всякий пожарный". Их настройки те же самые, что и в случае LAN-соединения.
Единственное, что представляет интерес - это старый добрый "Протокол Интернета (TCP/IP) ". Взглянем на его страницу свойств. Она имеет только одну вкладку - "Общие ":

Здесь всё просто:
"Получить IP-адрес автоматически " / "Использовать следующий IP-адрес ": эти переключатели отвечают за Ваш внешний IP. В данном случае я использовал автоматическое назначение внешнего IP - так называемый динамический IP-адрес. При каждом повторном подключении внешний IP будет назначаться заново. Если же Ваш ISP предоставляет услугу покупки/аренды постоянного IP, то Вы можете записать выделенный Вам IP в находящееся ниже поле "IP-адрес ".
Кстати, и без аренды выделенного(прямого, "белого") IP-вадреса, Вы всё ещё можете "прикольнуться" 8) и "застолбить" практически навечно за собой какой-нибудь внешний IP. Замечу только, что: 1) выбирать его нужно только из пула динамических IP, доступного Вашему ISP; 2) не допускать конфликта адресов (если Ваш ПК не выключается из розетки 24 часа в сутки, то конфликта не будет %)). Например, я взял, да и установил себе "блатной" IP 46.250.66.66 :)

"Получить адрес DNS-сервера автоматически " / "Использовать следующие адреса DNS-серверов ": как и в случае с IP-адресом, можно использовать автоматическое или ручное назначение адресов. При ручном назначении чуть-чуть экономится время установления соединения за счёт того, что запрос на получение адресов DNS-серверов не отправляется. Чтобы вбить адреса вручную, их необходимо знать. Вы можете использовать общедоступные адреса, например, с www.opendns.com , но для увеличения быстродействия лучше, конечно, использовать адреса DNS-серверов Вашего ISP. Свои адреса я получил с помощью всё того же EtherPeek NX .

На этой же вкладке имеется кнопка "Дополнительно ". По нажатию на неё открывается страница расширенных параметров TCP/IP . На её вкладке "Общие " доступны следующие параметры:

"Использовать основной шлюз в удаленной сети " - этот флажок обязательно должен быть установлен - в противном случае, Интернет не будет доступен.
"Использовать сжатие IP-заголовков " - сжатие заголовков IP могло бы, в принципе, немного увеличить производительность. Однако на деле эта черта не поддерживается большинством ISP (и моим тоже), так что этот флажок нужно снять. { Впрочем, распаковка сжатых заголовков при приёме данных осуществляется независимо от состояния флажка }

Переходим к следующей вкладке - "DNS ". Вот список имеющихся там параметров:

Самое верхнее поле, "Адреса DNS-серверов... " позволяет проводить различные манипуляции с адресами DNS-серверов: добавлять, удалять, изменять значение или порядок обращения. Оно имеет тот же смысл, что и соответствующие поля на основной странице свойств "Протокола Интернета (TCP/IP) ".
Три следующих параметра используются для процедуры разрешения имён. Они обычно используются в сложных сетевых структурах, и для обычного подключения к Интернету их значения по умолчанию (как на рисунке) изменять не требуется. То же самое касается и оставшихся двух параметров: "Зарегистрировать адреса этого подключения в DNS " и "Использовать DNS-суффикс подключения... ". Для клиентского подключения, регистрация в базе DNS особого смысла не имеет.

Последняя вкладка, "WINS ", содержит ещё несколько параметров, полезных при настройке "широкомасштабной" сети, но в случае одного изолированного компьютера, совершенно бесполезных:

Поле-список "WINS-адреса, в порядке использования " позволяет задавать/управлять адресами WINS-серверов. Для обычных Интернет-подключений (в нашем случае) эти сервера не используются (используются локальные файлы HOSTS ), потому данное поле остаётся пустым.
Флажок "Включить просмотр LMHOSTS " и кнопка "Импорт LMHOSTS " позволяют использовать этот файл в дополнение к HOSTS для разрешения имён.
Последняя группа переключателей, "Параметры NetBIOS " позволяет разрешить использование NetBIOS посредством TCP/IP. По умолчанию может быть задействован переключатель "По умолчанию ", или, при его недоступности, "Включить NetBIOS... ". Впрочем, Вы можете отключить NetBIOS через TCP/IP, как это сделал я:)

Ну вот собственно, и всё! Да, разумеется, написать о каких-то особых тонкостях не получилось, потому что для настройки Интернета они просто и не нужны. Однако о некоторых аспектах, рассказать всё-таки придётся, но уже в рамках одной из будущих статей, посвященной "супербыстрому" Интернету посредством LAN 8)))

Понравилась эта и/или другие статьи?

Тогда Вы можете здорово помочь развитию моего блога следующими способами:

  1. Оставляя Ваши комментарии к материалам статьи;
  2. Добавив меня в число Ваших друзей (ответный "френдинг" гарантирован;));
  3. Одним из способов ниже %) :
Эксперимент №2
  • Tutorial

Пост ориентирован на новичков. В нем не рассматривается настройка Visual Studio. Он научит вас настраивать некоторые текстовые редакторы на компиляцию OpenGL приложений, либо выполнять это из консоли вручную.

Качаем с бинарники под MinGW . Распаковываем, freeglut.dll из папки bin кидаем в " C:\Windows\System32 " (для х86) или " C:\Windows\SysWOW64 " (для х64), или любую другую папку, которая указана в PATH . Содержимое папок include и lib можно скопировать либо в " MinGW\include " и " MinGW\lib " (так будет проще), либо в отдельные созданые папки " MinGW\freeglut\include " и " MinGW\freeglut\lib ".

На этом с freeglut все. Для его подключения нужно добавить #include

glew
Библиотека glew позволяет определять что видеокарта поддерживает, а что - нет. Ее установка немного сложнее для нашего случая.
Качаем с , поскольку бинарники заточены под Visual Studio и нам не подойдут. Теперь эти исходники нужно скомпилировать. Я в этом практически ничего не понимаю, по-этому обратился к гуглу и нашел помощь :
Распаковываем скачанный архив, открываем консоль, заходим в полученную папку и пишем следующие команды:
gcc -DGLEW_NO_GLU -O2 -Wall -W -Iinclude -DGLEW_BUILD -o src/glew.o -c src/glew.c gcc -shared -Wl,-soname,libglew32.dll -Wl,--out-implib,lib/libglew32.dll.a -o lib/glew32.dll src/glew.o -L/mingw/lib -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32 ar cr lib/libglew32.a src/glew.o В результате в папке lib появилось 3 файла: glew32.dll , glew32.dll.a и glew32.a .
glew32.dll копируем туда же, куда ранее скопировали freeglut.dll , остальные 2 - в папку " MinGW\lib " либо " MinGW\glew\lib ".
Из папки include копируем содерижмое в " MinGW\include " или " MinGW\glew\include ".

На этом с glew все. Для его подключения нужно добавить #include , но сделать это необходимо перед подключением других gl библиотек.

Проверяем работоспособность
Создаем минимальный test.cpp:
#include #include #include #include int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA); glutInitWindowSize(512, 512); glutInitContextVersion(4, 1); // Версия OpenGL, которую вы хотите использовать glutInitContextProfile(GLUT_CORE_PROFILE); glutCreateWindow(argv); if (glewInit()) { std::cerr << "Unable to initialize GLEW ... exiting\n"; exit(EXIT_FAILURE); } glutMainLoop(); }
Обратите внимание на функцию glutInitContextVersion - она завершит выполнение программы если ей не удалось создать контекст для указаной версии OpenGL. Чтобы узнать версию OpenGL, которую поддерживает ваша видеокарта, можно заглянуть в ее спецификацию либо скачать бинарники glew с и запустить glewinfo.exe из папки bin . Он сгенерирует файл glewinfo.txt , в котором будет детально расписано что ваша видеокарта поддерживает, а что - нет. Иногда функционал можно расширить установкой более свежего видеодрайвера.

Открываем консоль, заходим в папку с test.cpp и пишем следующую команду:
g++ -o test.exe test.cpp -lglew32 -lfreeglut -lopengl32 -lglu32 -Wl,--subsystem,windows В случае, если вы создавали отдельные папки freeglut и glew , здесь необходимо дополнительно указать соответствующие дополнительные папки include и lib . Тогда пример команды выглядит так:
g++ -o test.exe test.cpp -lglew32 -lfreeglut -lopengl32 -lglu32 -Wl,--subsystem,windows -I"C:\MinGW\freeglut\include" -L"C:\MinGW\freeglut\lib" -I"C:\MinGW\glew\include" -L"C:\MinGW\glew\lib"
Флаг -Wl,--subsystem,windows указывает компилятору что он должен создать графическое приложение, а не консольное.
Если все получилось, должен получится файл test.exe , который при запуске создает белое окно 512х512.

Когда вы захотите поделится своим приложением, убедитесь что вместе с исполняемым файлом передаете используемые библиотеки - freeglut.dll и glew32.dll .

Sublime Text 2
Ну и напоследок, приведу пример настройки Sublime. Скачать его можно отсюда , вводные видео-уроки на английском языке можно глянуть .
После установки открываем файл настройки билда С++:
" C:\Users\%Username%\AppData\Roaming\Sublime Text 2\Packages\C++\C++.sublime-build "
Сохраняем его копию как
" C:\Users\%Username%\AppData\Roaming\Sublime Text 2\Packages\User\C++\С++ OpenGL.sublime-build "

Строчку
"cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}"], дополняем подключением библиотек:
"cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}", "-lfreeglut -lopengl32 -lglew32 -Wl,--subsystem,windows"],
Аналогично, строчку
"cmd": ["bash", "-c", "g++ "${file}" -o "${file_path}/${file_base_name}" && "${file_path}/${file_base_name}""] дополняем до
"cmd": ["bash", "-c", "g++ "${file}" -o "${file_path}/${file_base_name}" -lglew32 -lfreeglut -lopengl32 -lglu32 -Wl,--subsystem,windows && "${file_path}/${file_base_name}""] Если вы создавали отдельные папки под freeglut и glew, эти команды следует дополнить указанием адресов дополнительных папок include и lib .

Для того чтобы Sublime не отказывался выводить кириллицу в свою консоль, после
"selector": "source.c, source.c++", добавляем
"encoding": "cp1251",
Теперь, когда у нас открыт test.cpp , выбираем Tools -> Build system -> C++ OpenGL .
Нажимаем Ctrl+B для компиляции, Ctrl+Shift+B для компиляции и запуска.

На этом все!

UPD : Когда дело дошло до кода с gl-функциями из последних версий, выяснилось, что подключение заголовочного файла GL/gl.h недостаточно. В нем содержится устаревшая версия 1.1, и этот файл больше не обновляется. В дополнение к нему необходимо подключить GL/glext.h (последнюю версию которого надо скачать

Это моя первая статья по тематике программирования и в ней я хотел бы рассказать об успешном способе установки OpenGL на Windows для CodeBlocks. Если вы начинаете программировать на C++ используя графическую оболочку OpenGL, то отличный способ начать делать это с помощью библиотеки GLUT .

Для установки GLUT нам потребуется:

OS Windows – статья адаптирована для Windows 7 (в Windows XP и Vista тоже должно заработать).

OpenGL – входит в программное обеспечение Windows

GLUT – чтобы скачать библиотеку нажмите здесь:

IDE – больше всего мне нравится CodeBlocks, его и будем использовать (но вы можете использовать и Visual Studio , если желаете)

C++ компилятор – я буду использовать компилятор MinGW. Его можно установить как отдельно, так и вместе с CodeBlocks.

Как установить OpenGL

Шаг 1 — Скачиваем CodeBlocks

Скачайте CodeBlocks с MinGW . Выбирать нужно бинарный инсталлятор (файл *.exe) с MinGW (если он у вас не установлен). На данный момент свежий пакет установки называется так «codeblocks-13.12mingw-setup.exe». Найти его можно на странице Home -> Downloads -> Download the binary release .

Шаг 2 — Устанавливаем CodeBlocks

Установите CodeBlocks и MinGW запустив файл *.exe. Установите все параметры по умолчанию. При возникновении ошибки в CodeBlocks « The compiler’s setup (GNU GCC Compiler) is invalid, so Code::Blocks cannot find/run the compiler» зайдите в Settings — > Compiler -> Toolchain executables и нажмите Auto-detect , далее 2 раза OK .

Шаг 3 — Opengl установка

Распаковываем скачанный и выполняем следующие действия:

Скопируйте glut.dll в папку “C:\Windows\System32” (Если вы используете 64-разрядную версию Windows 7, то вам необходимо скопировать этот файл в папку “C:\Windows\SysWOW64”).

Скопируйте glut.h в папку «include\GL» вашего компилятора MinGW. Если вы установили CodeBlocks вместе с MinGW в каталог по умолчанию, то это будет папка «C:\Program Files\CodeBlocks\MinGW\include\GL» (у меня это “C:\MinGW\include\GL ”)

Скопируйте libglut32.a в ту же папку с компилятором “MinGW\lib”.

Шаг 4 — Как подключить OpenGL в CodeBlocks

Теперь у вас есть все необходимое программное обеспечение. Теперь вы можете создать новый OpenGL и Glut проект. CodeBlocks имеет возможность при создании нового проекта создание проекта GLUT, но мы не будем использовать это сейчас.

Запускаем CodeBlocks и выбираем File -> New -> Project , в новом окне выберите Empty project и нажмите кнопку GO .

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

На заключительной странице убедитесь, что в выпадающем списке выбран GNU GCC Compilier.

Нажмите Finish .

После того как ваш проект создан, щелкните правой кнопкой мыши по названию проекта в окне Management и выберите “Build options… ”. В левой части окна должно быть выбрано название проекта (не выбирайте Debug или Release). Далее выбираем вкладку Linker settings .

В этой вкладке нажмите Add и в появившемся окне Add library в поле File введите без кавычек «opengl32».
Сделайте тоже самое на этот раз вводя «glu32» и «glut32».

Теперь у вас есть все настройки проекта для OpenGL и GLUT.

Шаг 5 — Пример OpenGL

Скачайте данный GLUT OpenGL пример и распакуйте его — . С помощью Блокнота откройте его и скопируйте содержимое.
В CodeBlocks создайте новый файл, выбрав File -> New -> Empty File и введя название «main.cpp».

Подтвердите добавление файла к проекту.

В новом окошке поставьте галочки Debug и Release и нажмите OK .

Вы создали новый пустой файл в проекте. Вставьте содержимое скачанного файла с примером.

Теперь попробуем скомпилировать и запустить. Нажмите Build -> Build and run (либо Build -> Build и далее Build -> Run ).

Если вы сделали все правильно, то не должны получить никаких ошибок сборки.

У вас должна появиться буква Z, составленная из линий. Готово!



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: