diff --git a/protocol/02_use_cases.md b/protocol/02_use_cases.md
index cc82305..f398c60 100644
--- a/protocol/02_use_cases.md
+++ b/protocol/02_use_cases.md
@@ -1 +1,26 @@
# Use-Cases
+
+
+### 1. Start New Connection
+Client A establishes a connection to another Client B using TCP. Client A sends a new_connection message to Client B which responds with its routing table, updating Client A's routing table. Both Clients add information about the connection to their routing tables.
+
+### 2. Forward Message
+Client A receives a message and checks its destination address. If Client A is not the destination, it checks its routing table for the destination address and sends the message to the destination, if directly connected or to the next address on the route, if one is available.
+
+### 3. Update Routing Table
+Every X (mili)seconds Client A requests all directly connected Clients to send a routing_table_update containing all information in their routing table besides the routing information it got from Client A. When receiving routing_table_update, Client A will update its routing table with any new information from it. If a Client does not answer this request, they will treated as unavailable.
+
+### 4. Send Routing Table
+When requested Client A sends a routing_table_update to the requesting Client containing all information in Client A's routing table besides the information it got from the requesting Client.
+
+### 5. Quit Client
+Client A sends a quit_message to all directly connected Clients. Afterwards the program ends itself.
+
+### 6. source is unavailable
+Client A marks all routes in its routing table reachable through the source including the source itself as unreachable and sends a routing table update.
+
+#### Client specific
+- send message
+- receive message
+- display message
+- display available participants
diff --git a/protocol/diagramme/UseCase.uxf b/protocol/diagramme/UseCase.uxf
new file mode 100644
index 0000000..f5a4b38
--- /dev/null
+++ b/protocol/diagramme/UseCase.uxf
@@ -0,0 +1,53 @@
+11Space for diagram notes
+UMLActor035266121UserUMLGeneric19822517836Client A
+halign=leftUMLUseCase23114313266*establish tcp*
+*connection*Relation66165187231
+
+start new Connection
+cbase=d
+10;190;150;10Relation2861879988lt=.>
+
+<<includes>>
+cbase=ur
+10;20;10;60UMLActor726264110121other ClientsUMLUseCase22025315466*send new_connection*
+*message*Relation352165429132lt=->10;10;370;100UMLUseCase22036315455*update routing table*Relation2863089977lt=.>
+
+<<includes>>
+cbase=r
+10;10;10;50Relation36327539677lt=<-340;50;10;10Relation36334139666lt=<->10;40;340;10UMLUseCase46223116566*send*
+*routing_table_update*Relation61625314366lt=<->
+110;40;10;10UMLUseCase22044015455*send message*Relation649374121286lt=<-10;240;90;10Relation44440209198lt=<-10;10;170;160Relation5540718777new message to participant
+cbase=u
+
+10;20;150;50UMLUseCase49548415455*source is*
+*unreachable*Relation5615289988lt=.>
+ <<extends>>
+cbase=r
+10;10;10;60UMLUseCase23159415455*display message*Relation37460513277lt=.>
+<<extends>>
+cbase=u
+10;10;100;45UMLNote23168224244Condition: {Client A is destination}
+extension point: receive message
+bg=pinkUMLNote22052828655Condition: {Client A is destination and its a
+quit message}
+extension point: receive message
+bg=pinkRelation4955509933lt=.()10;10;70;10Relation4186273377lt=.()10;50;10;10UMLUseCase484594176121*receive message*
+--
+*extension points*
+source is unreachable
+display message
+forward message
+valign=topUMLUseCase2315513266*quit client*Relation337722028610;240;180;10Text75923144331..*
+style=wordwrapRelation363363396121lt=<-340;10;10;90UMLUseCase23179215455*display available*
+*participants*Relation3346222037410;10;180;320Relation35224213244lt=.>
+<<includes>>10;20;100;20Relation35277429198lt=<-
+ quit message
+cbase=u
+370;160;10;10Relation5617049988lt=.>
+ <<extends>>
+10;60;10;10UMLUseCase49577015455*forward message*Relation352396242110lt=.>
+
+
+<<includes>>200;80;10;10UMLNote23173726444Condition: {Client A is not destination}
+extension point: receive message
+bg=pinkRelation48473711033lt=.()10;10;80;10
\ No newline at end of file
diff --git a/protocol/images/UseCase.png b/protocol/images/UseCase.png
new file mode 100644
index 0000000..6aece63
Binary files /dev/null and b/protocol/images/UseCase.png differ