My-library.info
Все категории

Уильям Стивенс - UNIX: разработка сетевых приложений

На электронном книжном портале my-library.info можно читать бесплатно книги онлайн без регистрации, в том числе Уильям Стивенс - UNIX: разработка сетевых приложений. Жанр: Программное обеспечение издательство -, год 2004. В онлайн доступе вы получите полную версию книги с кратким содержанием для ознакомления, сможете читать аннотацию к книге (предисловие), увидеть рецензии тех, кто произведение уже прочитал и их экспертное мнение о прочитанном.
Кроме того, в библиотеке онлайн my-library.info вы найдете много новинок, которые заслуживают вашего внимания.

Название:
UNIX: разработка сетевых приложений
Издательство:
-
ISBN:
-
Год:
-
Дата добавления:
17 сентябрь 2019
Количество просмотров:
329
Читать онлайн
Уильям Стивенс - UNIX: разработка сетевых приложений

Уильям Стивенс - UNIX: разработка сетевых приложений краткое содержание

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

UNIX: разработка сетевых приложений читать онлайн бесплатно

UNIX: разработка сетевых приложений - читать книгу онлайн бесплатно, автор Уильям Стивенс

1.9. Сети и узлы, используемые в примерах

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

Рис. 1.7. Сети и узлы, используемые в примерах

Топология, приведенная на рис. 1.7, интересна для наших примеров, но на практике физическая топология сети оказывается не столь важной, поскольку взаимодействующие компьютеры обычно связываются через Интернет. Виртуальные частные сети (virtual private network, VPN) и защищенные подключения интерпретатора (secure shell connections, SSH) обеспечивают соединение, не зависящее от физического размещения компьютеров.

Обозначение «/24» указывает количество последовательных битов адреса начиная с крайнего левого, задающих сеть и подсеть. В разделе А.4 об этом формате рассказывается более подробно.

ПРИМЕЧАНИЕ

Хотим подчеркнуть, что настоящее имя операционной системы Sun — SunOS 5.x, а не Solaris 2.x, однако все называют ее Solaris.

Определение топологии сети

На рис. 1.7 мы показываем топологию сети, состоящей из улов, используемых в качестве примеров в этой книге, но вам нужно знать топологию вашей собственной сети, чтобы запускать в ней примеры и выполнять упражнения. Хотя в настоящее время не существует стандартов Unix в отношении сетевой конфигурации и администрирования, большинство Unix-систем предоставляют две основные команды, которые можно использовать для определения подробностей строения сети: netstat и ifconfig. Мы приводим примеры в различных системах, представленных на рис. 1.7. Изучите руководство, где описаны эти команды для ваших систем, чтобы понять различия в той информации, которую вы получите на выходе. Также имейте в виду, что некоторые производители помещают эти команды в административный каталог, например /sbin или /usr/sbin, вместо обычного /usr/bin, и эти каталоги могут не принадлежать обычному пути поиска (PATH).

1. netstat - i предоставляет информацию об интерфейсах. Мы также задаем флаг -n для печати численных адресов, а не имен сетей. При этом показываются интерфейсы с их именами.

linux % netstat -ni

Kernel Interface table

Iface  MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg

eth0  1500   0 49211085      0      0      0 40540958      0      0      0 BMRU

lo   16436   0 98613572      0      0      0 98613572      0      0      0 LRU

Интерфейс закольцовки называется lo, a Ethernet называется eth0. В следующем примере показан узел с поддержкой Ipv6.

freebsd % netstat -ni

Name  Mtu Network      Address              Ipkts Ierrs    Opkts Oerrs Coll

hme0 1500 <Link#1>     08:00:20:a7:68:6b 29100435    35 46561488     0    0

hme0 1500 12.106.32/24 12.106.32.254     28746630     - 46617260     -    -

hme0 1500 fe80:1::a00:20ff:fea7 686b/64

                       fe80:1::a00:20ff:fea7:68b

                                                0      -       0     -    -

hme0 1500 3ffe:b80:1f8d:1::1/64

                       3ffe:b80:1f8d:1::1       0      -        0    –    -

hme1 1500 <Link#2>     08:00:20:a7:68:6b    51092      0    31537    0    0

hme1 1500 fe80:2::a00:20ff:fea7:686b/64

                       fe80:2::a00:20ff:fea7:686b

                                                0      -       90    -    -

hme1 1500 192.168.42   192.168.42.1         43584      -    24173    -    -

hme1 1500 3ffe:b80:1f8d:2::1/64

                       3ffe:b80:1f8d:2::1      78      -        8    -    -

lo0 16384 <Link#6>                          10198      0    10198    0    0

lo0 16384 ::1/128      ::1                     10      -       10    -    -

lo0 16384 fe80:6::1/64 fe80:6::1                0      -        0    -    -

lo0 16384 127          127.0.0.1            10167      -    10167    -    -

gif0 1280 <Link#8>                              6      0        5    0    0

gif0 1280 3ffe:b80:3:9ad1::2/128

                       3ffe:b80:3:9ad1::2       0      -        0    -    -

gif0 1280 fe80:8::a00:20ff:fea7:686b/64

                       fe80:8::a00:20ff:fea7:686b

                                                0      -        0    -    -

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

2. netstat -r показывает таблицу маршрутизации, которая тоже позволяет определить интерфейсы. Обычно мы задаем флаг -n для печати численных адресов. При этом также приводится IP-адрес маршрутизатора, заданного по умолчанию:

freebsd % netstat -nr

Routing tables


Internet:

Destination   Gateway           Flags Refs   Use Netif Expire

default       12.106.32.1       UGSc    10  6877 hme0

12.106.32/24  link#1            UC       3     0 hme0

12.106.32.1   00:b0:8e:92:2c:00 UHLW     9     7 hme0  1187

12.106.32.253 08:00:20:b8:f7:e0 UHLW     0     1 hme0   140

12.106.32.254 08:00:20:a7:68:b6 UHLW     0     2 lo0

127.0.0.1     127.0.0.1         UH       1 10167 lo0

192.168.42    link#2            UC       2     0 hme1

192.168.42.1  08:00:20:a7:68:6b UHLW     0    11 lo0

192.168.42.2  00:04:ac:17:bf:38 UHLW     2 24108 hme1   210


Internet6:

Destination                        Gateway            Flags Netif Expire

::/96                              ::1                UGRSc lo0   =>

default                            3ffe:b80:3:9ad1::1 UGSc  gif0

::1                                ::1                UH    lo0

::ffff:0.0.0.0/96                  ::1                UGRSc lo0

3ffe:b80:3:9ad1::1                 3ffe:b80:3:9ad1::2 UH    gif0

3ffe:b80:3:9ad1::2                 link#8             UHL   lo0

3ffe:b80:1f8d::/48                 lo0                USc   lo0

3ffe:b80:1f8d:1::/64               link#1             UC    hme0

3ffe:b80:1f8d:1::1                 08:00:20:a7:68:6b  UHL   lo0

3ffe:b80:1f8d:2::/64               link#2             UC    hme1

3ffe:b80:1f8d:2::1                 08:00:20:a7:68:6b  UHL   lo0

3ffe:b80:1f8d:2:204:acff:fe17:bf38 00:04.ac:17:bf:38  UHLW  hme1

fe80::/10                          ::1                UGRSc lo0

fe80::%hme0/64                     link#1             UC    hme0

fe80::a00:20ff:fea7:686b%hme0      08:00:20:a7:68:6b  UHL   lo0

fe80::%hme1/64                     link#2             UC    hme1

fe80::a00:20ff:fea7:686b%hme1      08:00:20:a7:68:6b  UHL   lo0

fe80::%lo0/64                      fe80::1%lo0        Uc    lo0

fe80::1%lo0                        link#6             UHL   lo0

fe80::%gif0/64                     link#8             UC    gif0

fe80::a00:20ff:fea7:686b%gif0      link#8             UHL   lo0

ff01::/32                          ::1                U     lo0

ff02::/16                          ::1                UGRS  lo0

ff02::%hme0/32                     link#1             UC    hme0

ff02::%hem1/32                     link#2             UC    hme1

ff02::%lo0/32                      ::1                UC    lo0

ff02::%gif0/32                     link#8             UC    gif0

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

linux % ifconfig eth0

eth0 Link encap:Ethernet HWaddr 00:C0:9F:06:B0:E1

     inet addr:206.168.112.96 Bcast:206.168.112.127 Mask:255.255.255.128

     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

     RX packets:49214397 errors:0 dropped:0 overruns:0 frame:0

     TX packets:40543799 errors:0 dropped:0 overruns:0 carrier:0

     collisions:0 txqueuelen:100

     RX bytes:1098069974 (1047.2 Mb) TX bytes:3360546472 (3204.8 Mb)

     Interrupt:11 Base address:0x6000

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

4. Одним из способов определить IP-адрес нескольких узлов локальной сети является проверка широковещательного адреса (найденного нами на предыдущем шаге) с помощью утилиты ping.

linux % ping -b 206.168.112.127

WARNING: pinging broadcast address

PING 206.168.112.127 (206.168.112.127) from 206.168.112.96 : 56 (84) bytes of data.

64 bytes from 206.168.112.96: icmp_seq=0 ttl=255 time=241 usec

64 bytes from 206.168.112.40: icmp_seq=0 ttl=255 time=2 566 msec (DUP!)

64 bytes from 206.168.112.118: icmp_seq=0 ttl=255 time=2.973 msec (DUP!)

64 bytes from 206.168.112.14: icmp_seq=0 ttl=255 time=3.089 msec (DUP!)

64 bytes from 206.168.112.126: icmp_seq=0 ttl=255 time=3.200 msec (DUP!)


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

Уильям Стивенс - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки My-Library.Info.


UNIX: разработка сетевых приложений отзывы

Отзывы читателей о книге UNIX: разработка сетевых приложений, автор: Уильям Стивенс. Читайте комментарии и мнения людей о произведении.

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.