Title: OSPF Open Shortest Path First
 1 OSPF (Open Shortest Path First)  RIP is based 
on Bellman-Ford algorithm (Distance vector 
routing protocol) - good for small systems - 
slow convergence  IETF worked on a successor -gt 
OSPF. -gt will become the main IGP in near 
future.
(cf) 1. distance vector routing - Each router 
updates its routing table based on distance 
vector that it receives from its neighbors (ex 
 Bellman-Ford) 2. link-state routing - each 
router tests the status of its links and sends 
the information to other routers throughout 
the autonomous system (ex  Dijkstra)  OSPF is 
based on link-state routing protocol.  Other 
two main features 1) type of service routing 
 -gt allows separate routes for each one 
separately 2) load balancing 
 2 BGP (Border Gateway Protocol)  BGP system 
exchanges network reachability information with 
other BGP systems -gt includes the full path of 
autonomous systems that traffic must transit to 
reach these net-works  BGP uses TCP Establish 
a TCP connection and then exchange the entire BGP 
routing table
- After receiving routing info from the 
neighbors, F examines them to see which is the 
best. FEG, FBCG, FDCG 
 3Multicasting - IGMP  Each multicast group has a 
unique multicast address (class D)
 host group  membership in a host group is 
dynamic  no restriction on  of hosts in a 
group  some multicast group addresses are 
assigned as well-known addresses by IANA -gt 
permanent host groups. 
 4 Mapping Multicast group addresses to Ethernet 
Addresses - Ethernet uses the low-order bit of 
the high-order byte to distinguish unicast 
address (0) from multicast addresses (1) - 
IANA owns an Ethernet address block, 00005e 
(high-order 24 bits) - IANA allocates half of 
this block for multicast addresses. -gt The 
first byte of any Ethernet address must be 01 to 
specify a multicast address -gt Ethernet 
addresses corresponding to IP multicasting are in 
the 01005e000000  01005e7fffff - The 
mapping places the low-order 23 bits of the 
multicast group ID into these 23 bits of the 
Ethernet address
- Since the upper 5 bits of the multicast group 
ID are ignored in the mapping, it is not unique 
32 different group IDs may map to each ethernet 
address - Since the set of addresses is large 
enough, the chances of two or more groups 
choosing addresses with all low-order 23 bits 
identical is very small. - IP software checks 
addresses on all incoming datagrams and discards 
any unwanted datagrams. 
 5 IGMP (Internet Group Management Protocol) - 
lets all systems on the physical network know 
which hosts currently belong to which multicast 
groups. - The information is required by the 
multicast router, so they know which multicast 
datagrams to forward onto which interface. - 
IGMP has a fixed-size message with no optional 
data. 
 6- A host sends IGMP report when the first process 
joins a group - A multicast router sends an IGMP 
query at regular intervals - A host responds to 
an IGMP query by sending IGMP report for each 
group that still contains at least one 
process. - Hosts that are members of multiple 
groups do not send multiple responses at the same 
time. - Hosts listen to responses from other 
hosts and suppress any of their responses that 
are unnecessary. -gt multicast routers only 
need to know whether at least one host on the 
network remains a member of a group - 
After a multicast router sends a IGMP request, 
all hosts assign a random delay to their 
response -gt when the host with smallest delay 
sends its response, other participating hosts 
receive a copy and do not send their 
responses. -gt Using these queries and reports, a 
multicast router keeps a table of which hosts 
have memberships of multicast groups.
- all host group address  244.0.0.1 -gt all 
the hosts and routers on a physical network -gt 
each host automatically joins this multicast 
group when it is initialized -gt membership in 
this group is never reported. - Multicasting is 
implemented by special multicast router. - 
Multicast routers use DVMRP to pass group 
membership info. among themselves. -gt they use 
the info. to establish routers so they can 
deliver a copy of a multicast datagram to every 
 member of the multicast group. - DVMRP uses 
IGMP message to carry information. 
 73. UDP (User Datagram Protocol)  provides an 
unreliable connectionless delivery service using 
IP to transport messages between machines  No 
acks, no ordering, no flow control  Many 
application programs that rely on UDP work well 
in a local environment(highly reliable, 
low-delay), but fail in dramatic ways when 
used in larger Internet.  Message Format
 - Source port  and destination port   16-bit 
UDP protocol port numbers used to demultiplex 
datagrams 
 among the processes waiting 
to receive them - Message length  count of 
bytes in the UDP datagram, including the UDP 
header and the user data. 
 min value  8 (header alone) - UDP 
checksum  optional (while with TCP, it is 
mandatory). -gt to allow implementations to 
operate with little computational overhead when 
using UDP across a highly reliable local 
network. - IP does not compute a checksum on 
the data portion -gt UDP checksum provides the 
only way to cover UDP header and data 
 8 UDP pseudo-header - To compute the checksum, 
UDP prepends a 12-byte pseudo-header -gt to 
let UDP double check that the data has arrived at 
the correct destination - The length of the UDP 
datagram can be an odd number of bytes, while the 
checksum algorithm adds 16-bit words 
(solution) Append a pad byte of 0 to the end - 
A pad byte and the pseudo-header are not 
transmitted, nor included in the length
- To verify the checksum, the receiver extracts 
the fields of pseudo-header from the IP header, 
reassemble them into the pseudo-header format, 
and recompute the checksum - Some port numbers 
called well-known port numbers are permanently 
assigned through-out the Internet. (ex  port 
69 for tftp) 
 94. TCP (Transmission Control Protocol)  TCP 
provides a connection-oriented, reliable, 
byte-stream service - connection-oriented  
establish a TCP connection with other before they 
can exchange data - reliable service 
1) maintains a timer, waiting for an ACK from the 
other end 2) resequences the data and then 
passes the received data in the correct order to 
the application 3) discards duplicate data 
 4) provides flow control - byte-stream 
service  Application programs send a data stream 
by repeatedly passing data bytes. -gt to make 
transfer efficient, implementations usually 
collect enough bytes to fill a reasonably large 
 datagram before transmitting it across an 
internet -gt S puts a stream of bytes into 
TCP and the same stream of bytes appears at D.  
TCP defines an end point to be a pair of integers 
(host, port) (ex) A connection from 128.10.2.3 
to 141.233.98.60 (128.10.2.3, 1184) and 
(141.233.98.60, 53) called socket pair
 -gt TCP identifies a connection by both 
endpoints -gt a given TCP port  can be shared 
by multiple connections on the same machine 
 10 Flow control - TCP views the data stream as a 
sequence of bytes that it divides into segments 
for transmission. - Each segment travels across 
an internet in a single IP datagram. - TCP uses 
a specialized sliding window mechanism for 
efficient transmission and flow control. - 
Sliding window mechanism operates at the byte 
level, not at the segment level - Bytes of the 
data stream are numbered sequentially, and S 
keeps three pointers associated with every 
connection.
- TCP allows the window size to vary over time - 
Each ACK, which specifies how many bytes have 
been received, contains a window advertisement 
that specifies how many additional bytes of 
data the receiver is prepared to accept. 1) 
increased window advertisement -gt S increases 
its sliding window size 2) decreased window 
advertisement -gt S decrease its sliding window 
size 
 11(No Transcript) 
 12- Sequence   first bytes of data in this 
segment. - ACK   (the sequence  of the last 
successfully received byte)  1 
valid only if the ACK flag is on - HLEN (Header 
Length)  length of the header in 32-bit words 
 -gt 
required because the length of the option field 
is variable - 6 flags URG  Urgent 
pointer field is valid ACK  Ack  field 
is valid PSH  The receiver should pass 
this data to the application ASAP (Push) 
RST  Reset the connection SYN  
Synchronize sequence s to initiate connection 
 FIN  S is finished sending data - Window 
size  TCP advertises how much data it is willing 
to accept every time it sends a segment by 
 specifying its buffer size in 
the window size field. -gt 
the  of bytes, starting with the one specified 
by the ACK  field - Checksum  covers TCP 
segment, the header and data - Urgent pointer  
accommodate out of band signaling 
 -gt allows S to specify data as urgent, 
meaning that the receiver should be notified of 
its arrival as 
quickly as possible, regardless of its position 
in the stream. -gt Valid 
only if the URG flag is set 
 -gt Urgent pointer points to the last byte of 
urgent data 
 13- option  Maximum Segment Size (MSS) option -gt 
(most common option) -gt specifies the 
maximum sized segment that the sender want to 
receive -gt when a connection is established, 
each end can announce its MSS. -gt if the two 
end points lie on the same physical network, TCP 
usually computes a MSS such that the 
resulting datagrams will match the network MTU 
 -gt If one end does not receive an MSS option 
from the other end, a default of 526 bytes is 
assumed  576 (default IP datagram size) 
- 20 (standard size of IP header) - 20 (standard 
size of TCP header) 1) Small MSS  low 
network utilization 2) Large MSS  good 
network utilization (problem) when large 
datagrams travel across a network with small MTU, 
IP must fragment them  Ideal MSS  occurs when 
IP datagrams carrying the segments are as large 
as possible without requiring 
 fragmentation anywhere along the path from S 
to D 
 14 Acknowledgments and Retransmission - A TCP ACK 
specifies the sequence  of the next byte that 
the receiver expects to receive cumulative ACK 
 15 Timeout and Retransmission - Every time it 
sends a segment, TCP starts a timer and waits for 
an ACK - If the timer expires before the 
segment has been Acked, TCP assumes that the 
segment was lost retransmit it - 
(Problems) 1) A segment may travel across 
various paths to D 2) the delay at each 
router depends on traffic -gt it is 
impossible to know a priori how quickly ACKs will 
return to S - (Solution)  adaptive 
retransmission algorithm 1) TCP record the 
time at which each segment is sent (A) and the 
time at which an ACK arrives for the 
segment (B). 2) TCP computes round trip 
sample or measured RTT (M)  B - A 3) when it 
obtains a measured RTT (M), TCP adjust its RTT
- when it sends a segment, TCP computes a timeout 
value as a function of the current RTT 
 16- Jacobsons approach  calculating Timeout based 
on both the mean and variance provides much 
better 
response to wide fluctuations in the RTT than 
just calculating the timeout as a 
 constant multiple of the 
mean.
 Karns Algorithm - A segment is transmitted 
timer expires Retransmission an ACK arrives Q  
Is the ACK for the original transmission or the 
second? retransmission ambiguity problem. A  
Neither - If timer expires and causes a 
retransmission, TCP increases the timeout  
new_timeout  ? x timeout (typically, ?  2) 
-gt timer backoff strategy - when computing the 
RTT estimate, ignore samples that correspond to 
retransmitted segments, but use a back off 
strategy, and retain the value for subsegment 
segments until a valid sample is obtained -gt 
Karns Algorithm 
 17 TCP congestion control - detecting congestion 
 timeout caused by a lost packet - cause of 
packet loss  i) unreliable transmission media 
 ii) congested 
router -gt packet loss caused by 
transmission media is very rare -gt Most 
timeouts are caused by congested router 
-gt TCP assumes that timeouts are caused by 
congestion - To control congestion, TCP 
maintains congestion window - At any time, TCP 
acts as if the window size is 
allowed_window min (receiver_advertisement, 
congestion_window) - In the steady state 
(non-congestion state)  congestion_window  
receiver_advertisement - when a new 
connection is established, the congestion window 
is initialized to one segment. (i.e., the 
segment size announced by the other end) 1) 
Each time an ACK is received before the timer 
expires, the congestion window is increased by 
one segment -gt slow start 2) S 
starts by transmitting one segment and waiting 
for its ACK -gt if received, congestion window is 
 incremented from one to two -gt two 
segments can be sent -gt if each of these two 
segment is acknowledged -gt the congestion 
window increased to four. ..... 3) congestion 
window keeps growing exponentially until either a 
timeout occurs or receiver_advertisement 
is reached. - when a timeout occurs (i.e., 
congestion occurs), one-half of current window 
size is saved in threshold, and congestion 
window is set to one segment - Slow start is 
done while congestion_window threshold. - From 
the point (congestion_window  threshold) on, 
successful transmissions grow the congestion 
window linearly increase congestion by one 
only if all segments in the congestion window 
have been acknowledged. 
 18(No Transcript) 
 19 Establishing a TCP connection -gt three-way 
handshake
- Each machine chooses an initial sequence  at 
random
 Closing a TCP connection 
 20 Push operation - TCP is free to divide data 
stream into segments for transmission - TCP can 
accumulate enough bytes in a buffer to make 
segments reasonably long, reducing high 
overhead that occurs when segments contain a few 
data bytes. - To accommodate interactive users, 
TCP provides a push operation that an application 
can use to force delivery of bytes currently 
in the buffer without waiting for the buffer to 
fill (PSH flag)
The END