2009-09-02 9 views
18

Estoy buscando una herramienta para dibujar una secuencia de paquetes enviados para un protocolo de ventana deslizante. Hay muchas herramientas para dibujar gráficos de secuencias de mensajes con líneas horizontales, pero yo quiero ser capaz de dibujar las líneas en diagonal, al igual que el de la parte inferior de esta imagen:Herramienta para dibujar diagramas de secuencia de protocolo

SYN,SYN+ACK,ACK example http://i32.tinypic.com/2lazp1k.jpg

Para sugerir herramientas adecuadas. Lo más probable es que solo esté interesado en los gratuitos, pero si tiene una sugerencia realmente buena para un comercial, puede incluir eso también.

Respuesta

24

mscgen puede hacer esto, usando la opción arcgradient. Este fragmento de Wil hacen que la segunda parte de tu ejemplo exactamente:

msc { 
    arcgradient=20; 

    client, server; 
    client => server [label="SYN"]; 
    server => client [label="SYN + ACK"]; 
    client => server [label="ACK"]; 
} 

Si copia pega este fragmento en el mscgen_js en la demo en línea, ya lo verás.

+0

Excelente, justo lo que quería. – hlovdal

+0

El enlace aquí está ahora muy desactualizado: tiene la versión 0.2 de la línea de comandos de mscgen, que carece de muchas funciones excelentes. También hay una versión de GUI para construir diagramas en SourceForge. – Jason

+1

fwiw: - la última versión de mscgen es 0.20; - mscgen_js (el otro enlace) todavía está vivo y coleando. – Sander

2

encuentro RFFlow que ser muy rápido para poner en marcha, fácil de aprender y fácil de usar. Hace líneas de diagnóstico y texto en pendientes, y es bueno para diagramas de bloques de todo tipo. Se guarda como EMF y WMF, así como GIF y su tipo nativo, y copia-pega en Word muy bien.

6

Para cualquier otra persona que lo necesite, existe una herramienta de línea de comandos genérica mscgen.

10

He estado usando websequencediagrams. Esencialmente una versión de aplicación web de mscgen con algunos renderizadores de fantasía diferentes.

enter image description here

Websequencediagrams también expone su prestación diagrama como una API de secuencia de comandos. Ahora almaceno mis diagramas como archivos HTML, las aprenden de GIT, muestro agradables diferenciaciones, etc., es decir,

<html> 
<body> 
<div class="wsd" wsd_style="rose"><pre> 
App->set_state PAUSE 
<!-- your wsd diagram commands, etc... --> 
</pre></div> 
<script type="text/javascript" src="http://www.websequencediagrams.com/service.js"></script> 
</body> 
</html> 
+0

esta es una buena herramienta, ¿conoces una herramienta similar para visualizar eventos en una escala de tiempo? Estaba pensando en visualizar cuándo diferentes subprocesos comienzan y se detienen entre sí en un diagrama de secuencia simple. Solía ​​registrar el tiempo en algún archivo de registro, luego importar en Excel y mostrarlo en un gráfico, sin embargo, si pudiera encontrar una herramienta como esta, sería mucho más fácil – serup

+1

No conozco una herramienta así, pero es una gran idea agregar tiempo especialmente para visualizar el enhebrado. Hay más herramientas de diagrama de secuencia enumeradas en esta otra pregunta: http://stackoverflow.com/questions/6364672/drawing-sequence-diagrams. Pero los examiné brevemente y no parece que incluyan el tiempo. –

Cuestiones relacionadas