Network Programming, TFRS, TCP, UDP,TFMCC

Embed Size (px)

Citation preview

  • 8/12/2019 Network Programming, TFRS, TCP, UDP,TFMCC

    1/11

    Network ProgrammingAssignment #01

    Name:Muhammad Shan Anwer MalikRegistration No:SP11-BCE-034Submitted to: Amber Madeeha ZebSubmission Date: 28th Feb 2014

  • 8/12/2019 Network Programming, TFRS, TCP, UDP,TFMCC

    2/11

    What is network Application?

    Answer:Network applications use a client-server architecture, where

    the client and server are two computers connected to the network. The

    server is programmed to provide some service to the client.

    The client is typically a desktop, laptop or portable device like an

    Apple iPhone. The server can be any of these, but is typically a

    computer in a data center.

    In most (though not all) network applications, the client computer

    runs a Web client program like Firefox or Internet Explorer, and the

    server runs a Web server program likeApacheor Internet Information

    Server. Shared data would be stored on the server or a computer it

    could access.

    Note that the user of a network application might be a computer, not a

    person. For example, a computer might query the server in a vendingmachine, checking to see if it was low on Doctor Pepper or Coke.

    Search engine companies like Google run client programs that

    constantly scan the Web, checking for new pages which can be indexed.

    Any application which makes use of network to do its functionalities

    is called network application. The network may be a small network or

    it may be a network of networks called the internet. Network

    application do their functionalities according to some protocols. A

    protocol is the special set of rules that end points in a

    telecommunication connection use when they communicate. Protocols

    specify interactions between the communicating entities.

    Two well known examples of network applications are:

    Skype:

    Skype is a software program of IM, it allows users to make telephone

    calls over the Internet to other Skype users free of charge and to

    landlines and cell phones for a fee. Additional features include

    instant messaging, file transfer, short message service, video

    conferencing and its ability to circumvent firewalls.

    Skype uses a proprietary Internet telephony (VoIP) network,it use TCP

    and UDP to communicate.

    Dropbox:

    Dropbox is a file hosting servicethat offers cloud storage, file

    synchronization, and clientsoftware.

    Dropbox uses SSL (for data transfers) and AES-256 for storage.

    http://en.wikipedia.org/wiki/File_hosting_servicehttp://en.wikipedia.org/wiki/Cloud_storagehttp://en.wikipedia.org/wiki/File_synchronizationhttp://en.wikipedia.org/wiki/File_synchronizationhttp://en.wikipedia.org/wiki/Client_(computing)http://en.wikipedia.org/wiki/Client_(computing)http://en.wikipedia.org/wiki/File_synchronizationhttp://en.wikipedia.org/wiki/File_synchronizationhttp://en.wikipedia.org/wiki/Cloud_storagehttp://en.wikipedia.org/wiki/File_hosting_service
  • 8/12/2019 Network Programming, TFRS, TCP, UDP,TFMCC

    3/11

    What are various protocols for development of network applications?

    Answer:

    First let ask ourselves a few questions.

    What is a protocol?

    A protocol is the special set of rules that end points in a

    telecommunication connection use when they communicate. Protocols

    specify interactions between the communicating entities.

    There are a lots of protocols for the development of network

    applications. Many of them are in the development stage like TFRC,

    TFMCC and some of them already a standard and is used by many network

    applications like TCP, VOIP, UDP, HTTP, FTP, IPv4, IPv6 etc. The ones

    which are very important in the world of socket programmingare TCP/IP

    and UDP/IP. The structures of these protocols are used almost

    everywhere in the world of socket programming and the ones which are

    becoming popular when it comes to socket programming these days are

    TFRCand TFMCC.

    Some of the very important protocols are mentioned below:

    IP: The Internet Protocol (IP) is the method or protocolby

    which datais sent from one computer to another on the Internet. Each

    computer (known as a host) on the Internet has at least oneIP

    addressthat uniquely identifies it from all other computers on the

    Internet.

    When you send or receive data (for example, an e-mail note or a Webpage), the message gets divided into little chunks called packets.

    Each of these packets contains both the sender's Internet address and

    the receiver's address.

    TCP: TCPis a connection oriented protocol which is used to reliably

    send data making use of the sequence numbers and acknowledgements to

    send and receive data between two network applications. TCP makes use

    of IP called the internet protocol to send and receive data. The

    sessions are established using the socket address which is composed of

    port number of individual applications and the IP address of the

    communicating devices. TCP make sure that the data units are

    transferred reliably while IP is makes sure that actual and desired

    receiver gets the data.

    For example, when an HTMLfile is sent to you from a Web server, the

    Transmission Control Protocol (TCP) program layer in that server

    divides the file into one or more packets, numbers the packets, and

    http://searchnetworking.techtarget.com/definition/protocolhttp://searchdatamanagement.techtarget.com/definition/datahttp://searchwindevelopment.techtarget.com/definition/Internethttp://searchcio-midmarket.techtarget.com/definition/hosthttp://searchwindevelopment.techtarget.com/definition/IP-addresshttp://searchwindevelopment.techtarget.com/definition/IP-addresshttp://searchsoa.techtarget.com/definition/HTMLhttp://whatis.techtarget.com/definition/serverhttp://whatis.techtarget.com/definition/serverhttp://searchsoa.techtarget.com/definition/HTMLhttp://searchwindevelopment.techtarget.com/definition/IP-addresshttp://searchwindevelopment.techtarget.com/definition/IP-addresshttp://searchcio-midmarket.techtarget.com/definition/hosthttp://searchwindevelopment.techtarget.com/definition/Internethttp://searchdatamanagement.techtarget.com/definition/datahttp://searchnetworking.techtarget.com/definition/protocol
  • 8/12/2019 Network Programming, TFRS, TCP, UDP,TFMCC

    4/11

    then forwards them individually to the IP program layer. Although each

    packet has the same destination IP address, it may get routed

    differently through the network. At the other end (the clientprogram

    in your computer), TCP reassembles the individual packets and waits

    until they have arrived to forward them to you as a single file.

    UDP: UDP or User Datagram Protocol is a connectionless non reliable

    protocol which is used usually used for the most Real Time

    applications. Like TCP,UDP is also very important in the world of

    socket programming which shows its importance for the development of

    network applications. UDPis faster than TCPbecause it adds less

    overheads as oppose to TCPwhich used sequence numbers and

    acknowledgements which slows down the speed of data transfer. It is

    mainly used for Real Time applications like online streaming, Voice

    over internet protocol etc. because in real time application even if

    you miss a few packets of data it does not make much of a problem. Forexample in a network application where a live streaming of a video is

    involved if one of the frame gets missed during the transmission it

    does not create any sort of a problem or headache for the person

    watching the live streaming.

    TFRC: TCP-Friendly Rate Control (TFRC) is a congestion

    controlmechanism designed for unicastflows operating in an Internet

    environment and competing with TCPtraffic. The goal is to compete

    fairly with TCP traffic on medium timescales, but to be much less

    variable than TCP on short timescales.

    TCP congestion controlworks by maintaining a windowof packets that

    have not yet been acknowledged. This window is increased by one packet

    every round trip timeif no packets have been lost, and is decreased

    by half if a packet loss is detected. Thus TCP's window (and hence

    throughput) is a function of the losses observed in the network and

    the round trip time experienced by the flow.

    The idea behind TFRC is to measure the loss probability and round trip

    time and to use these as the parameters to a model of TCP throughput.

    The expected throughput from this model is then used to directly drive

    the transmit rate of a TFRC flow.

    TFMCC: TFMCC is an equation-based multicast congestion control

    mechanism that extends the TCP-friendly TFRCprotocol from the unicast

    to the multicast domain. The key challenges in the design of TFMCC lie

    http://searchenterprisedesktop.techtarget.com/definition/clienthttp://en.wikipedia.org/wiki/Congestion_controlhttp://en.wikipedia.org/wiki/Congestion_controlhttp://en.wikipedia.org/wiki/Unicasthttp://en.wikipedia.org/wiki/Transmission_Control_Protocolhttp://en.wikipedia.org/wiki/Transmission_Control_Protocol#Congestion_controlhttp://en.wikipedia.org/wiki/Congestion_windowhttp://en.wikipedia.org/wiki/Acknowledgement_(data_networks)http://en.wikipedia.org/wiki/Round_trip_timehttp://www.icir.org/tfrchttp://www.icir.org/tfrchttp://en.wikipedia.org/wiki/Round_trip_timehttp://en.wikipedia.org/wiki/Acknowledgement_(data_networks)http://en.wikipedia.org/wiki/Congestion_windowhttp://en.wikipedia.org/wiki/Transmission_Control_Protocol#Congestion_controlhttp://en.wikipedia.org/wiki/Transmission_Control_Protocolhttp://en.wikipedia.org/wiki/Unicasthttp://en.wikipedia.org/wiki/Congestion_controlhttp://en.wikipedia.org/wiki/Congestion_controlhttp://searchenterprisedesktop.techtarget.com/definition/client
  • 8/12/2019 Network Programming, TFRS, TCP, UDP,TFMCC

    5/11

    in scalable round-trip time measurements, appropriate feedback

    suppression, and in ensuring that feedback delays in the control loop

    do not adversely affect fairness towards competing flows

    FTP:FTPor file transfer protocol is a commonly used protocol for

    exchanging files over any network that supports the TCP/IP protocol

    such as the Internet or an intranet. There are two computers involved

    in an FTP transfer: a server and a client. The FTP server, running FTP

    server software, listens on the network for connection requests from

    other computers. The client computer, running FTP client software,

    initiates a connection to the server. Once connected, the client can

    do a number of filemanipulation operations such as uploading files to

    the server, download files from the server, rename or delete files on

    the server and so on. Any software company or individual programmer is

    able to create FTP server or client software because the protocol is

    an open standard. Virtually every computer platform supports the FTP

    protocol. This allows any computer connected to a TCP/IP based network

    to manipulate files on another computer on that network regardless of

    which operating systems are involved if the computers permit FTP

    access.

    SSL: Another protocol used by network applications typically a Web

    Browser is SLL.The Secure Socket Layer (SSL) and Transport Layer

    Security (TLS) is the most widely deployed security protocol used

    today. It is essentially a protocol that provides a secure channel

    between two machines operating over the Internet or an internalnetwork. In todays Internet focused world,the SSL protocol is

    typically used when a web browser needs to securely connect to a web

    server over the inherently insecure Internet.

    HTTP: Short for HyperText Transfer Protocol, HTTP is a set of

    standards that allow users of the World Wide Web to exchange

    information found on web pages. When wanting to access any web page

    enter http:// in front of the web address, which tells the browser to

    communicate over HTTP. For example, the full URL for Computer Hope is

    http://www.google.com. Today's modern browsers no longer require HTTP

    in front of the URL since it is the default method of communication.

    However, it is still used in browsers because of the need to access

    other protocols such as FTP through the browser.

  • 8/12/2019 Network Programming, TFRS, TCP, UDP,TFMCC

    6/11

    SMTP:

    Mail delivery from a client application to the server, and from an

    originating server to the destination server, is handled by the Simple

    Mail Transfer Protocol (SMTP).

    The primary purpose of SMTP is to transfer email between mail servers.

    However, it is critical for email clients as well. To send email, the

    client sends the message to an outgoing mail server, which in turn

    contacts the destination mail server for delivery. For this reason, it

    is necessary to specify an SMTP server when configuring an email

    client.

    One important point to make about the SMTP protocol is that it does

    not require authentication. This allows anyone on the Internet to send

    email to anyone else or even to large groups of people. It is this

    characteristic of SMTP that makes junk email or spam possible. Modern

    SMTP servers attempt to minimize this behavior by allowing only known

    hosts access to the SMTP server. Those servers that do not impose such

    restrictions are called open relay servers.

    Telnet:

    Telnet is a user command and an underlying TCP/IPprotocolfor

    accessing remote computers. Through Telnet, an administrator or

    another user can accesssomeone else's computer remotely. On the

    Web, HTTPand FTP protocols allow you to request specific files from

    remote computers, but not to actually be logged on as a user of that

    computer. With Telnet, you log on as a regular user with whatever

    privileges you may have been granted to the

    specific applicationand dataon that computer.

    http://searchnetworking.techtarget.com/definition/TCP-IPhttp://searchnetworking.techtarget.com/definition/protocolhttp://whatis.techtarget.com/definition/accesshttp://searchwindevelopment.techtarget.com/definition/HTTPhttp://searchsoftwarequality.techtarget.com/definition/applicationhttp://searchdatamanagement.techtarget.com/definition/datahttp://searchdatamanagement.techtarget.com/definition/datahttp://searchsoftwarequality.techtarget.com/definition/applicationhttp://searchwindevelopment.techtarget.com/definition/HTTPhttp://whatis.techtarget.com/definition/accesshttp://searchnetworking.techtarget.com/definition/protocolhttp://searchnetworking.techtarget.com/definition/TCP-IP
  • 8/12/2019 Network Programming, TFRS, TCP, UDP,TFMCC

    7/11

    How the importance of network applications increase with the present

    trends in technologies?

    Life has been made simple and world has been made a pleasurable place

    by the advent of the networks and computers. We could not imagine a

    day without Internet.

    We are presently living in a world where technology changes many

    folds within a few days or we can easily say that trends in

    technologies gets changed in the blink of an eye.

    Internet Banking has changed the banking industry itself and it

    is no longer confined to the branches were one has to approach the

    bank in person, to withdraw cash or deposit a cheque or request a

    statement of accounts. It allows customers to conduct financial

    transactions on a secure way. Electronic Bill Payment and Fund

    transfer between Customers is made easier.

    Introduction of intelligent and high tech gadgets including

    mobile phones computers are putting their effect on the market of

    network applications. The mobility introduced in devices and the

    trends of cheap technology for everyone has poured technology in the

    pocket of every individual. In these circumstances it is difficult to

    find a person who does not have an idea of the importance of network

    applications.

    E-education is also known as e-learning and online education has

    created a revolution in education. In this competing world the

    students have to learn a lot. Everything cannot be taught by a teacheror in school. To face big challenges in life students take up extra

    learning which can be done thorough computers. Communication plays a

    pivotal role in our life. Communicating with the people overseas was a

    Herculean task before the arrival of computers. Today just by a click

    we can communicate directly with the people in any part of the globe.

    Computer today have become very user friendly even a 3 year old kid

    can operate it.

    Without network applications the communication between

    individuals is impossible, the communication using network

    applications plays the backbone role in most of the businesses aroundthe world. The network applications have become the part of our lives

    and can be considered as basic needs of humans these days. Take the

    example of apps like whatsapp, viber, skype, facebook app, gmail,

    google drive, dropbox, filezilla and the list goes on and on. A few

    apps just mentioned can simply explain the importance of network

    applications alone. The introduction of high speed internet has

  • 8/12/2019 Network Programming, TFRS, TCP, UDP,TFMCC

    8/11

    introduced new trends of streaming videos, songs etc. Downloading

    files have become quicker than going to the market and buying a DVD.

    Technologies become old within days by the introduction of new

    technologies. In recent past we used to buy floppy disks to get a

    small amount of space which was in KBs and now we have hard drives

    which are in sizes of tera, peta and sometimes exa bytes which are

    1/3rd of the sizes of the floppy disks. In the recent past we used to

    connect to the internet using dialup connections which were like

    54Kbps and now we can have download speeds in Giga bytes. Situations

    like this have made world a big market for the developers of network

    applications. There is no other field these days which has more

    business and job opportunities than network applications development.

    Often you will hear techno and even fresh graduates and students

    talking about the trends of becoming applications developer or web

    designer or networking expert. The trends have changed so quickly that

    the world is stunned. Internet through the use of differenttechnologies is the pioneer in the latest changes in the trends of

    technologies. Becoming a network application developer seems to be the

    best option and can be putted on the top of the list. Network

    applications plays such a vital role that our banks, educational

    institutes, individuals and even defense are making use of them for

    their benefits and progress.

  • 8/12/2019 Network Programming, TFRS, TCP, UDP,TFMCC

    9/11

    Explain the working of at least three different network applications.

    EMAIL:

    Working:Email is delivered using a client/server architecture. An

    email message is created using a mail client program. This program

    then sends the message to a server. The server then forwards the

    message to the recipient's email server, where the message is then

    supplied to the recipient's email client.

    To enable this process, a variety of standard network protocols allow

    different machines, often running different operating systems and

    using different email programs, to send and receive email.

    Mail delivery from a client application to the server, and from an

    originating server to the destination server, is handled by the Simple

    Mail Transfer Protocol (SMTP).

    The primary purpose of SMTP is to transfer email between mail servers.

    However, it is critical for email clients as well. To send email, the

    client sends the message to an outgoing mail server, which in turn

    contacts the destination mail server for delivery. For this reason, it

    is necessary to specify an SMTP server when configuring an email

    client.

    One important point to make about the SMTP protocol is that it does

    not require authentication. This allows anyone on the Internet to send

    email to anyone else or even to large groups of people. It is this

    characteristic of SMTP that makes junk email or spam possible. Modern

    SMTP servers attempt to minimize this behavior by allowing only known

    hosts access to the SMTP server. Those servers that do not impose such

    restrictions are called open relay servers.

    There are two primary protocols used by email client applications to

    retrieve email from mail servers: the Post Office Protocol (POP) and

    the Internet Message Access Protocol (IMAP).

  • 8/12/2019 Network Programming, TFRS, TCP, UDP,TFMCC

    10/11

    SKYPE: Skype, like many other VoIP (Voice over Internet Protocol)

    clients available, has changed the way we think about communication

    and keeping in touch with loved ones over great distances.

    Working: Skype used Voice over internet protocol which uses internet

    for its application. VOIP makes use of the SIP to make its messages in

    the form of packets. VOIP use of the same network which we use for

    email and web surfing to send the packets.

    VIOP utilizes the resources so efficiently to send text, voice, images

    and even likes videos in high quality.

    Computers or special hardware devices like Skype phones are used to

    send and receive message packets which are send over the internet

    making use of the IP. The voice signal which is analog gets samples,

    quantized and encoded into digital. The digital signal is then passed

    onto the compressor which compresses the signal so that it could be

    sent even using a slower connection.

    The digital signal is then derivated into small message parts so that

    they could be fixed in packets. Then the destination and source

    headers are putted onto the packets so that they could be sent over

    the internet.

    The receiving end must reconstruct the packets sequentially for ideal

    reproduction, which does not happen on most public networks, which are

    prone to congestions during peak hours. Latency and packet loss can

    render the receiving end to be unable to reconstruct the completeaudio stream resulting in blank audio space for short periods.

    Transfer of files:Transferring files by making the use of internet is

    another very important application of networks. In recent past we

    would only use networks to transfer files within a local network. But

    due to the evolution or introduction of high speed internet and file

    transfer protocols it is possible for us to send huge files over the

    internet

    Working:

    FTPor file transfer protocol is a commonly used protocol for

    exchanging files over any network that supports the TCP/IP protocol

    such as the Internet or an intranet. There are two computers involved

    in an FTP transfer: a server and a client. The FTP server, running FTP

    server software, listens on the network for connection requests from

    http://www.makeuseof.com/tags/skypehttp://www.makeuseof.com/tags/skype
  • 8/12/2019 Network Programming, TFRS, TCP, UDP,TFMCC

    11/11

    other computers. The client computer, running FTP client software,

    initiates a connection to the server. Once connected, the client can

    do a number of filemanipulation operations such as uploading files to

    the server, download files from the server, rename or delete files on

    the server and so on. Any software company or individual programmer is

    able to create FTP server or client software because the protocol isan open standard. Virtually every computer platform supports the FTP

    protocol. This allows any computer connected to a TCP/IP based network

    to manipulate files on another computer on that network regardless of

    which operating systems are involved if the computers permit FTP

    access.