Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions _posts/2017-1-11-dev-update-2.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ table ip althea {
```

## Traffic Shaping
Now it is time to prioritize traffic depending on how much nodes are paying. I'm using [tc](http://www.lartc.org/manpages/tc.txt), which is a tool in linux for this purpose. Traffic shaping is a very subtle process and I don't fully understand all the ins and outs yet. Also, tc's syntax is frankly quite cumbersome. Tc lets you set up qdiscs- (short for queueing discipline). There are also filters which can put packets into different classes inside the qdisc depending on different criteria. The qdisc then enqueues packets into the different classes, and either dequeues them to the network or drops them to accomplish its traffic shaping goals.
Now it is time to prioritize traffic depending on how much nodes are paying. I'm using [tc](https://linux.die.net/man/8/tc), which is a tool in linux for this purpose. Traffic shaping is a very subtle process and I don't fully understand all the ins and outs yet. Also, tc's syntax is frankly quite cumbersome. Tc lets you set up qdiscs- (short for queueing discipline). There are also filters which can put packets into different classes inside the qdisc depending on different criteria. The qdisc then enqueues packets into the different classes, and either dequeues them to the network or drops them to accomplish its traffic shaping goals.

I'll start with a diagram to explain the shaping setup that I have made, because the tc scripts are hard to follow.

Expand Down Expand Up @@ -214,4 +214,4 @@ I run this for every child class of the drr qdisc that I want to create. This wi

Using this setup, I am able to prioritize traffic coming from and going to a node's different peers. The next step, which I am working on now, is to automate this all. I'm writing that code in Go.

[Discuss this post on Reddit](https://www.reddit.com/r/incentivizedmesh/comments/5oeo1v/tunnelfirewalltraffic_shaping_setup_to_securely/)
[Discuss this post on Reddit](https://www.reddit.com/r/incentivizedmesh/comments/5oeo1v/tunnelfirewalltraffic_shaping_setup_to_securely/)