
Za każdym razem, gdy program użytkownika odwołuje się do symbolicznej nazwy maszyny, nazwa ta musi zostać przekształcona na odpowiadający jej adres sieciowy. Przekształcenie to odbywa się na bazie plików tekstowych zawierających wykaz adresów maszyn wraz z ich nazwami symbolicznymi. Wyjątek stanowią systemy Yellow Pages, DNS oraz Network Information Services (NIS); używają one plików w specyficznym formacie.
W systemie UNIX plik wiążący nazwy i adresy maszyn nazywa się hosts i jest zlokalizowany w katalogu /etc.
Adres sieciowy we wspomnianym pliku konfiguracyjnym może zostać podany w formie dziesiętnej, szesnastkowej lub ósemkowej. Jednemu adresowi można przypisać kilka nazw symbolicznych, oddzielając je od siebie spacją lub znakiem tabulacji. Kolejność opisów nie ma znaczenia, nie jest też ograniczona jego długość. Przykładowa zawartość pliku może być następująca:
#network host addresses
127.0.0.1
localhost local
tpci_server
157.40.40.1 tpci_sco1
157.40.40.2 tpci_sco2
Jak łatwo zauważyć, zawartość pliku jest podzielona między dwie kolumny. Pierwsza z nich zawiera adresy IP poszczególnych maszyn, druga zaś ich nazwy.
Zawartość pliku /etc/hosts może zostać zmieniona w dowolnej chwili, a dokonane zmiany są od razu skuteczne (nie wymagają przeładowania systemu). Każde odwołanie programu użytkownika do symbolicznej nazwy maszyny powoduje przeszukanie pliku /etc/hosts.
Podobnie jak maszyny, także sieci mogą posiadać nazwy mnemoniczne (oprócz oczywiście jednoznacznego adresu IP). Odwzorowanie to jest sterowane zawartością pliku /etc/networks. Plik ten nie jest wykorzystywany zbyt często z tej prostej przyczyny, że programy użytkownika rzadko odwołują się do sieci jako całości.
Format linii pliku /etc/networks jest nieco inny niż w przypadku pliku /etc/hosts. Pierwsze dwie kolumny to odpowiednio nazwa sieci i jej adres IP; kolejne kolumny linii to alternatywne nazwy danej sieci, zwane jej aliasami. Oto przykładowa zawartość pliku /etc/networks:
| #local networks names | ||
| tpci | 146.1 | tpci_network tpci_local |
| bnr | 47.80 | BNR bnr.ca |
| sco | 132.147 SCO |
Zwróćmy uwagę na to, że druga kolumna zawiera jedynie globalną część adresu IP – jest to zrozumiałe, gdyż adres ten identyfikuje sieć jako całość, nie zaś konkretną maszynę w sieci.
W odróżnieniu od plików poprzednio omówionych, plik /etc/protocols nie jest zazwyczaj modyfikowany przez operatora, lecz jest tworzony podczas instalacji protokołu TCP/IP oraz uaktualniany przy instalowaniu nowego oprogramowania na jego potrzeby – wszelkie nowe usługi protokołu TCP/IP znajdują tutaj odzwierciedlenie.
Zawartość tego pliku nie powinna być w ogóle modyfikowana samodzielnie, gdyż numery i nazwy protokołów rodziny TCP/IP nie są prywatną sprawą sieci, lecz ich znaczenie jest ujednolicone w ramach całej rodziny.
| # network services | |||
| echo | 7/tcp | ||
| echo | 7/udp | ||
| discard | 9/tcp | sink | null |
| ftp | 21/tcp | ||
| telnet | 23/tcp |
Przy uruchamianiu systemu UNIX zostaje również uruchomiony protokół TCP/IP, który z kolei uruchamia procesy potomne dla wszystkich swoich portów. Zadaniem każdego z tych procesów jest obsługa połączeń związanych z poszczególnymi portami. Większość z tych procesów jest zwykle bezczynna, gdyż z danym portem może nie być kojarzone połączenie nawet przez długi czas, w skrajnym przypadku nigdy.
Znacznie lepszym pomysłem jest przypisanie procesów nie do portów lecz do połączeń, przez co unika się blokowania zasobów komputera przez jałowe procesy. Temu celowi służy program inetd, uruchamiany przy starcie systemu i cały czas obecny w tle (dlatego zalicza się do demonów). Przejmuje na siebie nadzorowanie inicjowanych połączeń. Za jego pośrednictwem wykonuje się wiele poleceń, zazwyczaj echo, discard, time i inne.
Działanie tego demona zależne jest od pliku konfiguracyjnego o nazwie /etc/inetd.conf, którego przykładową zawartość pokazano niżej:
# @(#)inetd.conf 5.2 Lachman System V STREAMS TCP source| ftp | stream | tcp | nowait | NOLUID | /etc/ftpd | ftpd |
| telnet | stream | tcp | nowait | NOLUID | /etc/telnetd | telnetd |
| login | stream | tcp | nowait | NOLUID | /etc/rlogind | rlogind |
| ntalk | dgram | udp | wait | root | /etc/talkd | talkd |
Poszczególne kolumny zawierają kolejno:
| Wprowadzenie | Sieć komputerowa | Protokoły | Model OSI (Open Systems Interconnection) | TCP/IP a model OSI | Adresowanie fizyczne | Adresy IP |
| Protokół Odwzorowania Adresów (ARP) | Protokół Odwrotnego Odwzorowania Adresów (RARP) | Internet Protocol (IP) | Kapsułkowanie | Fragmentacja |
| Koleje Życia Datagramu | ICMP | Określanie Ostatecznego Adresata | UDP | Multipleksowanie I Demultipleksowanie | Transmission Control Protocol (TCP) |
| Idea przesuwających się okien | Segment TCP | Porty i połączenia | Konfiguracja TCP/IP w systemie Unix | Przyszłość TCP/IP | Bibliografia |