CS422 ClassNotes

Oct.10 - Oct. 17                                                                                                                               by Qian Gong

 

Delay and Throughput

n      Delay causes: (seconds)

v     Propagation Delay (Network Media)

v     Switching/Routing Delay (Router Hardware)

v     Queuing delay – Time that the packet stays in buffer waiting for transmission

v     Length of the network link.

 

n      Throughput

v     Given by network bandwidth.

 

n      Relationship between delay and network utilization

v     Network utilization --percentage of time network is used.

 

n      When network is idle:

v     Network Utilization =    0 %

v     Queuing Delay        =     0

 

n      When the network is running at 100% capacity (full capacity)

v     Network Utilization = 100 %

v     Queuing Delay        = infinitive

v     Example:    A router connects to two networks. One is 10Mbps (max), the other one is 20 Mbps.

 

 

 

 

 


If the traffic that R receives N2 into N1 is 11Mbps(> 10Mbps), The queue of R will grow until it overflows and packets are discarded. This situation is called “ Network Congestion”.

 

In between:

0 < network usage < 100

0 < queuing delay < infinitive

                       

Do à Minimum Delay (i.e. Propagation & Routing Delay):  (Queuing Delay = 0)

U   à Utilization of Network(between 0 and 1 , i.e. between 0% and 100%)

D   à Total Delay

 

D = Do/ (100 – U)

Consequence: Any network that operates with utilization to 100% of capacity is doomed. 

Solution: Increase bandwidth so the network usage is always close to 0.

 

 

                   

Delay throughput Product

 

 

            Delay – Time it takes for a bit to cross the network (sec)

            Throughput – Number of bits per second, crossing the network.  (bit/sec)

            Delay  × Throughput – Number of bits in transit in the network. (bit)

 

 

Networking Protocols

 

A protocol is:

-- An agreement to allow communication between different computers.

-- A protocol specifies

ü      Formats of message

ü      Rules of exchange

ü      Handling problems

 

n      It is common to divide a network communication problem into different protocols.

n      Each protocol addresses a part of the problem.

n      This group of protocols is known as protocol suite or sanity of protocols.

n      Protocols address a different layer of the problem.

 

 

ISO-7 Network Layer Reference Model

 

Invented for protocol designers (7 layers)

.

Application

--Individual Application Program

Presentation

--How data is presented

Session

--Login and Passwords

Transport

--Reliability

Network

--Packet Forwarding

Data Link

--Hardwork Frame/packet Format

Physical

--Underlying hardware

 

n      This design is outdated. It was created when networking was used to connect terminals to computers.

n      It does not include the “Internet “ layer that allows networking using different network technologies.

 

 

 

 

Layering with TCP/IP Protocols ( 5 layers)

 

 

Application

--Application Program

e.g. HTTP/Telnet/ FTTP/ MTP/DNS

Transport

--Application to Application

e.g. TCP/UDP

Internet

--Forwarding across Internet

  (Hide network hardware)

e.g. IP

Network Interface

--Network Interface hardware format

e.g. Ethernet , serial line,

        token ring, ATM

Physical

--Basic Network Hardware

 

 

Notes Regarding Lab4:

 

Use realpath(path) to get the path without  “..” or symbolic links and make sure that file requested is inside http-root-dir.

 

Another option is to make sure that <document> does not contain “..” in the request.

 

For cgi-bin programs you need to fork another process.

There are 2 semantics for fork ( ):

1)      If you use Solaris threads (thr_create), fork creates a new process with a copy of all the threads of parent process. What we would like is to create a new process with only one thread, the thread calling fork( ),  to get this semantics use fork1( ).

à create a new process with only the caller thread.

2)      If you use pthread (pthread_create), then fork will always creak a child process with only one thread (the caller thread) like using fork1( ).