meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
courses:ct30a5000:start [2012/08/29 13:29]
julaakko [Multicast]
courses:ct30a5000:start [2012/11/22 17:12] (current)
julaakko [Assignments]
Line 53: Line 53:
   * [[assignment4notes|Notes about assignment 4 ]]   * [[assignment4notes|Notes about assignment 4 ]]
  
-[[assignment5|Assignment5:​ SCTP (TBA)]], deadline 1.11.2012 @ 23:59+[[assignment5|Assignment5:​ SCTP: Read, learn and implement "​Connect four" game]], deadline 1.11.2012 @ 23:59 
 +  * [[assignment5notes|Notes about assignment 5 ]]
  
-[[assignment6|Assignment6: ​RFC implementation (TBA)]], deadline 15.11.2012 @ 23:59 +[[assignment6|Assignment6: ​FTP client]], deadline 15.11.2012 @ 23:59 
- +  ​* ​[[assignment6notes|Notes about assignment 6 ]]
-[[home_examination|HOME EXAMINATION (TBA)]], deadline 3.12.2012 @ 8:59+
  
 +[[home_examination|HOME EXAMINATION Multiplayer deathmatch game]], deadline 3.12.2012 @ 8:59
 ===== Documents, standards, tutorials ===== ===== Documents, standards, tutorials =====
  
Line 88: Line 89:
  
 [[http://​valgrind.org/​|Valgrind]] [[http://​valgrind.org/​|Valgrind]]
 +  * Some useful parameters (see more from: ''​man valgrind''​) <​code>​
 +# Gives full details of each leak
 +--leak-check=full
 +
 +# Show also reachable and indirectly lost blocks of memory
 +--show-reachable=yes
 +
 +# Show the origin of uninitialized values
 +--track-origins=yes
 +</​code>​
  
 [[http://​valgrind.org/​docs/​manual/​QuickStart.html|Valgrind Quickstart]] [[http://​valgrind.org/​docs/​manual/​QuickStart.html|Valgrind Quickstart]]
Line 123: Line 134:
  
 [[http://​en.wikipedia.org/​wiki/​Data_structure_alignment|Wikipedia article of byte alignment in data structures]] [[http://​en.wikipedia.org/​wiki/​Data_structure_alignment|Wikipedia article of byte alignment in data structures]]
-==== FTP ==== 
- 
-[[http://​www.faqs.org/​rfcs/​rfc959.html| RFC 959 - File Transfer Protocol]] 
- 
-[[http://​slacksite.com/​other/​ftp.html| Active FTP vs. Passive FTP]] 
- 
-==== HTTP ==== 
- 
-[[http://​www.faqs.org/​rfcs/​rfc1945.html| RFC 1945 - Hypertext Transfer Protocol -- HTTP/1.0]] 
- 
-[[http://​www.jmarshall.com/​easy/​http/​|HTTP Made Really Easy]] 
- 
-[[http://​www.faqs.org/​rfcs/​rfc2045.html| RFC 2045 - Multipurpose Internet Mail Extensions (MIME) Part One]] 
- 
-[[http://​www.helpdesk.umd.edu/​topics/​email/​protocols/​315/​|Multipurpose Internet Mail Extensions (MIME) Encoding]] 
  
 ==== Multicast ==== ==== Multicast ====
Line 146: Line 142:
  
 Oracle.com Programming Interfaces Guide documentation for SOLARIS (yes, SOLARIS is UNIX and Linux is not UNIX but these pages explain multicast in informative manner): Oracle.com Programming Interfaces Guide documentation for SOLARIS (yes, SOLARIS is UNIX and Linux is not UNIX but these pages explain multicast in informative manner):
-    ​* For IPv4: +    * [[http://​docs.oracle.com/​cd/​E19683-01/​806-4125/​sockets-138/​index.html|Sending IPv4 Multicast Datagrams]] 
-      ​* [[http://​docs.oracle.com/​cd/​E19683-01/​806-4125/​sockets-138/​index.html|Sending IPv4 Multicast Datagrams]] +    * [[http://​docs.oracle.com/​cd/​E19683-01/​806-4125/​sockets-5/​index.html|Receiving IPv4 Multicast Datagrams]] 
-      * [[http://​docs.oracle.com/​cd/​E19683-01/​806-4125/​sockets-5/​index.html|Receiving IPv4 Multicast Datagrams]] +    * [[http://​docs.oracle.com/​cd/​E19683-01/​806-4125/​sockets-13/​index.html|Sending IPv6 Multicast Datagrams]] 
-    ​* For IPv6: +    * [[http://​docs.oracle.com/​cd/​E19683-01/​806-4125/​sockets-149/​index.html|Receiving IPv6 Multicast Datagrams]]
-      ​* [[http://​docs.oracle.com/​cd/​E19683-01/​806-4125/​sockets-13/​index.html|Sending IPv6 Multicast Datagrams]] +
-      * [[http://​docs.oracle.com/​cd/​E19683-01/​806-4125/​sockets-149/​index.html|Receiving IPv6 Multicast Datagrams]] +
- +
-==== POP3 ==== +
- +
-[[http://​tools.ietf.org/​html/​rfc1939|RFC 1939 - Post Office Protocol - Version 3]] +
- +
-[[http://​tcpipguide.com/​free/​t_TCPIPPostOfficeProtocolPOPPOP3.htm|The TCP/IP Guide - TCP/IP Post Office Protocol (POP/​POP3)]] +
-  * Pages are old (skip history) but the process of POP3 is explained thoroughly. +
- +
-==== TFTP ==== +
- +
-[[http://​www.faqs.org/​rfcs/​rfc1350.html|RFC 1350 - The TFTP Protocol (Revision 2)]]+
  
 ==== SCTP ==== ==== SCTP ====
Line 177: Line 160:
  
 [[http://​www.isoc.org/​briefings/​017/​|Why is SCTP needed given TCP and UDP are widely available?​]] By Randall Stewart, Paul D. Amer [[http://​www.isoc.org/​briefings/​017/​|Why is SCTP needed given TCP and UDP are widely available?​]] By Randall Stewart, Paul D. Amer
 +
 +==== PROTOCOLS ====
 +
 +[[protocols_rfcs|Different protocol descriptions & RFCs & tutorials]]
 +
 ==== State machines ==== ==== State machines ====
  
Line 183: Line 171:
 [[http://​edu.pegax.com/​doku.php?​id=old_courses:​csa:​behaviormodel2009]] by [[http://​www.pegax.com|Pekka Jäppinen]] [[http://​edu.pegax.com/​doku.php?​id=old_courses:​csa:​behaviormodel2009]] by [[http://​www.pegax.com|Pekka Jäppinen]]
  
-.. If you find good links, books, etc. please email info to assistant. 
 ==== Packing data to character buffer ==== ==== Packing data to character buffer ====
  
Line 196: Line 183:
 ==== Bit shifting ====  ==== Bit shifting ==== 
 Following [[courses:​ct30a5000:​bit_shifting_example|example]] shows how to use bit shifting with binary or operations to construct a single 8 bit integer to contain packed information. Read about [[http://​www.gamedev.net/​reference/​articles/​article1563.asp|Bitwise operations in C]]. Following [[courses:​ct30a5000:​bit_shifting_example|example]] shows how to use bit shifting with binary or operations to construct a single 8 bit integer to contain packed information. Read about [[http://​www.gamedev.net/​reference/​articles/​article1563.asp|Bitwise operations in C]].
 +
 +==== Find out which header to include ====
 +
 +If you have problems finding out which header has defined certain variable, use: <code bash>​find /​usr/​include/​|xargs grep -s -e "​PARAMETER_TO_SEARCH"</​code>​
 +Exclude the ''/​usr/​include/''​ from the include line and use the rest as include. E.g. if searching for ''​IPV6_MULTICAST'':​ <code bash> ​
 +find  /​usr/​include/​*|xargs grep -s -e "​IPV6_MULTICAST"​
 +/​usr/​include/​i386-linux-gnu/​bits/​in.h:#​define IPV6_MULTICAST_IF 17
 +/​usr/​include/​i386-linux-gnu/​bits/​in.h:#​define IPV6_MULTICAST_HOPS 18
 +/​usr/​include/​i386-linux-gnu/​bits/​in.h:#​define IPV6_MULTICAST_LOOP 19
 +/​usr/​include/​linux/​in6.h:#​define IPV6_MULTICAST_IF 17
 +/​usr/​include/​linux/​in6.h:#​define IPV6_MULTICAST_HOPS 18
 +/​usr/​include/​linux/​in6.h:#​define IPV6_MULTICAST_LOOP 19
 +</​code>​
 +
 +Use the ''​in6.h''​ in ''/​usr/​include/​linux'':​ <code c>#​include <​linux/​in6.h></​code>​
  
 ==== Gnuplot ==== ==== Gnuplot ====
Line 211: Line 213:
 [[http://​www.ibm.com/​developerworks/​linux/​library/​l-hisock.html|Boost socket performance on Linux]] [[http://​www.ibm.com/​developerworks/​linux/​library/​l-hisock.html|Boost socket performance on Linux]]
  
-==== Find out which header to include ==== 
- 
-If you have problems finding out which header has defined certain variable, use: <code bash>​find /​usr/​include/​|xargs grep -s -e "​PARAMETER_TO_SEARCH"</​code>​ 
-Exclude the ''/​usr/​include/''​ from the include line and use the rest as include. E.g. if searching for ''​IPV6_MULTICAST'':​ <code bash> ​ 
-find  /​usr/​include/​*|xargs grep -s -e "​IPV6_MULTICAST"​ 
-/​usr/​include/​i386-linux-gnu/​bits/​in.h:#​define IPV6_MULTICAST_IF 17 
-/​usr/​include/​i386-linux-gnu/​bits/​in.h:#​define IPV6_MULTICAST_HOPS 18 
-/​usr/​include/​i386-linux-gnu/​bits/​in.h:#​define IPV6_MULTICAST_LOOP 19 
-/​usr/​include/​linux/​in6.h:#​define IPV6_MULTICAST_IF 17 
-/​usr/​include/​linux/​in6.h:#​define IPV6_MULTICAST_HOPS 18 
-/​usr/​include/​linux/​in6.h:#​define IPV6_MULTICAST_LOOP 19 
-</​code>​ 
- 
-Use the ''​in6.h''​ in ''/​usr/​include/​linux'':​ <code c>#​include <​linux/​in6.h></​code>​ 
 ==== Subversion ==== ==== Subversion ====
  
Line 249: Line 237:
 Reception hour: Wednesday 1500 - 1600 Reception hour: Wednesday 1500 - 1600
  
 +.. If you find good links, books, etc. please email info to [[mailto:​jussi.laakkonen@lut.fi|assistant]].