A) If an outgoing packet shows up in tcpdump, does that guarantee that the packet was actually transmitted? (i.e. can there be anything downstream of the tap point that could prevent the packet from being sent?)
Isso significa que o pacote fluiu para fora da sua interface de rede, mas não muito mais que isso. Para saber se um pacote atingiu seu destino, você precisa executar tcpdump
no lado do recebimento.
Um firewall seria o provável culpado (seja de saída ou de entrada).
B) If an expected incoming packet doesn't show up in tcpdump, does that guarantee that the packet was never received? (i.e. can there be anything upstream of the tap point that could discard a received packet before tcpdump sees it?)
Sim, se tcpdump
estiver assistindo à interface correta e você não vir nenhum pacote que tenha sido confirmado como enviado de fora, o pacote provavelmente nunca foi enviado.
rota padrão
Se as rotas padrão não forem especificadas corretamente, os pacotes não conseguirão acessar o dispositivo de rede correto do gateway, de modo que possam ser entregues a um dispositivo nessa sub-rede específica.
Gostaria de me certificar de que as rotas predefinidas estão definidas corretamente para o seu Mac.
Exemplo
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 wlp3s0
192.168.1.0 0.0.0.0 255.255.255.0 U 9 0 0 wlp3s0
NOTA: O acima é do meu sistema Fedora 19, mas o seu Mac deve ter algo semelhante. Verifique se a rota padrão está definida corretamente para sua rede.
firewall
Eu também me certificaria de que não há um firewall atrapalhando. No dispositivo Pi, você deve ser capaz de desligar qualquer serviço relacionado ao iptables.
$ /etc/init.d/iptables stop