Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сало залік.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
133 Кб
Скачать
☆
  1. Команди робот из мережею Ipconfig, route, ping.

Синтаксис

ifconfig [interface]

ifconfiginterface [aftype] options | address

Команда ifconfig використовується для конфігурування мережевих інтерфейсів ядра. Вона використовується на етапі завантаження операційної системи при необхідності налаштування інтерфейсів. Після цього вона зазвичай використовується тільки при налагодженні або налаштуванні продуктивності системи.

Приклад:

eth0 Linkencap: EthernetHWaddr 00:18: F3: BE: 18:1 E

ping— службовакомп'ютерна програма, призначена для перевірки з'єднань в мережах на основі TCP/IP.

PING www.example.com (192.0.43.10) 56(84) bytesofdata.

64 bytesfrom 43-10.any.icann.org (192.0.43.10): icmp_seq=1 ttl=250 time=80.5 ms

Команда routeманипулируеттаблицами IP-маршрутизации ядра. Егоосновноеприменение - настроитьстатическиемаршруты для определенныххостов и сетей через интерфейспосле того, какпоследнийбылнастроен, например, через Ifconfig. При использованииопций ADD или DEL команда ROUTE изменяеттаблицымаршрутизации. Вовсехостальныхслучаяхонавыводитихсодержимое на экран.

routeadd -net 127.0.0.0 netmask 255.0.0.0 devlo

Добавляетобычнуюзапись для петлевогосетевогоустройства (предполагается, чтоустройствоloсконфигурировано)

routeadd -net 192.56.76.0 netmask 255.255.255.0 dev eth0

Добавляет маршрут до локальной сети 192.56.76.x через интерфейс eth0

routedeldefault

Удаляет маршрут по умолчанию, обозначаемый "default", чторавносильно сети 0.0.0.0

routeadddefaultgw 192.168.0.1

Добавляет маршрут по умолчанию.

routeadd -net 192.57.66.0 netmask 255.255.255.0 gw 10.0.0.4

Добавляет маршрут до сети 192.57.66.0/24 через шлюз 10.0.0.4

route -n

Выводтаблицымаршрутизации

  1. Поняття сокета

Сокет (socket) - этоконечная точка сетевыхкоммуникаций. Он являетсячем-товроде "портала", через котороеможноотправлятьбайтывовнешний мир. Приложение просто пишетданные в сокет; ихдальнейшаябуферизация, отправка и транспортировкаосуществляетсяиспользуемым стеком протоколов и сетевойаппаратурой. Чтениеданныхизсокетапроисходитаналогичным образом.

В программесокетидентифицируется дескриптором - это просто переменнаятипа int. Программаполучает дескриптор от операционнойсистемы при созданиисокета, а затемпередаётегосервисамsocket API для указаниясокета, над которымнеобходимовыполнить то илииноедействие.

  1. Атрибути сокета

С каждымсокетсвязываются три атрибута: домен, тип и протокол. Этиатрибутызадаются при созданиисокета и остаютсянеизменными на протяжениивсеговремениегосуществования. Для созданиясокетаиспользуетсяфункция socket, имеющаяследующий прототип.

#include<sys/types.h>

#include<sys/socket.h>

intsocket(intdomain, inttype, intprotocol);

Домен определяетпространствоадресов, в которомрасполагаетсясокет, и множествопротоколов, которыеиспользуются для передачиданных.

  1. Іменування сокета

Преждечемпередаватьданные через сокет, егонеобходимосвязать с адресом в выбранномдомене (эту процедуру называютименованиемсокета). Иногдасвязываниеосуществляется неявно (внутрифункций connect и accept), новыполнятьегонеобходимововсехслучаях. Вид адреса зависит от выбранного вами домена. В Unix-доменеэтотекстоваястрока - имяфайла, через которыйпроисходитобменданными. В Internet-домене адрес задаётсякомбинацией IP-адреса и 16-битного номера порта. IP-адрес определяетхост в сети, а порт - конкретныйсокет на этомхосте. Протоколы TCP и UDP используютразличныепространствапортов.

Для явного связываниясокета с некоторым адресом используетсяфункция bind. Её прототип имеет вид:

#include<sys/types.h>

#include<sys/socket.h>

intbind(intsockfd, structsockaddr *addr, intaddrlen);

В качествепервого параметра передаётся дескриптор сокета, которыймыхотимпривязать к заданному адресу. Второй параметр, addr, содержитуказатель на структуру с адресом, а третий - длинуэтойструктуры. Посмотрим, чтоонасобойпредставляет.

structsockaddr {

unsignedshortsa_family; // Семействоадресов, AF_xxx

charsa_data[14]; // 14 байтов для хранения адреса

};