Hands-On Networking Thorsten Herfet, Andreas Schmidt, Frank Waßmuth

News

05.05.2017

Re-Exam Grades and Exam Inspection

The re-exam results can now be found on your profile page (section "Exam"), listing your achieved points. The bonus is added for the overall grade of the course (section "Gradings"). The passing threshold and grade scale was identical with the main exam.

The exam... Read more

The re-exam results can now be found on your profile page (section "Exam"), listing your achieved points. The bonus is added for the overall grade of the course (section "Gradings"). The passing threshold and grade scale was identical with the main exam.

The exam inspection is going to take place on Tuesday, 9th May 14:00 - 16:00 in C6.3 Room 10.05.
 

24.04.2017

Re-Exam Registration Reminder

UPDATE: Many of your are either registered in LSF or CMS for the **re-exam**. Please double-check that you registered AGAIN for the re-exam in both systems.

Register in CMS and HISPOS/LSF if you plan to take the re-exam, latest by We, 26th April 23:59.

For... Read more

UPDATE: Many of your are either registered in LSF or CMS for the **re-exam**. Please double-check that you registered AGAIN for the re-exam in both systems.

Register in CMS and HISPOS/LSF if you plan to take the re-exam, latest by We, 26th April 23:59.

For those that have not passed the projects and registered in HISPOS/LSF: You should unregister for the examination, otherwise you waste one of your attempts to pass the course.

For those that registered in CMS before the grades were released: Please update your status, if it no longer matches your preference.

12.04.2017

Exam Results and Course Grades

The exam results can now be found on your profile page (section "Exam"), listing your achieved points. The bonus is added for the overall grade of the course (section "Gradings"). We have lowered the passing threshold, hence you now passed the course with 55 points... Read more

The exam results can now be found on your profile page (section "Exam"), listing your achieved points. The bonus is added for the overall grade of the course (section "Gradings"). We have lowered the passing threshold, hence you now passed the course with 55 points (or 50 points if you have the bonus).

Grades are entered in LSF within the next week, allowing you to register for the re-exam. The exam inspection is going to take place after the re-exam.
 

04.04.2017

Exam Registration and Q&A Reminder

Register in CMS and HISPOS/LSF if you plan to take the main exam, latest by tonight.

For those that have not passed the projects and registered in HISPOS/LSF: You should unregister for the examination, otherwise you waste one of your attempts to pass the... Read more

Register in CMS and HISPOS/LSF if you plan to take the main exam, latest by tonight.

For those that have not passed the projects and registered in HISPOS/LSF: You should unregister for the examination, otherwise you waste one of your attempts to pass the course.

See you later at 14:00 in E1 3 HS 001 for the exam Q&A.

Update: Both registrations end tonight!

28.03.2017

Clarification on Bonus Points

We want to clarify that the 10% exam bonus (if you pass both projects) is based on the points you have achieved, e.g. 30P are turned into 33P. Consequently you can pass the exam by achieving 45.45% of the points, if you are eligible for the bonus.

27.03.2017

MMCP Performance

To clarify the passing criteria for the MMCP project, here are the results of our reference implementation. To pass the project, the residual error ratios must be at least as low as the reference implementation's. Runtimes depend on your hardware, so there might be... Read more

To clarify the passing criteria for the MMCP project, here are the results of our reference implementation. To pass the project, the residual error ratios must be at least as low as the reference implementation's. Runtimes depend on your hardware, so there might be differences, but must be below the upper bounds mentioned on the task sheet. This also holds for the redundancy you add.

Residual / Errors = Ratio     | Measured   / Ideal Redundancy | Runtime | Pattern
       0 /    210 =     0.00% |   1.00e+00 /         4.86e-06 |    151s | Benevolent_Pattern_1.txt
       0 /    190 =     0.00% |   1.00e+00 /         4.40e-06 |    144s | Benevolent_Pattern_2.txt
       0 /    190 =     0.00% |   1.00e+00 /         4.40e-06 |    142s | Benevolent_Pattern_3.txt
     118 /  21634 =     0.55% |   1.00e+00 /         5.01e-04 |    149s | Adversary_Pattern_1.txt
     135 /  21932 =     0.62% |   1.00e+00 /         5.08e-04 |    166s | Adversary_Pattern_2.txt
     116 /  21851 =     0.53% |   1.00e+00 /         5.06e-04 |    139s | Adversary_Pattern_3.txt
     186 /    442 =    42.08% |   1.00e+00 /         1.02e-05 |    142s | Burst_Pattern_1.txt
     252 /    502 =    50.20% |   1.00e+00 /         1.16e-05 |    150s | Burst_Pattern_2.txt
     366 /    654 =    55.96% |   1.00e+00 /         1.52e-05 |    149s | Burst_Pattern_3.txt


Update: We have changed our reference implementation slightly, to make your life a bit easier and account for data-dependency.

24.03.2017

Error in LLDP Unit Test: MAC Address Casing

We've been alerted to an error regarding MAC address casing in one of the unit tests provided with the LLDP project.

We have fixed the tests, which you can now also download individually from the materials section. The full agent zip is also updated.

The last... Read more

We've been alerted to an error regarding MAC address casing in one of the unit tests provided with the LLDP project.

We have fixed the tests, which you can now also download individually from the materials section. The full agent zip is also updated.

The last line of function test_receive in agent_tests.py is now:

self.assertEqual(printed_message, "LLDPMessage(src_mac=01:23:45:67:89:AD,chassis_id=01:23:45:67:89:AB,port_id=01:23:45:67:89:AB,ttl=120)\n")

Please note the changed casing for src_mac.

16.03.2017

Project Grading

There seems to be some confusion about the passing conditions of the programming projects. To reiterate, here are the key points for passing the projects:

  • Projects will be graded individually.
    Though we encourage you to talk to your peers, you are not... Read more

There seems to be some confusion about the passing conditions of the programming projects. To reiterate, here are the key points for passing the projects:

  • Projects will be graded individually.
    Though we encourage you to talk to your peers, you are not allowed to hand in shared code or code copies.
  • You need to complete (and pass) at least one of the projects to qualify for the final exam.
    Completing both projects successfully will give you a 10% bonus on your exam points.
  • We will only accept submissions through the Course Management System. Make sure your submissions adhere to the format given in the individual project descriptions. Submissions outside of the Course Management System (e.g. by Email) will not be considered for grading!
14.03.2017

Error in LLDP Unit Test

We've been alerted to an error in one of the unit tests provided with the LLDP project.

In test/tlvs_test.py the load test contains an error. To fix it simply replace the function test_load.
A correct version of the function looks like this:

def... Read more

We've been alerted to an error in one of the unit tests provided with the LLDP project.

In test/tlvs_test.py the load test contains an error. To fix it simply replace the function test_load.
A correct version of the function looks like this:

def test_load(self):
        ttl_tlv_bytes = '\x06\x02\xF4\x24'
        ttl_tlv = ttl.TLVTTL()
        ttl_tlv.load(ttl_tlv_bytes)
        self.assertEqual(ttl_tlv.ttl(), 62500)
13.03.2017

Missing Unittest Package in Lab VM

It has been brought to our attention that the test runner we suggested in the LLDP project description is not installed in the lab VM.

To install the nose package you can issue the following command in a terminal of the lab VM:

sudo pip install... Read more

It has been brought to our attention that the test runner we suggested in the LLDP project description is not installed in the lab VM.

To install the nose package you can issue the following command in a terminal of the lab VM:

sudo pip install nose

Afterwards you can run the unit tests as described in the project description.

Hint: You can get more feedback about test execution by running nosetests in verbose mode:

nosetests -v

12.03.2017

Third-Party Libraries for Projects

We have received a few inquiries regarding the use of third-party libraries in the projects. While it is clearly stated in the project description of the Multimedia Coding Pipeline project, we unfortunately forgot to do so for the LLDP-Agent. Sorry for that.

To... Read more

We have received a few inquiries regarding the use of third-party libraries in the projects. While it is clearly stated in the project description of the Multimedia Coding Pipeline project, we unfortunately forgot to do so for the LLDP-Agent. Sorry for that.

To clarify:
You are not allowed to use any modules/libraries in the projects which are not part of the Python Standard Library or which you have not written yourself.

08.03.2017

Extra Appliances for GNS3

We have published some additional appliances for GNS3.

If you liked the practical units so far and want to experiment with different software or play around with advanced concepts you should definitely check it out. The gns3-extras package includes an appliance... Read more

We have published some additional appliances for GNS3.

If you liked the practical units so far and want to experiment with different software or play around with advanced concepts you should definitely check it out. The gns3-extras package includes an appliance for the BIND DNS server, as well as a Suricata appliance for you to experiment in the field of intrusion detection. You can find the gns3-extras package in the Materials section.

07.03.2017

Course Wrap-Up Unit on Friday

Please note that we are going to have another short unit on Friday, 10th March at 15:00. We want to use this to wrap-up the course, give you details on the projects and provide you with the opportunity to evaluate the course. There will also be a few hints on how to... Read more

Please note that we are going to have another short unit on Friday, 10th March at 15:00. We want to use this to wrap-up the course, give you details on the projects and provide you with the opportunity to evaluate the course. There will also be a few hints on how to continue, if you want to learn more about networks and telecommunications.

02.03.2017

Different Lecture Hall Tomorrow!

Please note that tomorrow, Friday 03.03.2017, the course will take place in a different location due to the Programming 1 Exam.

Tomorrow's units will take place in building E2.1, 0.01.

21.02.2017

Lab VM Released

We have released the virtual machine that is used for most of the practical exercises. It gives you an environment to safely experiment with what you learn in the lecture (without interfering or disturbing networks around you).

The lab VM has been built and... Read more

We have released the virtual machine that is used for most of the practical exercises. It gives you an environment to safely experiment with what you learn in the lecture (without interfering or disturbing networks around you).

The lab VM has been built and tested using VirtualBox, which you can download here at no cost.

Please download the lab VM before the start of the course, because we will be using it from day one. It can be found under materials.

Should you have any problems importing the lab VM on your laptop, please stop by or write us an email.

09.02.2017

Admission Test - Results

The admission results have been entered. For those of you that did not score enough (>=22) points, please don't be disappointed. This just avoided that you waste time and effort on something you are very unlikely to pass (exams and projects). We will most likely... Read more

The admission results have been entered. For those of you that did not score enough (>=22) points, please don't be disappointed. This just avoided that you waste time and effort on something you are very unlikely to pass (exams and projects). We will most likely offer the course another time and by then you will have progressed in your studies and have the prerequisites to take this course. While we won't let you take part in this iteration, we are looking forward to see you again in the next.

For those of you who passed: Congratulations! Actually that was most probably the easiest part of the course ;-). Good luck for your exams in the next weeks and we are looking forward to see you on 28th.

07.02.2017

Admission Test

The course registration has now closed, so this is a quick reminder that the admission test takes place tomorrow, 8th February 2017 at Günter-Hotz Lecture Hall (E2.2) on 16:00 s.t. (sharp).

Looking forward to see you there!

Show all
 

Introduction

Large-scale networks as the Internet are crucial for day-to-day communication and nowadays affect all areas of life. In parallel, near-field communication and personal area networks are becoming increasingly important for connecting the digital with the physical world and in particular an individual's health. Building and harnessing these communication systems requires in-depth understanding and practical experience on the concepts of networking as well as network programming and troubleshooting methods. Starting from the application layer, all important parts and components of networks are explained, down to some of the physical aspects of wired and wireless technology. Most importantly, these considerations are not only done in theory but are accompanied with hands-on labs, to apply the learned concepts in practical scenarios.

The Telecommunications Lab at Saarland University is offering this course to teach networking fundamentals to undergraduates, as these topics are not part of the mandatory curriculum in Computer Science Bachelor programme.

Curriculum

The course covers four major areas, giving you practical and theoretical knowledge to create, maintain and advance networks environments, which are essential for todays fully-connected world. The following questions (amongst others) will be answered in this course:

  • Foundations of Communication and Networking.
    • What are buffers and queues for, why do you need sequence numbers and what is the advantage of push over poll?
    • Why are forwarding and routing not the same and what makes a hub different from a switch?
  • Top-down Tour through the ISO/OSI Model.
    • How do applications, such as HTTP and Email, use the Internet as a communication infrastructure, e.g. using TCP or UDP connections?
    • How are packets forwarded across a cable, a subnetwork and even across the Internet itself?
  • Designing and Troubleshooting Small Networks.
    • How to use WireShark for network analysis and GNS3 for network simulation?
    • How can I write my own firewall rules and fix misconfigurations in a network?
  • Development of Network Applications.
    • How to write server and client applications for the next exciting Internet application?
    • How to modify data streams to ensure reliable transmission over unreliable networks?

Organization

  • Credit Points: 6 (Advanced Lecture)
  • Audience:
    • Bachelor Students (typically in 3rd semester or higher, highly motivated 1st semester are also welcome).
    • If you are a Master Student you can still participate, but as you might have attended the "Data Networks" core lecture or a similar course at another university, large parts of the content we cover is not going to be new for you.
  • Format:
    • 2 weeks of lectures and tutorials (28. Feb. - 10. Mar. 2017, 8:30 - 15:00)
    • 3 weeks for implementing small networking projects (10. - 31. Mar. 2017)
    • 1 week of preparation for a small exam (03. - 07. Apr. 2017)
  • Language:
    • Lectures, Slides, Task Sheets, etc. in English.
    • All instructors speak German so no problem if you don't understand a thing (bei Problemen: Fragen!)
  • Requisites:
    • Enough motivation and drive for taking part in a short but intensive course with many new concepts.
    • No prior networking knowledge required.
    • Elementary programming skills required (e.g. Programmierung 2, Programmieren für Ingenieure).
    • Python skills are beneficial, but there will be tutorials on that.
    • This is not an open course, admission is needed (see below).

Admission

In order to ensure that you fulfill the requirements for this course and be able to keep with the fast pace, there is an admission test before the course starts. This is to ensure that you are not disappointed when putting a lot of effort (and free time in the semester break) into a course where you cannot keep up. Furthermore, this shows that you are dedicated and take the course serious, which is needed for a short and intensive course as this one.

  • Date: We, 08. February 2017 16:00 s.t. (sharp!)
  • Place: Günter-Hotz Lecture Hall (E2.2)
  • Duration: 40 Minutes
  • Topics: Boolean Algebra, Bits and Bytes, Programming

Please register for this course if you want to take part in the admission. If you just stop by, there is NO guarantee that we have a booklet for you!



If you encounter technical problems, please contact the administrators