This document summarizes key topics related to TCP friendliness, congestion control, DCCP, NATs, and STUN. It discusses how TCP dynamically adapts its rate in response to congestion using AIMD. It then covers Chiu-Jain phase plots and how TCP responds to loss by cutting its congestion window. The document analyzes a simple TCP model and derives its goodput equation. It discusses the importance of protocols being "TCP friendly" and introduces DCCP as a connection-oriented protocol providing congestion control for unreliable datagrams. The remainder summarizes Network Address Translation (NAT), including types of NATs and problems they cause. It introduces STUN for determining public IP/port behind
Slides supporting the "Computer Networking: Principles, Protocols and Practice" ebook. The slides can be freely reused to teach an undergraduate computer networking class using the open-source ebook.
Slides supporting the "Computer Networking: Principles, Protocols and Practice" ebook. The slides can be freely reused to teach an undergraduate computer networking class using the open-source ebook.
A short but packed course on TCP Dynamic Behavior. It starts by explaining TCP from scratch so the dynamic parts can be understood. Then it dives deep into how TCP behaves in real IP networks in the face of packet losses, delays and other phenomena.
TCP & UDP Streaming Comparison and a Study on DCCP & SCTP ProtocolsPeter SHIN
As a graduate student work, I have compared the performance between TCP and UDP media streaming with empirical results. Also, I have researched on different attempts on UDP to be more reliable, but why its progress has not been as fast as possible
XPDS13: On Paravirualizing TCP - Congestion Control on Xen VMs - Luwei Cheng,...The Linux Foundation
While datacenters are increasingly adopting VMs to provide elastic cloud services, they still rely on traditional TCP for congestion control. In this talk, I will first show that VM scheduling delays can heavily contaminate RTTs sensed by VM senders, preventing TCP from correctly learning the physical network condition. Focusing on the incast problem, which is commonly seen in large-scale distributed data processing such as MapReduce and web search, I find that the solutions that have been developed for *physical* clusters fall short in a Xen *virtual* cluster. Second, I will provide a concrete understanding of the problem, and reveal that the situations that when the sending VM is preempted versus when the receiving VM is preempted, are different. Third, I will introduce my recent attempts on paravirtualizing TCP to overcome the negative effect caused by VM scheduling delays.
A short but packed course on TCP Dynamic Behavior. It starts by explaining TCP from scratch so the dynamic parts can be understood. Then it dives deep into how TCP behaves in real IP networks in the face of packet losses, delays and other phenomena.
TCP & UDP Streaming Comparison and a Study on DCCP & SCTP ProtocolsPeter SHIN
As a graduate student work, I have compared the performance between TCP and UDP media streaming with empirical results. Also, I have researched on different attempts on UDP to be more reliable, but why its progress has not been as fast as possible
XPDS13: On Paravirualizing TCP - Congestion Control on Xen VMs - Luwei Cheng,...The Linux Foundation
While datacenters are increasingly adopting VMs to provide elastic cloud services, they still rely on traditional TCP for congestion control. In this talk, I will first show that VM scheduling delays can heavily contaminate RTTs sensed by VM senders, preventing TCP from correctly learning the physical network condition. Focusing on the incast problem, which is commonly seen in large-scale distributed data processing such as MapReduce and web search, I find that the solutions that have been developed for *physical* clusters fall short in a Xen *virtual* cluster. Second, I will provide a concrete understanding of the problem, and reveal that the situations that when the sending VM is preempted versus when the receiving VM is preempted, are different. Third, I will introduce my recent attempts on paravirtualizing TCP to overcome the negative effect caused by VM scheduling delays.
This presentation outlines the core functions of TCP - Transmission Control Protocol.
These comprise TCP Connection Control, TCP Flow Control, TCP Error Control, TCP Congestion Control, TCP Options and TCP Timers.
TCP/IP is the Internet core protocol that provides reliable, connection-oriented and stream-based communication service. Most of Internet traffic is carried in TCP connections, so scalability and reliability are crucial for a stable network on a global scale.
Slides supporting the "Computer Networking: Principles, Protocols and Practice" ebook. The slides can be freely reused to teach an undergraduate computer networking class using the open-source ebook.
transport protocols,unreliable message delivery service,goals for todays lecture,role of transport layer,internet transport protocols,sequence numbers,conclusion
Instructions for Submissions thorugh G- Classroom.pptxJheel Barad
This presentation provides a briefing on how to upload submissions and documents in Google Classroom. It was prepared as part of an orientation for new Sainik School in-service teacher trainees. As a training officer, my goal is to ensure that you are comfortable and proficient with this essential tool for managing assignments and fostering student engagement.
Ethnobotany and Ethnopharmacology:
Ethnobotany in herbal drug evaluation,
Impact of Ethnobotany in traditional medicine,
New development in herbals,
Bio-prospecting tools for drug discovery,
Role of Ethnopharmacology in drug evaluation,
Reverse Pharmacology.
The Roman Empire A Historical Colossus.pdfkaushalkr1407
The Roman Empire, a vast and enduring power, stands as one of history's most remarkable civilizations, leaving an indelible imprint on the world. It emerged from the Roman Republic, transitioning into an imperial powerhouse under the leadership of Augustus Caesar in 27 BCE. This transformation marked the beginning of an era defined by unprecedented territorial expansion, architectural marvels, and profound cultural influence.
The empire's roots lie in the city of Rome, founded, according to legend, by Romulus in 753 BCE. Over centuries, Rome evolved from a small settlement to a formidable republic, characterized by a complex political system with elected officials and checks on power. However, internal strife, class conflicts, and military ambitions paved the way for the end of the Republic. Julius Caesar’s dictatorship and subsequent assassination in 44 BCE created a power vacuum, leading to a civil war. Octavian, later Augustus, emerged victorious, heralding the Roman Empire’s birth.
Under Augustus, the empire experienced the Pax Romana, a 200-year period of relative peace and stability. Augustus reformed the military, established efficient administrative systems, and initiated grand construction projects. The empire's borders expanded, encompassing territories from Britain to Egypt and from Spain to the Euphrates. Roman legions, renowned for their discipline and engineering prowess, secured and maintained these vast territories, building roads, fortifications, and cities that facilitated control and integration.
The Roman Empire’s society was hierarchical, with a rigid class system. At the top were the patricians, wealthy elites who held significant political power. Below them were the plebeians, free citizens with limited political influence, and the vast numbers of slaves who formed the backbone of the economy. The family unit was central, governed by the paterfamilias, the male head who held absolute authority.
Culturally, the Romans were eclectic, absorbing and adapting elements from the civilizations they encountered, particularly the Greeks. Roman art, literature, and philosophy reflected this synthesis, creating a rich cultural tapestry. Latin, the Roman language, became the lingua franca of the Western world, influencing numerous modern languages.
Roman architecture and engineering achievements were monumental. They perfected the arch, vault, and dome, constructing enduring structures like the Colosseum, Pantheon, and aqueducts. These engineering marvels not only showcased Roman ingenuity but also served practical purposes, from public entertainment to water supply.
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptxEduSkills OECD
Andreas Schleicher presents at the OECD webinar ‘Digital devices in schools: detrimental distraction or secret to success?’ on 27 May 2024. The presentation was based on findings from PISA 2022 results and the webinar helped launch the PISA in Focus ‘Managing screen time: How to protect and equip students against distraction’ https://www.oecd-ilibrary.org/education/managing-screen-time_7c225af4-en and the OECD Education Policy Perspective ‘Students, digital devices and success’ can be found here - https://oe.cd/il/5yV
Operation “Blue Star” is the only event in the history of Independent India where the state went into war with its own people. Even after about 40 years it is not clear if it was culmination of states anger over people of the region, a political game of power or start of dictatorial chapter in the democratic setup.
The people of Punjab felt alienated from main stream due to denial of their just demands during a long democratic struggle since independence. As it happen all over the word, it led to militant struggle with great loss of lives of military, police and civilian personnel. Killing of Indira Gandhi and massacre of innocent Sikhs in Delhi and other India cities was also associated with this movement.
2024.06.01 Introducing a competency framework for languag learning materials ...Sandy Millin
http://sandymillin.wordpress.com/iateflwebinar2024
Published classroom materials form the basis of syllabuses, drive teacher professional development, and have a potentially huge influence on learners, teachers and education systems. All teachers also create their own materials, whether a few sentences on a blackboard, a highly-structured fully-realised online course, or anything in between. Despite this, the knowledge and skills needed to create effective language learning materials are rarely part of teacher training, and are mostly learnt by trial and error.
Knowledge and skills frameworks, generally called competency frameworks, for ELT teachers, trainers and managers have existed for a few years now. However, until I created one for my MA dissertation, there wasn’t one drawing together what we need to know and do to be able to effectively produce language learning materials.
This webinar will introduce you to my framework, highlighting the key competencies I identified from my research. It will also show how anybody involved in language teaching (any language, not just English!), teacher training, managing schools or developing language learning materials can benefit from using the framework.
The Indian economy is classified into different sectors to simplify the analysis and understanding of economic activities. For Class 10, it's essential to grasp the sectors of the Indian economy, understand their characteristics, and recognize their importance. This guide will provide detailed notes on the Sectors of the Indian Economy Class 10, using specific long-tail keywords to enhance comprehension.
For more information, visit-www.vavaclasses.com
3. Congestion Control
TCP dynamically adapts its rate in response to
congestion
AIMD causes flows to converge to fair goodput
But how do losses (e.g., bit errors) affect goodput?
What about UDP?
4. Chiu Jain Phase Plots
Flow A rate (bps)
Flow B rate (bps)
Fair
A=B
Efficient
A+B=C
overload
underload
t1
t2
t3
t4
t5
t6
5. Responding to Loss
Set threshold to cwnd
2
On timeout
- Set cwnd to 1
- Causes TCP to enter slow start
On triple duplicate ACK (Reno)
- Set cwnd to cwnd
2
- Retransmit missing segment
- Causes TCP to stay in congestion avoidance
6. Analyzing TCP Simply
Assume all segments are MSS long
Assume a packet loss rate p
Assume a constant RTT
Assume p is small (no timeouts)
7. Analysis
Window size W cuts to W
2 after a loss
Grows to W after W
2 RTTs
Goodput = 3
4 W MTU 1
RTT
8. Window Size
p = 1
(W
2 +(W
2 +1)+:::+W)
p 1
3
8W2
W
q
8
3p
Goodput = 3
4
q
8
3p MTU 1
RTT
Goodput = 1:22MTU
p
p
RTT
Constant factor changes based on delayed acks,
etc.
9. TCP Friendliness
Don’t want other protocols to disrupt TCP
UDP happily shuts down TCP flows
“TCP friendliness:” obeying TCP congestion
control as per prior goodput equation
- Does not imply acting like TCP
- E.g., does not require abrupt window changes
10.
11. ledbat WG
“The LEDBAT WG is chartered to standardize a
congestion control mechanism that should saturate
the bottleneck, maintain low delay, and yield to
standard TCP.”
TCP-friendliness is insufficient for modern P2P
applications
- Flow fairness, not application fairness
- TCP fills queues
Elastic workloads vs. inelastic workloads
15. Sequence Numbers
Every DCCP packet uses a new sequence number
- Data
- Acknowledgements
- Control traffic
Acknowledgements are for last packet received
- Not cumulative acknowledgements
- Does not succinctly describe connection history
- Options can give packet vectors
16. Synchronization
DCCP uses sequence number windows to protect
from attacks
Large bursts of losses cause packets to fall past
windows
Need to resynchronize
20. Congestion Control
Defines Congestion Control IDs (CCIDs)
Negotiated with change/confirm L/R options
Each half-connection can have different
congestion control
CCID 2: TCP congestion control (AIMD) (RFC
4941)
CCID 3: TCP-friendly congestion control (RFC
4942)
21. CCID 2
Uses TCP congestion control
- Maintains a cwnd, slow-start, etc.
Adds congestion control to acks
- Sender specifies an AckRatio, R
- Ratio of data to ack packets (TCP with delayed ACKs is 2)
- On detecting ack losses, double R
- After cwnd
R2R lossless congestion windows, decrement R
22. CCID 3
Uses TCP-friendly congestion control
Uses a sending rate, rather than a congestion
window
Receiver sends feedback once per RTT, reporting
loss rate
If sender hears no feedback, halves sending rate
Security issue with loss rate reporting: report loss
intervals, rather than just a loss rate, verifiable
with ECN nonces
23. DCCP Today
Numerous implementations
IETF Standards Track
Well suited to VoIP, Internet Gaming, etc.
Sees very little use
27. Motivations and Complications
There are only 232 IP addresses
Firewalls for security
Breaks end-to-end (node does not know its
external IP)
Node might not even know if it’s behind a NAT
NAT needs to be able to dynamically assign
mappings
28. How a NAT Works
Maps between global and local (IP,port) pairs
Requires knowledge of transport packet format
UDP datagram, TCP SYN
- Can shut down TCP mapping on FIN+ACK
- UDP requires timeouts ( 2 minutes, unless IANA says
otherwise)
RFC 4787/BCP 127 defines recommended
behaviors
29. NAT Example, Step 1
NAT
(128.34.22.8)
Client A
(10.1.1.18)
Server
(18.181.0.31)
Client B
(10.1.1.9)
30. NAT Example, Step 2
NAT
(128.34.22.8)
Client A
(10.1.1.18)
Server
(18.181.0.31)
10.1.1.18
18.181.0.31
4512 80
Client B
(10.1.1.9)
Client A tries to open
a connection to Server
port 80 from port 4512
31. NAT Example, Step 3
NAT
(128.34.22.8)
Client A
(10.1.1.18)
Server
(18.181.0.31)
Client B
(10.1.1.9)
NAT rewrites the source
address and port so it
seems it is the source
128.34.22.8
18.181.0.31
6641 80
10.1.1.18
18.181.0.31
4512 80
32. NAT Example, Step 4
NAT
(128.34.22.8)
Client A
(10.1.1.18)
Server
(18.181.0.31)
Client B
(10.1.1.9)
NAT also creates a mapping
so it can transform future
packets correctly
18.181.0.31
10.1.1.18
4512
80
128.34.22.8
6641
33. NAT Example, Step 5
NAT
(128.34.22.8)
Client A
(10.1.1.18)
Server
(18.181.0.31)
18.181.0.31
Client B
(10.1.1.9)
Server responds to SYN
with SYN+ACK and NAT
rewrites it
18.181.0.31
128.34.22.8
80 6641
10.1.1.18
80 4512
18.181.0.31
10.1.1.18
4512
80
128.34.22.8
6641
34. NAT Example, Step 6
NAT
(128.34.22.8)
Client A
(10.1.1.18)
Server
(18.181.0.31)
18.181.0.31
Client B
(10.1.1.9)
Client B can also open
a connection, and the NAT
creates a mapping for it too
18.181.0.31
128.34.22.8
80 4050
10.1.1.19
80 9967
18.181.0.31
10.1.1.19
9967
80
128.34.22.8
4050
35. NAT Example, Step 7
Client A
(10.1.1.18)
Server
(18.181.0.31)
In the case of TCP, NAT
can discard the mapping
on close or RST
RST RST
NAT
(128.34.22.8)
18.181.0.31
Client B
(10.1.1.9)
18.181.0.31
128.34.22.8
80 6641
10.1.1.18
80 4512
18.181.0.31
10.1.1.18
4512
80
128.34.22.8
6641
36. Types of NAT (RFC 3849)
Full Cone: no ingress filter (single local-external
mapping)
Restricted Cone: ingress filter on address
Port Restricted: ingress filter on address/port
Symmetric: different mappings for different
external destinations
Teminology is imperfect (static port mappings,
etc.)
37. NAT Problems
Incoming TCP connections
E.g., Skype
clients
super
nodes
bootstrap
call super node
relay
38. TCP Through NATs
Server socket doesn’t initiate traffic: NAT can’t set
up mapping
Rendezvous servers (as in Skype)
Connection reversal through rendezvous if only
one is behind a NAT (rendezvous server asks
un-NAT node to open a port so NAT node can
connect)
40. More NAT Problems
Port mapping: 0-1023 should map to 0-1023
Port parity: even port!even port, odd port!odd
port (RFC 3550: RTP uses even, RTCP uses odd))
Hairpinning: packet from inside NAT can send
packets to external (NAT) address and have
portmap work
41. RFC 4787 and Hairpinning
“NAT UDP Unicast Requirements”
- F. Audet and C. Jennings (guest lecture last year)
More formally, a NAT that supports hairpinning forwards packets
originating from an internal address, X1:x1, destined for an external
address X2':x2' that has an active mapping to an internal address
X2:x2, back to that internal address, X2:x2. Note that typically X1'
is the same as X2'.
Furthermore, the NAT may present the hairpinned packet with either an
internal (X1:x1) or an external (X1':x1') source IP address and port.
Therefore, the hairpinning NAT behavior can be either External
source IP address and port or Internal source IP address and port.
Internal source IP address and port may cause problems by confusing
implementations that expect an external IP address and port.
42. Example confusion
Two nodes (A, B) share a switch behind a NAT
A sends TCP SYN to an external address for B
B responds with SYN+ACK
What can happen if NAT did not rewrite A’s SYN
to have an external address and port? Will B’s
packet traverse the NAT?
44. STUN (RFC 3849)
“Simple Traversal of User Datagram Protocol
(UDP) Through Network Address Translators
(NATs)”
Enables a node to
- Determine if it is behind a NAT, and if so, what kind
- Obtain a public IP address/port pair
Client-server protocol, requires no changes to
NATs
STUN server coordinates
45. STUN Binding Requests
Node sends BR to STUN server
STUN sends a response that has the address and
port it sees
- If different than node’s local address and port, it’s behind a
NAT
Node can probe to see what kind of NAT
- Ask STUN server to respond from different address: no
response, address restricted; different response, symmetric
- Ask STUN server to respond from different port: no
response, port restricted
When does STUN not work?
46. NAT Hole-Punching
STUN doesn’t work when
- A or B are behind symmetric NAT
- A and B are behind same NAT without hairpinning
- What about restricted cone, port-restricted NATs?
Parallel approaches
- A and B report their local IP address to server Sx
- Server tells the other the address/port pair (L;G)
- A tries to send UDP packets to (LB;GB) using LA
- B tries to send UDP packets to (LA;GA) using LB
47. NAT Hole-Punching Example
Client A
(10.0.0.101)
NAT
(76.18.117.20)
Client B
(10.1.1.9)
Server
(18.181.0.31)
NAT
(128.34.22.8)
48. NAT Hole-Punching Example
1. Request
connection to B
Client A
(10.0.0.101)
NAT
(76.18.117.20)
Client B
(10.1.1.9)
Server
(18.181.0.31)
NAT
(128.34.22.8)
49. NAT Hole-Punching Example
Client A
(10.0.0.101)
Server
(18.181.0.31)
2a. S sends LB
and GB to A
2b. S sends LA
and GA to B
NAT
(76.18.117.20)
Client B
(10.1.1.9)
NAT
(128.34.22.8)
50. NAT Hole-Punching Example
Client A
(10.0.0.101)
Server
(18.181.0.31)
3a. A sends to
LB and GB
3b. B sends to
LA and GA
NAT
(76.18.117.20)
Client B
(10.1.1.9)
NAT
(128.34.22.8)
51. NAT Hole-Punching Example
Client A
(10.0.0.101)
Client B
(10.1.1.9)
Server
(18.181.0.31)
NAT
(76.18.117.20)
NAT
(128.34.22.8)
4. Session A-B
established
52. Multiple NAT Layers
Common for consumer Internet: ISP has internal
NAT, end user places another NAT
Requires hairpinning at ISP NAT
Client A
(10.0.0.101)
UserNAT
(192.168.3.7)
Client B
(10.1.1.9)
ISP NAT
(18.181.0.31)
User NAT
(192.168.4.1)
Internet
ISP Network