Saturday, September 11, 2010

My lab lead experience

well, i had to lead the lab on 26th august. our topic was on the linux commands which i frankly found very boring and my group members also approve of this thing...!!!. i had my lab leading 2 saturdays before only because of some holiday i guess....i had  some problems as i didn't have ubuntu installed in my PC. but eventually made good use of institute's computers only..was very nervous before the lab leading.

During the lab,i was really scared about amol and arjun asking tricky questions but it went along fine during the lab.. although there were few computers in which the commands weren't responding but we eventually gave our best shot..the lab timings also got extended till 4:45pm,me and akshit eventually got pretty exhausted by the end of the lab!!..and that day i really understood the effort our faculty puts in to teach us.. hats off to our faculties!!!...
overall it was a nice experience and learning one too!!!


since, rhea talked about TCP, i would like to throw some light on the advantages and disadvantages of TCP and UDP.

I have only included those points which i could understand after reading . there are loads of points available on google on the advantages and disadvantages of TCP and UDP which you could refer. 


(1) TCP always guarantees three things - your data reaches its destination,it reaches there in time and it reaches    there without duplication.
(2) in TCP, since all the work is done by the operating system, so you just need to sit back and watch the show. Even the debugging is taken care of by your OS.
(3) It automatically breaks up data into packets for you.
(4) It is slower in functioning than UDP


(1) since, all the work is being done by your OS, so if there are bugs in your OS, then you will face many problems like problems in surfing and downloading contents from the net.
(2) TCP cannot be used for broadcast and multicast connections.


(1) Broadcast and multicast connections are available with UDP which is not the case with TCP.
(2) It does not restrict you to connection based communication model
(3) Much faster than TCP


(1) There are no guarantees with UDP. It is possible that a packet may not be delivered, or delivered twice, or delivered not in time.  
(2) you have to manually break the data into packets

Comments are always welcome :)


Hi everyone

I was trying to understand the meaning of 'protocol' and the use of TCP/IP with the help of our all-time friend Google. I thought I would write in a blog about the same to save my friends' time searching!

(Just as for most of us, this is my first blog too!)

From all my search on Google, I gathered that:

A protocol is a formal description of message formats and the rules that two or more machines must follow to exchange those messages.

For instance, if two people A & B want to communicate. Imagine the confusion and chaos if they start talking simultaneously. To avoid it, they must follow a set of rules while talking, as to who talks first and for how long etc. This common set of rules would be known as communication protocol for A & B.

Now, there are various protocols used in various types of networks.
TCP/IP is the native protocol of Internet.

These are two separate protocols.
-> TCP (Transmission Control Protocol) deals with the construction of data packets.
(A packet is a sequence of bytes and consists of a header and a body. The header describes the packet's destination and the body contains the data being transmitted.)
->IP routes them from machine to machine.

More technically, TCP provides the service of exchanging data reliably between two network hosts; on the other hand, IP handles addressing and routing messages across one or more networks.
So basically, TCP provides a communication service at an intermediate level between an application program and the Internet Protocol (IP).

-> Basic function of TCP

That is, when an application program desires to send a large chunk of data across the internet using IP, the data has to be broken into IP-sized pieces and then a series of IP requests have to be issued. Here, TCP comes to the rescue. Instead of issuing several requests, the software can issue a single request to TCP and let TCP handle the IP details.

-> Error detection during transfer of data packets

Now, due to network congestion or other unpredictable network behaviour, IP packets can be lost, duplicated or delivered out of order. TCP detects these problems, requests retransmission of lost packets, rearranges out of order packets and even helps reduce network congestion. Once the TCP receiver has finally reassembled a perfect copy of the original message, it passes it to the application program.

Thus, the basic function of the TCP layer is to abstract (recall the concept of Data hiding and abstraction we have studied in programming :D) application's communication from the underlying network details.

->TCP: Accurate delivery rather than timely delivery

TCP guarantees accurate delivery of a data stream from one host to another, i.e., without duplication or loss of data. But it does incur relatively long time delays, for example, while waiting for retransmission of lost messages.
Thus, though it ensures delivery of complete messages, it is not particularly suitable for real-time applications such as Voice over IP. (There are other protocols for such applications, like RTP - Real Transfer Protocol)


Suppose an HTML file has to transferred across the web. The TCP divides the data into segments and then, forwards them individually to the IP layer. Now, this layer encapsulates each segment into an IP packet, and adds a header containing the destination IP address. Note that even though each packet has the same destination address, they can be routed on different paths through the network. When the segments reach the destination computer, the TCP layer reassembles them and ensures that they are correctly ordered and error free, before streaming them into an application.

I hope this post will help you all!

Any suggestions and comments are always welcome! :)