Introdução
Neste laboratório, você aprenderá como verificar se uma opção de socket de rede está configurada no Linux. Exploraremos o uso do comando ss com a opção -o para exibir informações estendidas do socket, permitindo que você visualize várias opções de socket, como o tamanho da janela TCP e MSS (Maximum Segment Size).
O laboratório guia você através do uso de ss -no state all para examinar os detalhes do socket, impedindo a resolução do nome do serviço para uma saída mais rápida. Você também aprenderá como interpretar a saída, que inclui o estado do socket, endereços e informações estendidas cruciais para diagnosticar problemas de desempenho da rede.
Verificar opções de socket com ss -o
Nesta etapa, exploraremos como usar o comando ss para verificar as opções de socket. O comando ss é uma ferramenta poderosa para investigar sockets de rede. É semelhante ao netstat, mas ss geralmente é mais rápido e fornece informações mais detalhadas. Vamos nos concentrar em usar a opção -o para exibir informações estendidas do socket.
Primeiro, vamos entender o que é um socket. Um socket é um ponto final de um link de comunicação bidirecional entre dois programas em execução na rede. Sockets são fundamentais para a programação de rede e compreendê-los é crucial para a solução de problemas e otimização de rede.
O comando ss com a opção -o permite que você visualize várias opções de socket, como o tamanho da janela TCP, TCP MSS (Maximum Segment Size) e outros parâmetros relacionados ao TCP. Essas informações podem ser inestimáveis para diagnosticar problemas de desempenho da rede.
Para começar, abra seu terminal.
Agora, vamos executar o comando ss com a opção -o para ver as informações do socket. Também usaremos a opção -n para impedir que ss tente resolver nomes de serviço, o que pode retardar a saída.
Digite o seguinte comando no seu terminal e pressione Enter:
ss -no state all
Este comando faz o seguinte:
ss: Invoca a ferramenta de estatísticas de socket.-n: Impede a resolução do nome do serviço.-o: Mostra informações estendidas.state all: Exibe todos os sockets, independentemente do seu estado.
Você deve ver uma saída semelhante a esta:
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
A saída mostra várias conexões de socket, seus estados e outras informações relevantes. O campo skmem mostra o uso de memória relacionado ao socket. rcv_space e snd_space mostram os tamanhos dos buffers de recebimento e envio.
Agora, vamos filtrar a saída para focar em sockets TCP e incluir informações do processo. Isso nos ajudará a identificar quais processos estão usando sockets específicos.
Digite o seguinte comando no seu terminal e pressione Enter:
sudo ss -tnpo state all
Este comando adiciona as seguintes opções:
-t: Filtra para sockets TCP.-p: Mostra o processo usando o socket.
Você deve ver uma saída semelhante a esta:
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))
A coluna Process agora mostra o nome do processo e o PID (Process ID) associado a cada socket. Isso pode ser muito útil para identificar quais aplicativos estão usando conexões de rede específicas.
Ao usar ss -o, você pode obter informações valiosas sobre a configuração e o status dos sockets de rede em seu sistema. Essas informações podem ser usadas para solucionar problemas de rede, otimizar o desempenho da rede e entender como os aplicativos estão usando os recursos da rede.
Verificar as configurações do socket em /proc/sys/net
Nesta etapa, exploraremos como verificar as configurações do socket usando o diretório /proc/sys/net. O sistema de arquivos /proc é um sistema de arquivos virtual que fornece informações sobre processos em execução e configuração do kernel. O diretório /proc/sys/net contém vários arquivos que controlam os parâmetros de rede, incluindo as configurações do socket.
Compreender essas configurações é crucial para otimizar o desempenho da rede e solucionar problemas relacionados à rede. Essas configurações afetam como o kernel lida com as conexões de rede, tamanhos de buffer, timeouts e outros parâmetros críticos.
Para começar, abra seu terminal.
Vamos começar listando o conteúdo do diretório /proc/sys/net/ipv4. Este diretório contém configurações específicas para rede IPv4.
Digite o seguinte comando no seu terminal e pressione Enter:
ls /proc/sys/net/ipv4
Este comando listará os arquivos no diretório /proc/sys/net/ipv4. Cada arquivo representa um parâmetro de rede específico.
Você deve ver uma saída semelhante a esta:
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
Agora, vamos examinar o valor de uma configuração específica. Por exemplo, vamos verificar o valor de tcp_syn_retries. Essa configuração determina quantas vezes o kernel tentará retransmitir um pacote SYN ao estabelecer uma conexão TCP.
Para visualizar o valor de tcp_syn_retries, use o comando cat:
cat /proc/sys/net/ipv4/tcp_syn_retries
Você deve ver um número como saída, normalmente 6. Isso significa que o kernel tentará retransmitir o pacote SYN até 6 vezes.
6
Você também pode visualizar o conteúdo de outros arquivos no diretório /proc/sys/net/ipv4 para ver seus valores atuais. Por exemplo, para visualizar a faixa de portas locais que o sistema pode usar, você pode visualizar o arquivo ip_local_port_range:
cat /proc/sys/net/ipv4/ip_local_port_range
A saída mostrará os limites inferior e superior da faixa de portas locais:
32768 60999
Para explorar as configurações relacionadas a todas as versões de IP, você também pode verificar /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
E verifique o valor de rmem_default:
cat /proc/sys/net/core/rmem_default
212992
Ao examinar os arquivos no diretório /proc/sys/net, você pode obter uma melhor compreensão de como seu sistema está configurado para rede. Esse conhecimento pode ser inestimável para solucionar problemas de rede e otimizar o desempenho da rede.
Inspecionar a configuração do socket com sysctl
Nesta etapa, exploraremos como inspecionar as configurações do socket usando o comando sysctl. sysctl é um utilitário de linha de comando que permite visualizar e modificar os parâmetros do kernel em tempo de execução. É uma ferramenta poderosa para ajustar o comportamento do seu sistema, incluindo as configurações de rede.
sysctl lê e grava valores do sistema de arquivos virtual /proc/sys. Na etapa anterior, usamos cat para ler valores diretamente dos arquivos em /proc/sys/net. sysctl fornece uma maneira mais conveniente e estruturada de acessar e modificar esses parâmetros.
Para começar, abra seu terminal.
Vamos começar listando todos os parâmetros sysctl relacionados à rede disponíveis. Para fazer isso, podemos usar o comando sysctl -a e filtrar a saída usando grep para focar nas configurações de rede.
Digite o seguinte comando no seu terminal e pressione Enter:
sysctl -a | grep net.
Este comando faz o seguinte:
sysctl -a: Lista todos os parâmetros do kernel.grep net.: Filtra a saída para mostrar apenas os parâmetros que começam comnet..
Você deve ver uma longa lista de parâmetros relacionados à rede e seus valores atuais. A saída será semelhante a esta:
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
Para visualizar o valor de um parâmetro específico, use o comando sysctl seguido pelo nome do parâmetro. Por exemplo, para visualizar o valor de net.ipv4.ip_forward, digite o seguinte comando e pressione Enter:
sysctl net.ipv4.ip_forward
Este comando exibirá o valor atual do parâmetro net.ipv4.ip_forward.
net.ipv4.ip_forward = 0
Para modificar um parâmetro sysctl, você pode usar a opção -w seguida pelo nome do parâmetro e o novo valor. No entanto, lembre-se de que as alterações feitas com a opção -w são temporárias e serão perdidas após uma reinicialização.
Por exemplo, para habilitar temporariamente o encaminhamento de IP (definir net.ipv4.ip_forward como 1), digite o seguinte comando e pressione Enter:
sudo sysctl -w net.ipv4.ip_forward=1
Você pode verificar se o valor foi alterado executando o comando sysctl novamente:
sysctl net.ipv4.ip_forward
A saída agora deve mostrar:
net.ipv4.ip_forward = 1
Para tornar a alteração permanente, você precisa editar o arquivo /etc/sysctl.conf ou criar um novo arquivo de configuração no diretório /etc/sysctl.d/.
Por exemplo, vamos criar um novo arquivo chamado 99-labex.conf no diretório /etc/sysctl.d/ e adicionar a configuração net.ipv4.ip_forward=1 a ele.
Primeiro, crie o arquivo usando nano:
sudo nano /etc/sysctl.d/99-labex.conf
Em seguida, adicione a seguinte linha ao arquivo:
net.ipv4.ip_forward=1
Pressione Ctrl+X, depois Y e, em seguida, Enter para salvar o arquivo.
Finalmente, aplique as alterações executando o seguinte comando:
sudo sysctl -p /etc/sysctl.d/99-labex.conf
Este comando lerá o arquivo de configuração e aplicará as configurações.
Ao usar o comando sysctl e modificar o arquivo /etc/sysctl.conf, você pode ajustar as configurações de rede do seu sistema para otimizar o desempenho e a segurança.
Resumo
Neste laboratório, exploramos como verificar as opções de socket de rede no Linux usando o comando ss. A principal conclusão é entender como usar ss -no state all para exibir informações estendidas do socket, incluindo o tamanho da janela TCP e MSS, que são cruciais para diagnosticar problemas de desempenho da rede.
O laboratório enfatizou a importância dos sockets como pontos de extremidade para a comunicação de rede e demonstrou como o comando ss fornece informações detalhadas sobre os parâmetros do socket, permitindo a solução de problemas e a otimização da rede de forma eficaz.



