Class attendance and assignments records
Please bookmark it on your browser so you can return to it easily.
Second assignment is out
As promised here you have the second assignment work that deals with UDP network programming. As in the first assignment, it is a client/server application. Again you have to program a small server that receives files from the client and writes them down to disk.
I have chosen an "invented" protocol as there are lots of Java code out there for many standard protocols (including TFTP). The good news is that I tried to keep it as simple as possible. The bad news is that my skills at writing the protocol specification are not on par with a good RFC. As usual, feel free to ask me any question you may have about the assignment.
Although I know you can copy and paste the client's source code from the PDF file, you can also find the source code file here.
First assignment results
I want you to know that Javier, Edgar, Aitor, Ana, Ramazan and Manuel turned in their work. Unfortunately, one of them failed to meet the problem requirements but the rest pass the test with flying colors.
Congratulations, not bad for your first networking problem.
Those of you that did not turn in anything please remember there are still three other assignments to come.
Network programming is like riding a bike: None of you learnt it by reading a manual, did you?
The many uses this blog
I was reviewing last year's posts and I realized that many of the posts are applicable now as we are going through the same chapters at the same time. So instead of reposting the same entries I invite you to check last year's entries along the whole course and there you'll find useful information, interesting links and related material.
Please note that assignments are different.
Class attendance record
|
Please note that some of you are joining the class quite late. I understand that you may have other subjects too, but please note you'll need some effort to catch up with the class.
Sample IM server application
You'll find it running on port 7777 on the IP address 158.42.53.17. If for some reason it is not accepting your connections, please let me now, as a power outage might have happened on my side and manual restart would be needed.
Please note that the messages about a new client entering the server or a client leaving the server are not required on your code. I've just added them to give users a bit more of information.
News and reminders
You do the four scheduled assignments right and you already have 20% of the subject.
You come to all the classes and you have 10% more.
Still not enough to pass the subject (you need 50%) but closer ...
Just a word of warning: Assignments are personal work, not team work. Your code will be checked against all the other submitters. If a copy is found all the involved parties will score 0% no questions asked. It is in your best interest to keep your work for yourself.
As with any other doubts you may have about the subject, I'm available during office hours for helping you solving them.
Programming Assignment #1
Instant Messaging Server
Your job is to write a Java application that will act as a the server for an Instant Messaging application. Clients will connect to the server [using a TCP connection] to talk to each other. Clients will type messages that are composed of one or more lines of text. Each time a user types a new line of text at the keyboard, that line will be transmitted to the server.
Each time the server receives a new line from any client, it will send a copy to all the clients but the one who sent it (i.e. to prevent a confusing double echo on the sending-client side).
Any client that wants to abandon the service MUST type a line with the text QUIT. Whenever the server receives such a line of text it will interpret its meaning, closing the socket this client was using. From them on, no attempt to send any more data to that client will happen (note: trying to send data to an already closed socket would trigger an exception).
Still, a client could leave the service by just closing the connection without the mandatory QUIT command. You do not need to manage that case though.
Your Code
Your code has to conduct the following tasks:
Accept any number of simultaneous clients, but it is safe to assume no more than one hundred simultaneous clients.
Retransmit any text line, including empty lines, to any active client but the one typing that text line.
Not to retransmit those lines which only contents is the QUIT command. Any combination of upper and lower case characters should be accepted and recognized (i.e: both QuiT and quit should work too).
The server program prints “NEW CLIENT” whenever a new client connects to the server and it prints “CLIENT GONE” when any client quits the system.
Some tips
Server listens on port 7777
You may use several telnet windows as clients of your server (for testing purposes) by just typing;
telnet localhost 7777
Due date
Your Java source code has to be submitted by email (address available on the front page) by Nov 30th.
If you have any doubt about the assignment I strongly suggest you to stop by my office during office hours (posted on the web).
News
I mentioned in the class this sample server program.
Next class will be held on Aula Informática, on the ground level, see the plane (click on the image to get a larger view).
A bird's eye view of the Internet
There are several projects aimed to provide such a view. This is just one of them.
A tree is built connecting lower level networks. As you can see a huge hierarchical view is shown, and that is just part of how it was the Internet some time ago as it is evolving on a daily basis.
Changing location
FYI: For Your Information
- the IETF plenary session,
- any IETF working group or portion thereof,
- the IESG, or any member thereof on behalf of the IESG,
- the IAB or any member thereof on behalf of the IAB,
- any IETF mailing list, including the IETF list itself, any working group or design team list, or any other list functioning under IETF auspices,
- the RFC Editor or the Internet-Drafts function
All IETF Contributions are subject to the rules of RFC 3978 and RFC 3979.
Statements made outside of an IETF session, mailing list or other function, that are clearly not intended to be input to an IETF activity, group or function, are not IETF Contributions in the context of this notice.
Please consult RFC 3978 for details.
Welcome to all of you
I'll see you all on Thursday,
Miguel
September news
Antonio: I'm glad to see you again enrolled in the subject. You are welcome to come to the class too, work permiting.
Still reading this blog?
On the other hand, if you are planning joining us next course, please be welcome and feel free stoping by my office (I'll be out of town week 38th though).
There is just another opportunity for you to take an exam next September 14th, Thursday, at 16:00.
Best of luck (not that I think it has lots to do with the outcome),
Dr. Sanchez
Solved Exam
Please contact me if you want to have a look at your exam. Marks will be final in a few days.
What not to do this summer
This list contains some of the IP ranges that you better avoid if you do not want a free trip to Guantanamo or another sunny place with the latest fashion in orange suits.
Subject's marks
ANTONIO, ALBERTO, JOSE LUIS and RAMON
The rest of you, brave people, did get the following results:
NAME EXAM LAB ASSIG. ATT. TOTAL COURSE_MARK
-------------- ---- --- ------ ---- ------- -----------
DIEGO 44 35 1 20 53.05 63.25
JORGE 62 70 0 0 64.60 67.29
TOMASZ 70 70 2 17 83.39 82.85
IGNACIO 62 45 1 17 71.49 79.05
LUISMANUEL 22 0 0 2 20.67 28.73
VLADISLAV 82 55 1 21 90.23 86.24
RAMI 38 0 0 2 36.37 21.15
Congratulations on your results. Unfortunately those below the 50% course mark have failed the subject, please remember we will have another exam in September covering THE WHOLE SUBJECT (assignments or lab exam are not available in September).
Your exam is available for you to check your results (just email me for a revision slot). In a few days I'll post the 2nd term exam answered.
Wold Cup telnet fun
_ajjaa
_Q???4Qf
_,...,_ ) a/]QQb
.'@/~~~\@'. jQQba
//~~\___/~~\\ _, .?QQ#[ _
|@\__/@@@\__/@| ]m _.7 "asLaas_a/
|@/ \@@@/ \@| , ,\J#L -!4Wba
\\__/~~~\__// [aL[ \ \jmm jP
'.@\___/@.' ,b#'"[ \jmmmmm _P.
`"""""` a##' "4P#mmm# _ya
_P !4####m ?]aa/
/' aaJ#U###m# 4QP'
' aa,/4!44! '
jf _'jQQQQyb7b /
'. '.QQQQ4QQPb )?
QQQ'QQP?' jg/ f
_yQP']QQb aa
a#W?'..QQQQ?)? ?'
"##' _jQQP'
.j? [ jQQ'
aJ jmaaX#L???
? am'
_QjQQQ/
)QQQP?
4QQQ/
So try any of these live-streams based on telnet:
telnet ascii-wm.net 2006
telnet diego.ascii-wm.net 2006
telnet pinguin.eikon2.fs.ei.tum.de 2006
Warning: Exam ahead
As a reminder: Written exam will be held on June 23rd at 4:00pm. You either have to do the second term exam if you passed the first term or a final exam covering first and second terms if you didn't.
If you have attended to all the lab sessions please remember you are eligible for a written laboratory test, to be held afterwards (same day). Any score you get there will only add to your total score (it is my way of telling you should do it if you are eligible).
Those who fail the subject will have an exam in September covering all the subject.
Remember the final grade will include the marks from you class attendance and the assignments you turned in.
Till the exam, I'll be available to address any of your questions on my office hours (Mon & Tue 9:00 - 12:00).
Encryption ... rap?
Rapper MC Plus+ has created a song titled "Alice and Bob" based on the improbable theme of computer cryptography. It is freely available online. I'm not sure this will become a huge hit but, who knows?
New software threats
Last assignment is out
Moore's law of networking?
Apparently, there is a Metcalfe's law about the value of a network I have never heard before. All it all, it does not seem to make everybody happy. I guess Metcalfe will be better recalled because of Ethernet technology.
Getting to know an autonomous system
In this link you can learn more about this ISP's set of addresses. Comsat Colombia is the local branch of an international ISP that offers satellite Internet access. In the report all the BGP-related information is shown, so you can learn about their addressing space and the other AS they are routing through.
For those of you that feel happier with a closer ISP. Here you have the ONO-CableEuropa AS details.
Third assignment
Please remember this is just an optional programming exercise dealing with computer network's concepts. But if you decide to go for it you'll get the double benefit of learning plus scoring a bit towards your final grade.
Back to work
See you in class next Feb, 16th.
Exam results
You may want to get a copy of the exam with all the answers too. It's already here.
EXAM LAB.TEST ATTENDANCE TOTAL
Jorge 63% 55% 1 70%
Luis Manuel 38% 7 37%
Ignacio 73% 55% 27 87%
Alberto 41% 6 39%
Diego 59% 40% 22 73%
Johan 57% 20% 19 65%
Tomasz 67% 80% 20 82%
Vladislav 63% 100% 22 82%
Solved lab test is also available.
The column "total" includes your assignments too (if any).
Marks are calculated as follows:
TOTAL = EXAM * (9 - #ASSIGN) / 10 + #ASSIGN * 10 + ATTENDANCE * 10 / 27 + LAB.TEST / 10
Fall term is over
My best wishes with the exams.
Johan, we'll miss you.
Maybe some new students will join us next term.