viernes, julio 31, 2015

Devaluaciones e incentivos

Como aficionado a la economía, durante estos últimos años de crisis económica he leído varios artículos donde se acusa al euro de ser un corset demasiado estricto para aquellas economías menos competitivas dentro de la eurozona ya que no permite aplicar devaluaciones que permitan a estas economías ser competitivas respecto a aquellas que tienen una mayor productividad. Esta diferencia de productivad hace que se compren productos de otros países dando lugar a un déficit que hay que financiar a través de deuda, la cual, llegado a un punto, es insostenible.

Tener una moneda propia y poder devaluarla cuando el Banco Central del país quiera - es decir, cuando el Gobierno quiera -, sería un mecanismo que evitaría que dicho déficit se disparara y que podría hacer más competitiva la economía. Llegado a un punto, una devaluación teóricamente tendría dos beneficios y

  • El ser más caro comprar al exterior bienes y servicios debido a la devaluación, se buscarían alternativas dentro del propio país, evitando que los déficit y su necesidad de financiación se dispararan.
  • Haría más atractivas las exportaciones del país que ha realizado la devaluación, ya que sería más barato producir el el mismo.
  • Durante este periodo se compra tiempo durante el cual se podrían realizar reformas en la economía del país que permitiesen ganar productividad y poder competir con otros países.

Pero a veces, pienso que este mecanismo se convierte en un incentivo para que no se produzcan los correspondientes ajustes en aquellos sectores de la economía de un país que se han quedado obsoletas, tienen que modernizarse y ganar en competitividad. En especial, si existen los suficientes grupos de presión en esos sectores que puedan hacer que los gobiernos se inclinen por devaluar la moneda en vez de un programa de reformas. Una de las razones de la existencia del euro es - precisamente - acabar con este tipo de devaluaciones competitivas.

Obtener estadísticas de capturas de red con tshark

Aparte de la interfaz gráfica, el analizador de protocolos Wireshark tiene una versión que funciona desde la línea de comandos,similar a tcpdump. Una funcionalidad interesante es la posibilidad de obtener estadísticas de las capturas para su posterior análisis a través de la opción -z. Para poder probar las opciones, se puede usar los pcaps de ejemplo smallFlows.pcap y bigFlows.pcap que tienen los autores del tcpreplay colgado en sus páginas.

Puede consultarse todas las estadísticas disponibles en la página de manual de tshark o ejecutando la orden tshask -z help. Estas estadísticas se pueden obtener tanto de una captura en tiempo real como de un fichero con una captura que se haya grabado previamente. Si sólo se está interesando en las estadísticas, la opción -q hace que tshark no vuelque la información de los paquetes. La estadísticas se muestran ordenas en función del número de tramas que coinciden con el criterio de filtrado que se ha aplicado.

Analizar los flujos de una captura

Supongamos que se quiere saber el número de flujos TCP que tiene una captura determinada. Usando como ejemplo smallFlows.pcap, el comando para obtener esa información sería:

baldurgate:~ terron$tshark -q -z conv,tcp -r smallFlows.pcap

tshark mostrará una tabla con cada una de los flujos, el número de paquetes y bytes en cada sentido, los bytes totales que ha registrado, cuando empieza el flujo en la captura y su duración:


tshark -q -z conv,tcp -r smallFlows.pcap

Para ver los flujos que existen a nivel ethernet se puede usar la siguiente orden
baldurgate:~ terron$tshark -q -z conv,eth -r smallFlows.pcap


tshark -q -z conv,eth -r smallFlows.pcap

Exiten varios filtros que permiten analizar los flujos eth (ethernet), fc (fiber channel), fddi, ip, ipx (el viejo protocolo de Novell), sctp (stream control transmision protocol, tcp,tr (token ring) y udp.

Opcionalmente, a la opción conv se le puede especificar un filtro para poder seleccionar aquellos paquetes que interesen. Por ejemplo, si sólo se quisiera sacar las estadísticas de aquellos flujos que usen los puertos 80 o 443, se puede usar el filtro tcp.port == 80 or tcp.port == 443

baldurgate:~ terron$tshark -z conv,tcp,"tcp.port == 80 or tcp.port == 443" -r smallFlows.pcap

Resumen de protocolos

Con la opción -z io,phs se puede extraer los protocolos que existen en una determinada captura y ver sus estadísticas, mostrando cada uno de los protocolos encapsulados en las tramas, desde la capa de enlace que se tenga. Usando el mismo ejemplo smallFlows.pcap y con el siguiente comando:

baldurgate:~ terron$tshark -r smallFlows.pcap -q -z io,phs


tshark -r smallFlows.pcap -q -z io,phs

Como en el caso anterior, también se puede especificar un filtro que nos seleccione los paquetes. Por ejemplo, si sólo se desea los paquetes arp se puede usar el el filtro "arp", con lo cual la opción sería -z -z io,phs,arp, mientras si sólo se deseara capturar el tráfico http y dns se puede usar -z io,phs,"http or dns"1

Obtención de información de http

tshark tiene algunas estadísticas que permiten obtener información sobre el uso de http. Con la opción -z http,stat,2 se mostrará el resumen de los métodos que hay en las peticiones que se han enviado, pero sólo los métodos que han hecho peticiones. Si se quiere tener la estadística de todas las peticiones y las respuestas se puede usar el filtro -z http,tree. Un ejemplo de la salida de este comando se puede ver en la siguiente captura de pantalla

baldurgate:~ terron$tshark -r smallFlows.pcap -q -z "http,tree"


tshark -r smallFlows.pcap -q -z "http,tree"

Si se quiere, se puede obtener información de http por dirección IP y cada uno de los hosts virtuales que están en la misma. Para ello se usa la opción -z http_srv,tree cuya salida está agrupada por dirección IP y host virtual sobre la misma. También da el número de peticiones por cliente

baldurgate:~ terron$tshark -r smallFlows.pcap -q -z http_srv,tree

tshark -r smallFlows.pcap -q -z http_srv,tree

Resumen

tshark proporciona a través de la opción -z diversas estadísticas para los protocolos más usados que pueden ser de utilidad a la hora de analizar una captura de red. Consultando la página de manual de la utilidad están disponobles todos las estadísiticas posibles.

Notas

  1. Curiosamente, al usar este filtro en el caso de la versión de tshark que estoy usando, 1.12.6, me saca información de ICMP
  2. Ojo, hay que poner la coma al final.