Новые книги

Peter Seibel

interviews 15 of the most interesting computer programmers alivetoday in

, offering a brand-new companion volume to Apress’shighly acclaimed best-seller

by Jessica Livingston. As thewords “at work” suggest, Peter Seibel focuses on how his interviewees tacklethe day-to-day work of programming, while revealing much more, like how theybecame great programmers, how they recognize programming talent in others, andwhat kinds of problems they find most interesting.

Coders at Work

Founders at Work
• Details the Eclipse Integrated Development Environment (IDE) essential to streamlining your embedded development process

• Overview of the latest C/C++ Development toolkit

• Includes case studies of eclipse use including Monta Vista, LynuxWorks, and WindRiver

The Services and Protocols Files

Файлы services и protocols

Номера портов для стандартных сервисов определены в документе Assigned Numbers RFC. Чтобы клиенты и серверы могли конвертировать номера портов в имена сервисов, каждая система хранит список соответствия. Он хранится в файле /etc/services. Каждая строка в этом файле имеет такой формат:

service port/protocol [aliases]

Здесь service задает имя сервиса, port определяет номер порта, используемого этим сервисом, а protocol определяет, каким транспортным протоколом пользуется сервис. Имеется возможность различия протоколов udp или tcp. Сервис может работать с разными протоколами, а может быть два сервиса работают на одном порте, но с разными протоколами. Поле aliases позволяет задавать несколько имен (псевдонимов) для одного сервиса.

Обычно, Вы не должны менять файл сервисов в Вашей Linux-системе. Однако, я даю пример такого файла на всякий случай.

Пример 12-2. Образец файла /etc/services

# The services file:
#
# well-known services
echo           7/tcp                 # Echo
echo           7/udp                 #
discard        9/tcp  sink null      # Discard
discard        9/udp  sink null      #
daytime       13/tcp                 # Daytime
daytime       13/udp                 #
chargen       19/tcp  ttytst source  # Character Generator
chargen       19/udp  ttytst source  #
ftp-data      20/tcp                 # File Transfer Protocol (Data)
ftp           21/tcp                 # File Transfer Protocol (Control)
telnet        23/tcp                 # Virtual Terminal Protocol
smtp          25/tcp                 # Simple Mail Transfer Protocol
nntp         119/tcp  readnews       # Network News Transfer Protocol
#
# UNIX services
exec         512/tcp                 # BSD rexecd
biff         512/udp  comsat         # mail notification
login        513/tcp                 # remote login
who          513/udp  whod           # remote who and uptime
shell        514/tcp  cmd            # remote command, no passwd used
syslog       514/udp                 # remote system logging
printer      515/tcp  spooler        # remote print spooling
route        520/udp  router routed  # routing information protocol

Заметьте, что, например, сервис echo работает на порте 7 для обоих (TCP и UDP) протоколов, порт 512 используется для двух различных сервисов, а именно, для системы спутниковой связи COMSAT daemon по UDP и для remote execution (rexec), использующего TCP.

Кроме файла services сетевым библиотекам нужен способ преобразования имен протоколов в номера портов при работе на уровне IP с другими системами. Это делается с помощью файла /etc/protocols. Каждая его строка хранит имя протокола и соответствующий номер порта. Пример файла:

Пример 12-3. Образец файла /etc/protocols

#
# Internet (IP) protocols
#
ip      0       IP              # internet protocol, pseudo protocol number
icmp    1       ICMP            # internet control message protocol
igmp    2       IGMP            # internet group multicast protocol
tcp     6       TCP             # transmission control protocol
udp     17      UDP             # user datagram protocol
raw     255     RAW             # RAW IP interface