Введение
В этом лабораторном занятии вы узнаете, как проверить, настроена ли опция сетевого сокета в Linux. Мы рассмотрим использование команды ss с опцией -o для отображения расширенной информации о сокетах, которая позволит вам просматривать различные опции сокетов, такие как размер окна TCP и MSS (Maximum Segment Size).
В рамках лабораторной работы вы научитесь использовать команду ss -no state all для изучения деталей сокетов, при этом разрешение имен служб будет отключено для более быстрого вывода. Вы также узнаете, как интерпретировать вывод, который включает состояние сокета, адреса и расширенную информацию, важную для диагностики проблем с сетевой производительностью.
Проверка параметров сокетов с помощью ss -o
На этом этапе мы рассмотрим, как использовать команду ss для проверки опций сокетов. Команда ss представляет собой мощный инструмент для исследования сетевых сокетов. Она аналогична netstat, но, как правило, работает быстрее и предоставляет более подробную информацию. Мы сосредоточимся на использовании опции -o для отображения расширенной информации о сокетах.
Сначала разберемся, что такое сокет. Сокет представляет собой конечную точку двусторонней связи между двумя программами, работающими в сети. Сокеты являются основой сетевого программирования, и понимание их принципов работы имеет решающее значение для устранения неполадок и оптимизации сети.
Команда ss с опцией -o позволяет просматривать различные опции сокетов, такие как размер окна TCP, TCP MSS (Maximum Segment Size) и другие параметры, связанные с протоколом TCP. Эта информация может быть неоценима при диагностике проблем с сетевой производительностью.
Для начала откройте терминал.
Теперь запустим команду ss с опцией -o, чтобы увидеть информацию о сокетах. Мы также будем использовать опцию -n, чтобы избежать попыток ss разрешить имена служб, что может замедлить вывод.
Введите следующую команду в терминал и нажмите Enter:
ss -no state all
Эта команда выполняет следующие действия:
ss: Запускает инструмент для сбора статистики о сокетах.-n: Предотвращает разрешение имен служб.-o: Показывает расширенную информацию.state all: Отображает все сокеты, независимо от их состояния.
Вы должны увидеть вывод, похожий на следующий:
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
nl UNCONN 0 0 rtnl:kernel
nl UNCONN 0 0 fib_trie:kernel
nl UNCONN 0 0 xfrm:kernel
tcp LISTEN 0 4096 0.0.0.0:22 0.0.0.0:*
skmem:(r0,rb369280,t0,tb87380) tclass 0 pclass 0
tcp ESTAB 0 0 127.0.0.1:38768 127.0.0.1:22
skmem:(r0,rb87380,t0,tb87380) tclass 0 pclass 0 rcv_space:2048,4194304,65535 rcv_qlen:0 snd_space:32768,4194304,65535 snd_qlen:0
tcp LISTEN 0 4096 [::]:22 [::]:*
skmem:(r0,rb369280,t0,tb87380) tclass 0 pclass 0
Вывод показывает различные сетевые соединения, их состояния и другую соответствующую информацию. Поле skmem показывает использование памяти, связанное с сокетом. Поля rcv_space и snd_space показывают размеры буферов приема и передачи данных.
Теперь отфильтруем вывод, чтобы сосредоточиться на сокетах TCP и включить информацию о процессах. Это поможет нам определить, какие процессы используют конкретные сокеты.
Введите следующую команду в терминал и нажмите Enter:
sudo ss -tnpo state all
В этой команде добавлены следующие опции:
-t: Фильтрует сокеты по протоколу TCP.-p: Показывает процесс, использующий сокет.
Вы должны увидеть вывод, похожий на следующий:
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 4096 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=942,fd=3))
ESTAB 0 0 127.0.0.1:22 127.0.0.1:49134 users:(("sshd",pid=1147,fd=5))
LISTEN 0 4096 [::]:22 [::]:* users:(("sshd",pid=942,fd=4))
Столбец Process теперь показывает имя процесса и PID (идентификатор процесса), связанные с каждым сокетом. Это может быть очень полезно для определения, какие приложения используют конкретные сетевые соединения.
Используя ss -o, вы можете получить ценную информацию о конфигурации и статусе сетевых сокетов на вашей системе. Эта информация может быть использована для устранения неполадок в сети, оптимизации сетевой производительности и понимания того, как приложения используют сетевые ресурсы.
Проверка настроек сокетов в /proc/sys/net
На этом этапе мы рассмотрим, как проверить настройки сокетов с использованием директории /proc/sys/net. Файловая система /proc представляет собой виртуальную файловую систему, которая предоставляет информацию о запущенных процессах и конфигурации ядра. Директория /proc/sys/net содержит различные файлы, которые управляют сетевыми параметрами, включая настройки сокетов.
Понимание этих настроек имеет решающее значение для оптимизации сетевой производительности и устранения неполадок, связанных с сетью. Эти настройки влияют на то, как ядро обрабатывает сетевые соединения, размеры буферов, таймауты и другие важные параметры.
Для начала откройте терминал.
Начнем с вывода содержимого директории /proc/sys/net/ipv4. Эта директория содержит настройки, специфичные для сетей IPv4.
Введите следующую команду в терминал и нажмите Enter:
ls /proc/sys/net/ipv4
Эта команда выведет список файлов в директории /proc/sys/net/ipv4. Каждый файл представляет собой определенный сетевой параметр.
Вы должны увидеть вывод, похожий на следующий:
conf icmp_echo_ignore_all icmp_ignore_bogus_error_responses icmp_timestamp_ignore_replies ip_default_ttl ip_forward ip_local_port_range neigh route tcp_abc tcp_adv_win_scale tcp_allowed_congestion_control tcp_congestion_control tcp_dsack tcp_ecn tcp_fack tcp_fastopen tcp_fin_timeout tcp_frto tcp_keepalive_intvl tcp_keepalive_probes tcp_keepalive_time tcp_low_latency tcp_max_syn_backlog tcp_max_tw_buckets tcp_moderate_rcvbuf tcp_mtu_probing tcp_no_metrics_save tcp_orphan_retries tcp_reordering tcp_retries1 tcp_retries2 tcp_rfc1337 tcp_rmem tcp_sack tcp_slow_start_after_idle tcp_syn_retries tcp_syncookies tcp_timestamps tcp_tw_recycle tcp_tw_reuse tcp_wmem
Теперь рассмотрим значение конкретной настройки. Например, проверим значение параметра tcp_syn_retries. Этот параметр определяет, сколько раз ядро будет пытаться повторно отправить пакет SYN при установке TCP-соединения.
Чтобы просмотреть значение параметра tcp_syn_retries, используйте команду cat:
cat /proc/sys/net/ipv4/tcp_syn_retries
В качестве вывода вы должны увидеть число, обычно 6. Это означает, что ядро будет пытаться повторно отправить пакет SYN до 6 раз.
6
Вы также можете просмотреть содержимое других файлов в директории /proc/sys/net/ipv4, чтобы увидеть их текущие значения. Например, чтобы просмотреть диапазон локальных портов, которые может использовать система, вы можете просмотреть файл ip_local_port_range:
cat /proc/sys/net/ipv4/ip_local_port_range
Вывод покажет нижнюю и верхнюю границы диапазона локальных портов:
32768 60999
Для изучения настроек, связанных со всеми версиями IP, вы также можете проверить директорию /proc/sys/net/core.
ls /proc/sys/net/core
default_qdisc dev_weight message_burst message_cost netdev_max_backlog optmem_max rmem_default rmem_max somaxconn warnings wmem_default wmem_max
И проверить значение параметра rmem_default:
cat /proc/sys/net/core/rmem_default
212992
Изучением файлов в директории /proc/sys/net вы можете лучше понять, как ваша система настроена для работы в сети. Эта информация может быть неоценима при устранении неполадок в сети и оптимизации сетевой производительности.
Проверка конфигурации сокетов с помощью sysctl
На этом этапе мы рассмотрим, как проверить конфигурацию сокетов с использованием команды sysctl. sysctl представляет собой утилиту командной строки, которая позволяет просматривать и изменять параметры ядра во время выполнения. Это мощный инструмент для тонкой настройки поведения системы, включая настройки сети.
sysctl считывает и записывает значения из виртуальной файловой системы /proc/sys. На предыдущем этапе мы использовали команду cat для прямого чтения значений из файлов в /proc/sys/net. sysctl предоставляет более удобный и структурированный способ доступа к этим параметрам и их изменения.
Для начала откройте терминал.
Начнем с вывода списка всех доступных параметров sysctl, связанных с сетью. Для этого можно использовать команду sysctl -a и отфильтровать вывод с помощью grep, чтобы сосредоточиться на сетевых настройках.
Введите следующую команду в терминал и нажмите Enter:
sysctl -a | grep net.
Эта команда выполняет следующие действия:
sysctl -a: Выводит список всех параметров ядра.grep net.: Фильтрует вывод, показывая только параметры, начинающиеся сnet..
Вы должны увидеть длинный список сетевых параметров и их текущих значений. Вывод будет похож на следующий:
net.bridge.bridge-nf-call-arptables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-ip6tables = 0
net.core.bpf_jit_enable = 0
net.core.busy_poll = 50
net.core.busy_read = 50
net.core.default_qdisc = fq_codel
net.core.dev_weight = 64
net.core.message_burst = 10
net.core.message_cost = 5
net.core.netdev_max_backlog = 1000
net.core.optmem_max = 20480
net.core.rmem_default = 212992
net.core.rmem_max = 1703936
net.core.somaxconn = 128
net.core.warnings = 1
net.core.wmem_default = 212992
net.core.wmem_max = 1703936
net.ipv4.conf.all.accept_redirects = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.arp_filter = 0
net.ipv4.conf.all.arp_ignore = 0
net.ipv4.conf.all.arp_notify = 0
net.ipv4.conf.all.bootp_relay = 0
net.ipv4.conf.all.forwarding = 0
net.ipv4.conf.all.ignore_routes_with_linkdown = 0
net.ipv4.conf.all.log_martians = 0
net.ipv4.conf.all.mc_forwarding = 0
net.ipv4.conf.all.medium_id = 0
net.ipv4.conf.all.promote_secondaries = 1
net.ipv4.conf.all.proxy_arp = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.all.secure_redirects = 1
net.ipv4.conf.all.send_redirects = 1
net.ipv4.conf.default.accept_redirects = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.default.arp_filter = 0
net.ipv4.conf.default.arp_ignore = 0
net.ipv4.conf.default.arp_notify = 0
net.ipv4.conf.default.bootp_relay = 0
net.ipv4.conf.default.forwarding = 0
net.ipv4.conf.default.ignore_routes_with_linkdown = 0
net.ipv4.conf.default.log_martians = 0
net.ipv4.conf.default.mc_forwarding = 0
net.ipv4.conf.default.medium_id = 0
net.ipv4.conf.default.promote_secondaries = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.secure_redirects = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.lo.accept_redirects = 1
net.ipv4.conf.lo.accept_source_route = 0
net.ipv4.conf.lo.arp_filter = 0
net.ipv4.conf.lo.arp_ignore = 0
net.ipv4.conf.lo.arp_notify = 0
net.ipv4.conf.lo.bootp_relay = 0
net.ipv4.conf.lo.forwarding = 0
net.ipv4.conf.lo.ignore_routes_with_linkdown = 0
net.ipv4.conf.lo.log_martians = 0
net.ipv4.conf.lo.mc_forwarding = 0
net.ipv4.conf.lo.medium_id = 0
net.ipv4.conf.lo.promote_secondaries = 1
net.ipv4.conf.lo.proxy_arp = 0
net.ipv4.conf.lo.rp_filter = 0
net.ipv4.conf.lo.secure_redirects = 1
net.ipv4.conf.lo.send_redirects = 1
net.ipv4.icmp_echo_ignore_all = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.icmp_timestamp_ignore_replies = 0
net.ipv4.ip_default_ttl = 64
net.ipv4.ip_forward = 0
net.ipv4.ip_local_port_range = 32768 60999
net.ipv4.neigh.default.anycast_delay = 1
net.ipv4.neigh.default.app_solicit = 0
net.ipv4.neigh.default.base_reachable_time_ms = 30000
net.ipv4.neigh.default.gc_interval = 30
net.ipv4.neigh.default.gc_stale_time = 60
net.ipv4.neigh.default.locktime = 0
net.ipv4.neigh.default.mcast_solicit = 3
net.ipv4.neigh.default.proxy_qlen = 64
net.ipv4.neigh.default.retrans_time_ms = 1000
net.ipv4.neigh.default.ucast_solicit = 3
net.ipv4.route.flush = 0
net.ipv4.route.gc_elasticity = 9
net.ipv4.route.gc_interval = 30
net.ipv4.route.gc_min_interval = 0
net.ipv4.route.gc_timeout = 210
net.ipv4.route.max_size = 4096
net.ipv4.route.min_adv_mss = 536
net.ipv4.route.mtu_expires = 600
net.ipv4.tcp_abc = 0
net.ipv4.tcp_adv_win_scale = 1
net.ipv4.tcp_allowed_congestion_control = reno
net.ipv4.tcp_congestion_control = reno
net.ipv4.tcp_dsack = 1
net.ipv4.tcp_ecn = 2
net.ipv4.tcp_fack = 1
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_fin_timeout = 60
net.ipv4.tcp_frto = 2
net.ipv4.tcp_keepalive_intvl = 75
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_time = 7200
net.ipv4.tcp_low_latency = 0
net.ipv4.tcp_max_syn_backlog = 256
net.ipv4.tcp_max_tw_buckets = 180000
net.ipv4.tcp_moderate_rcvbuf = 1
net.ipv4.tcp_mtu_probing = 0
net.ipv4.tcp_no_metrics_save = 0
net.ipv4.tcp_orphan_retries = 8
net.ipv4.tcp_reordering = 3
net.ipv4.tcp_retries1 = 8
net.ipv4.tcp_retries2 = 15
net.ipv4.tcp_rfc1337 = 0
net.ipv4.tcp_rmem = 4096 212992 6291456
net.ipv4.tcp_sack = 1
net.ipv4.tcp_slow_start_after_idle = 1
net.ipv4.tcp_syn_retries = 6
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_wmem = 4096 16384 4194304
net.ipv6.conf.all.accept_dad = 1
net.ipv6.conf.all.accept_ra = 1
net.ipv6.conf.all.accept_redirects = 1
net.ipv6.conf.all.autoconf = 1
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.all.force_mld_version = 0
net.ipv6.conf.all.hop_limit = 64
net.ipv6.conf.all.ignore_routes_with_linkdown = 0
net.ipv6.conf.all.max_addresses = 16
net.ipv6.conf.all.mldv1_unsolicited_report_interval = 1000
net.ipv6.conf.all.mldv2_unsolicited_report_interval = 100
net.ipv6.conf.all.mtu = 0
net.ipv6.conf.all.proxy_ndp = 0
net.ipv6.conf.all.regen_max_random_factor = 600
net.ipv6.conf.all.router_solicitation_delay = 1
net.ipv6.conf.all.router_solicitation_interval = 4
net.ipv6.conf.all.router_solicitations = -1
net.ipv6.conf.all.seg6_enabled = 1
net.ipv6.conf.all.seg6_require_hmac = 0
net.ipv6.conf.all.use_optimistic_dad = 0
net.ipv6.conf.all.use_tempaddr = 0
net.ipv6.conf.default.accept_dad = 1
net.ipv6.conf.default.accept_ra = 1
net.ipv6.conf.default.accept_redirects = 1
net.ipv6.conf.default.autoconf = 1
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.default.force_mld_version = 0
net.ipv6.conf.default.hop_limit = 64
net.ipv6.conf.default.ignore_routes_with_linkdown = 0
net.ipv6.conf.default.max_addresses = 16
net.ipv6.conf.default.mldv1_unsolicited_report_interval = 1000
net.ipv6.conf.default.mldv2_unsolicited_report_interval = 100
net.ipv6.conf.default.mtu = 0
net.ipv6.conf.default.proxy_ndp = 0
net.ipv6.conf.default.regen_max_random_factor = 600
net.ipv6.conf.default.router_solicitation_delay = 1
net.ipv6.conf.default.router_solicitation_interval = 4
net.ipv6.conf.default.router_solicitations = -1
net.ipv6.conf.default.seg6_enabled = 1
net.ipv6.conf.default.seg6_require_hmac = 0
net.ipv6.conf.default.use_optimistic_dad = 0
net.ipv6.conf.default.use_tempaddr = 0
net.ipv6.conf.eth0.accept_dad = 1
net.ipv6.conf.eth0.accept_ra = 1
net.ipv6.conf.eth0.accept_redirects = 1
net.ipv6.conf.eth0.autoconf = 1
net.ipv6.conf.eth0.disable_ipv6 = 0
net.ipv6.conf.eth0.force_mld_version = 0
net.ipv6.conf.eth0.hop_limit = 64
net.ipv6.conf.eth0.ignore_routes_with_linkdown = 0
net.ipv6.conf.eth0.max_addresses = 16
net.ipv6.conf.eth0.mldv1_unsolicited_report_interval = 1000
net.ipv6.conf.eth0.mldv2_unsolicited_report_interval = 100
net.ipv6.conf.eth0.mtu = 1500
net.ipv6.conf.eth0.proxy_ndp = 0
net.ipv6.conf.eth0.regen_max_random_factor = 600
net.ipv6.conf.eth0.router_solicitation_delay = 1
net.ipv6.conf.eth0.router_solicitation_interval = 4
net.ipv6.conf.eth0.router_solicitations = -1
net.ipv6.conf.eth0.seg6_enabled = 1
net.ipv6.conf.eth0.seg6_require_hmac = 0
net.ipv6.conf.eth0.use_optimistic_dad = 0
net.ipv6.conf.eth0.use_tempaddr = 0
net.ipv6.conf.lo.accept_dad = 1
net.ipv6.conf.lo.accept_ra = 1
net.ipv6.conf.lo.accept_redirects = 1
net.ipv6.conf.lo.autoconf = 1
net.ipv6.conf.lo.disable_ipv6 = 0
net.ipv6.conf.lo.force_mld_version = 0
net.ipv6.conf.lo.hop_limit = 64
net.ipv6.conf.lo.ignore_routes_with_linkdown = 0
net.ipv6.conf.lo.max_addresses = 16
net.ipv6.conf.lo.mldv1_unsolicited_report_interval = 1000
net.ipv6.conf.lo.mldv2_unsolicited_report_interval = 100
net.ipv6.conf.lo.mtu = 65536
net.ipv6.conf.lo.proxy_ndp = 0
net.ipv6.conf.lo.regen_max_random_factor = 600
net.ipv6.conf.lo.router_solicitation_delay = 1
net.ipv6.conf.lo.router_solicitation_interval = 4
net.ipv6.conf.lo.router_solicitations = -1
net.ipv6.conf.lo.seg6_enabled = 1
net.ipv6.conf.lo.seg6_require_hmac = 0
net.ipv6.conf.lo.use_optimistic_dad = 0
net.ipv6.conf.lo.use_tempaddr = 0
net.netfilter.nf_conntrack_acct = 0
net.netfilter.nf_conntrack_buckets = 65536
net.netfilter.nf_conntrack_checksum = 0
net.netfilter.nf_conntrack_count = 256
net.netfilter.nf_conntrack_expect_max = 128
net.netfilter.nf_conntrack_frag6_high_thresh = 1048576
net.netfilter.nf_conntrack_frag6_low_thresh = 524288
net.netfilter.nf_conntrack_frag6_timeout = 60
net.netfilter.nf_conntrack_frag_high_thresh = 1048576
net.netfilter.nf_conntrack_frag_low_thresh = 524288
net.netfilter.nf_conntrack_frag_timeout = 60
net.netfilter.nf_conntrack_generic_timeout = 3600
net.netfilter.nf_conntrack_helper = 1
net.netfilter.nf_conntrack_icmpv6_timeout = 10
net.netfilter.nf_conntrack_icmp_timeout = 30
net.netfilter.nf_conntrack_log_invalid = 0
net.netfilter.nf_conntrack_max = 262144
net.netfilter.nf_conntrack_sctp_timeout_closed = 0
net.netfilter.nf_conntrack_sctp_timeout_cookie_echoed = 120
net.netfilter.nf_conntrack_sctp_timeout_cookie_wait = 120
net.netfilter.nf_conntrack_sctp_timeout_heartbeat_ack = 0
net.netfilter.nf_conntrack_sctp_timeout_heartbeat_sent = 30
net.netfilter.nf_conntrack_sctp_timeout_shutdown_ack_sent = 0
net.netfilter.nf_conntrack_sctp_timeout_shutdown_recd = 0
net.netfilter.nf_conntrack_sctp_timeout_shutdown_sent = 0
net.netfilter.nf_conntrack_tcp_loose = 1
net.netfilter.nf_conntrack_tcp_max_retrans = 3
net.netfilter.nf_conntrack_tcp_timeout_close = 10
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_established = 86400
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 30
net.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 120
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.unix.max_dgram_qlen = 512
Чтобы просмотреть значение конкретного параметра, используйте команду sysctl, за которой следует имя параметра. Например, чтобы просмотреть значение параметра net.ipv4.ip_forward, введите следующую команду и нажмите Enter:
sysctl net.ipv4.ip_forward
Эта команда отобразит текущее значение параметра net.ipv4.ip_forward.
net.ipv4.ip_forward = 0
Для изменения параметра sysctl можно использовать опцию -w, за которой следует имя параметра и новое значение. Однако имейте в виду, что изменения, сделанные с помощью опции -w, являются временными и будут потеряны после перезагрузки системы.
Например, чтобы временно включить IP-переадресацию (установить net.ipv4.ip_forward в значение 1), введите следующую команду и нажмите Enter:
sudo sysctl -w net.ipv4.ip_forward=1
Вы можете убедиться, что значение было изменено, запустив команду sysctl еще раз:
sysctl net.ipv4.ip_forward
Теперь вывод должен показать:
net.ipv4.ip_forward = 1
Для того чтобы изменения стали постоянными, вам нужно отредактировать файл /etc/sysctl.conf или создать новый файл конфигурации в директории /etc/sysctl.d/.
Например, создадим новый файл с именем 99-labex.conf в директории /etc/sysctl.d/ и добавим в него настройку net.ipv4.ip_forward=1.
Сначала создайте файл с помощью nano:
sudo nano /etc/sysctl.d/99-labex.conf
Затем добавьте следующую строку в файл:
net.ipv4.ip_forward=1
Нажмите Ctrl+X, затем Y, а затем Enter, чтобы сохранить файл.
Наконец, примените изменения, запустив следующую команду:
sudo sysctl -p /etc/sysctl.d/99-labex.conf
Эта команда прочитает файл конфигурации и применит настройки.
Используя команду sysctl и изменяя файл /etc/sysctl.conf, вы можете настроить сетевые параметры системы для оптимизации производительности и безопасности.
Резюме
В этом практическом занятии мы изучили, как проверять параметры сетевых сокетов в Linux с использованием команды ss. Основная идея заключается в понимании того, как использовать команду ss -no state all для отображения расширенной информации о сокетах, включая размер окна TCP и MSS (Maximum Segment Size, максимальный размер сегмента), которые являются важными для диагностики проблем с сетевой производительностью.
В практическом занятии подчеркивается важность сокетов как конечных точек сетевого взаимодействия и показано, как команда ss позволяет получить подробную информацию о параметрах сокетов, что облегчает эффективное устранение неполадок в сети и ее оптимизацию.



