Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
25 views3 pages

Recap: Networking Choices

The document discusses computer networking concepts such as network protocols, addressing, routing, fragmentation, and TCP. It covers issues like reliable delivery, sequencing, flow control, and congestion control that networking protocols aim to solve.

Uploaded by

hoang.van.tuan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views3 pages

Recap: Networking Choices

The document discusses computer networking concepts such as network protocols, addressing, routing, fragmentation, and TCP. It covers issues like reliable delivery, sequencing, flow control, and congestion control that networking protocols aim to solve.

Uploaded by

hoang.van.tuan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Recap

n Networking choices:
n Broadcast network
Point-to-point networks
Network Protocols
n

n Networking issues:
n Composing networks
n Routing: name, address, route
Arvind Krishnamurthy n Route table computation

Spring 2001

Issues (Problems to solve) Issues (contd.)


n Link transmission: how do you get a packet of data from one machine n Fragmentation & reassembly
to another machine “connected” to it
n Flow control
n Routing: from one arbitrary place to another arbitrary place (fastest n Sender generating data faster than the receiver can handle
path, how do you deal with machines going down) n Feedback required from receiver to sender

n Naming: mapping names to network addresses n Congestion control


n Related to flow control; similar in many ways
n Multiplexing (how do you share resources, protocols) n There is more than the sender & receiver
n Problem gets rediscovered every once in a while!
n Reliable delivery (cannot guarantee that every packet will be delivered)
[ack, timeout, retransmit] n Presentation
n Duplicate packets n Endian-ness, floating point format
n Sequencing (process packets in the same order as it was sent; one
approach is to have only packet outstanding) n Security (authentication)

Solution: Layered Protocols Simple File Transfer


n Collection of protocols n Copy file to remote machine
n Stacked together Send( myname,
destname,
n Each solves one of the problems hostname )
name, userid
ok

block1
ack
n Protocol has three interfaces: Send( packet,
n Provides service to higher levels of the protocol stack hostname )
block2 Recv( hostname,
n Depends on some lower transport protocol
ack buffer )
n Has a peer-to-peer interface

1
Internet Protocol (IP) Addressing & Routing
n Datagram protocol (as opposed to stream protocol) n Address : two components:
n No sequencing n Network #
Host #
Stateless
n
n
n Need to fit into 32 bits
n Unreliable
n Addresses imply an unique host
n Host-to-host (not program-to-program)
n Gateways/routers have more than one address

n IP Functions:
Addressing and routing (not naming)
Routing: maintains a map of address to:
n
n
n Does not know about names
n Interface
n Understands addresses n Local address of the next hop
n Uses route information computed by some other entity n Does forwarding
n Fragmentation (controversial functionality) n Does not know the entire state of the network

Fragmentation “Time-to-live”
n If a network has a small packet size, two approaches: n Field on an IP packet header:
n Transparent approach at the network level n 8 bit header (255 secs)
n IP fragments: n Every router/gateway forwards a packet, it subtracts at least 1 tick
n Packet stays fragmented till it reaches destination n When it gets to zero, packet is trashed
n Reassembled at destination n Prevents packets from roaming around for ever
n Makes it not stateless! n Cannot reuse datagram identifiers for a while
n Destination needs to wait for all the fragments to dribble in
n IP packet headers are variable length:
n Keeps track of a partial datagram, and map of useful parts n Route that a packet takes can be recorded
Packet needs to have a datagram identifier, position, length
n
n Source routing: specify the route from the source
n IP approach: n IP limits:
Disadvantage: results in overhead for later big-packet networks
TTL limits system size?
n
n
Advantage: good for small-big-small networks
32 bits of address
n
n
n Disadvantage: no partial retransmission
n Reliability: requires to get to destination in one shot (no store and
n Disadvantage: if missing a fragment would be nice to throw away forward)
other fragments
n Speed is related to TTL (255), ID (16 bits), max. packet size (64KB)

TCP Overall Features


n Connection oriented n Reliable
Sequence numbers (per byte basis)
End-to-end reliable
n
n open n Acknowledgements
Flow controlled close
n n Timeout/retransmit
write
push n Flow control
read n “sliding window protocol”
n Purpose: pipeline communication through overlap

n Multiplexing
n Several connections to be open (sockets: host, port number)

Send packet n Connection-based: state kept at both ends


Recv packet
n Out of band data: “urgent”

2
Sequence Space Interesting Events
n Sender sequence space divided into: n New data from user:
n Sent and acknowledged n Buffer
n Sent and not acknowledged n Send if “lots” of data and in window (or push or urgent)
n Not sent and “In-window”: promise of buffer space on receiver
n Not sent and not inside the window n Data (segment) arrives at the receiver:
n Data TCP has not even seen yet (not received from user) n Check sequence number
n Receiver sequence space divided into: n Buffer data if new data, else throw away duplicates
n Data given to the user (not TCP’s responsibility any more) n Send an acknowledgement by sending back sequence numbers
n Data that has been acknowledged but not given to user n Acknowledgement sequence space should be contiguous

n Data not acknowledged n Might result in a “bunched acknowledgement”

n Rest of the window n Give data to user

Other Issues Connections


n When to retransmit? n Setup and teardown is always tricky
n No good fixed time! n Requires three-way handshakes
Must compute on the fly
n
n Setup:
n Keep a running weighted average
n Open request packet (SYN, initial sequence number)
n Give more weight to recent measurements
n Acknowledgement (SYN, own sequence number, ack number)
n Acknowledgement of the acknowledgement
n Window management? n SYN occupies 1 byte of sequence space
n Windows can decay
n Lots of scenarios:
n Receiver: only send large increments
n What if packets get lost?
n Sender: wait for large windows
n What if machines go up and down?
n Cannot reuse sequence number if there are some old live data

You might also like