Question

I am looking for a tool to draw a sequence of packets sent for a sliding window protocol. There are many tools for drawing message sequence charts with horizontal lines, but I want to be able to draw the lines diagonally, like the the bottom part of this image:

SYN,SYN+ACK,ACK example

Please suggest suitable tools. I am most likely only interested in free ones, but if you have a really good suggestion for a commercial you can include that as well.

Was it helpful?

Solution

mscgen can do this, using the arcgradient option. This snippet wil render the second part of your example exactly:

msc {
  arcgradient=20;

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

If you copy paste this snippet in the mscgen_js on line demo, you'll see.

OTHER TIPS

I've been using websequencediagrams. Essentially a webapp version of mscgen with a few different fancy renderers.

enter image description here

Websequencediagrams also exposes their diagram rendering as a script API. Now I store my diagrams as HTML files, commit them to git, show nice diffs, etc. I.e.,

<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>

For anyone else in need, there is a cool command-line tool mscgen.

You might try umlet.com

Kindness,

Dan

I find RFFlow to be very quick to start up, quick to learn and easy to use. It does diagnonal lines and text on slopes, and is good for block diagrams of all kinds. It saves as EMF and WMF as well as GIF and its native type, and copy-pastes into Word very nicely.

For the sake of completeness, here's another free, web browser based option: https://sequencediagram.org/

Here's their pitch (from 'About'):

SequenceDiagram.org is an online tool / software for creating uml sequence diagrams.

All processing of parsing and painting the diagram is done client side in the user's web browser. This not only makes it snappy to work with, but it also means that your data isn't transferred over the Internet by the tool like in many other sequence diagram tools. Since no backend server is used it is also possible to use the tool offline.

There are many sequence diagram tools out there but this is the only one which allows you to:

∙Script using a simple text notation when it is most convenient to do so, and
∙Draw the sequence diagram using your mouse at the same time when that is most convenient

In other words bringing the best from both worlds. This makes it very easy to work with large diagrams where other similar tools struggle. It also doesn't have any ads or unnecessary distracting elements.

The tool is developed, maintained, and used by people who create a lot of sequence diagrams in their daily work and from efficiency point of view weren't 100% satisfied with the existing tools.

If you have any question/comments/suggestions/bugs please contact info@sequencediagram.org. The more feedback we get the better we can prioritize.

ZenUML is free and online. It has a weird feature that allows you to style your diagram with any CSS code.

enter image description here

To get the above diagram, just in the DSL editor put

Client->Server:SYN

and do the magic in the CSS editor by putting

div[signature="SYN"]>div.message {
  transform: rotate(10deg)
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top