CS 3700 Networks and Distributed Systems Internet Architecture - - PowerPoint PPT Presentation

cs 3700
SMART_READER_LITE
LIVE PREVIEW

CS 3700 Networks and Distributed Systems Internet Architecture - - PowerPoint PPT Presentation

CS 3700 Networks and Distributed Systems Internet Architecture (Layer cake and an hourglass) Revised 1/08/2020 Last class recap... 2 This is not a history course Communication is fundamental to human nature Key concepts have


slide-1
SLIDE 1

CS 3700


Networks and Distributed Systems

Internet Architecture (Layer cake and an hourglass)

Revised 1/08/2020

slide-2
SLIDE 2

Last class recap...

This is not a history course Communication is fundamental to human nature Key concepts have existed for a long time

Speed/bandwidth; Latency; Encoding; Switching; Packets vs. Circuits; Multiplexing; Routing

The Internet is constantly evolving I will teach you about

The principles on which it was founded The fundamental protocols that drive it The various applications built atop it How these networks are deployed today Future directions it might go

2

slide-3
SLIDE 3

Organizing Network Functionality

3

slide-4
SLIDE 4

Organizing Network Functionality

3

Networks are built from many components

Networking technologies

■ Ethernet, Wifi, Bluetooth, Fiber Optic, Cable Modem, DSL

Network styles

■ Circuit switch, packet switch ■ Wired, Wireless, Optical, Satellite

Applications

■ Email, Web, FTP

, Bittorrent, Pokemon Go

How do we make all this stuff work together?!

slide-5
SLIDE 5

Problem Scenario

4

slide-6
SLIDE 6

Problem Scenario

4

Web Email Bittorrent Ethernet 802.11 Bluetooth

slide-7
SLIDE 7

Problem Scenario

4

Web Email Bittorrent Ethernet 802.11 Bluetooth

slide-8
SLIDE 8

Problem Scenario

4

Web Email Bittorrent Ethernet 802.11 Bluetooth

slide-9
SLIDE 9

Problem Scenario

4

Web Email Bittorrent Ethernet 802.11 Bluetooth

slide-10
SLIDE 10

Problem Scenario

4

Web Email Bittorrent Ethernet 802.11 Bluetooth Cellular

slide-11
SLIDE 11

Problem Scenario

4

Web Email Bittorrent Ethernet 802.11 Bluetooth Cellular

slide-12
SLIDE 12

Problem Scenario

4

Web Email Bittorrent Ethernet 802.11 Bluetooth VoIP Cellular

slide-13
SLIDE 13

Problem Scenario

4

Web Email Bittorrent Ethernet 802.11 Bluetooth VoIP Cellular

slide-14
SLIDE 14

Problem Scenario

4

Web Email Bittorrent Ethernet 802.11 Bluetooth VoIP Cellular

  • This is a nightmare scenario
  • Huge amounts of work to add new apps or media
  • Limits growth and adoption
slide-15
SLIDE 15

More Problems

5

Bittorrent Ethernet 802.11 Bittorrent

slide-16
SLIDE 16

More Problems

5

Bittorrent Ethernet 802.11 Bittorrent

Application endpoints may not be on the same media

slide-17
SLIDE 17

Solution: Use Indirection

6

Web Email Bittorrent Ethernet 802.11 Bluetooth

Magical Network Abstraction Layer

slide-18
SLIDE 18

Solution: Use Indirection

6

Web Email Bittorrent Ethernet 802.11 Bluetooth

Magical Network Abstraction Layer

API

slide-19
SLIDE 19

Solution: Use Indirection

6

Web Email Bittorrent Ethernet 802.11 Bluetooth

Magical Network Abstraction Layer

API API API

slide-20
SLIDE 20

Solution: Use Indirection

6

Web Email Bittorrent Ethernet 802.11 Bluetooth

Magical Network Abstraction Layer

slide-21
SLIDE 21

Solution: Use Indirection

6

Web Email Bittorrent Ethernet 802.11 Bluetooth VoIP

Magical Network Abstraction Layer

slide-22
SLIDE 22

Solution: Use Indirection

6

Web Email Bittorrent Ethernet 802.11 Bluetooth VoIP Cellular

Magical Network Abstraction Layer

slide-23
SLIDE 23

Solution: Use Indirection

6

Web Email Bittorrent Ethernet 802.11 Bluetooth VoIP Cellular

Magical Network Abstraction Layer

  • O(1) work to add new apps, media
  • Few limits on new technology
slide-24
SLIDE 24

Layered Network Stack

7 Modularity

Does not specify an implementation Instead, tells us how to organize functionality

Applications Physical Media

Layer N Layer 1 Layer 2

slide-25
SLIDE 25

Layered Network Stack

7 Modularity

Does not specify an implementation Instead, tells us how to organize functionality

Encapsulation

Interfaces define cross-layer interaction Layers only rely on those below them

Applications Physical Media

Layer N Layer 1 Layer 2

slide-26
SLIDE 26

Layered Network Stack

7 Modularity

Does not specify an implementation Instead, tells us how to organize functionality

Encapsulation

Interfaces define cross-layer interaction Layers only rely on those below them

Applications Physical Media

Layer N Layer 1 Layer 2

slide-27
SLIDE 27

Layered Network Stack

7 Modularity

Does not specify an implementation Instead, tells us how to organize functionality

Encapsulation

Interfaces define cross-layer interaction Layers only rely on those below them

Applications Physical Media

Layer N Layer 1 Layer 2

slide-28
SLIDE 28

Layered Network Stack

7 Modularity

Does not specify an implementation Instead, tells us how to organize functionality

Encapsulation

Interfaces define cross-layer interaction Layers only rely on those below them

Flexibility

Reuse of code across the network Module implementations may change

Applications Physical Media

Layer N Layer 1 Layer 2

slide-29
SLIDE 29

Layered Network Stack

7 Modularity

Does not specify an implementation Instead, tells us how to organize functionality

Encapsulation

Interfaces define cross-layer interaction Layers only rely on those below them

Flexibility

Reuse of code across the network Module implementations may change

Applications Physical Media

Layer N Layer 2

Layer 1.1

slide-30
SLIDE 30

Layered Network Stack

7 Modularity

Does not specify an implementation Instead, tells us how to organize functionality

Encapsulation

Interfaces define cross-layer interaction Layers only rely on those below them

Flexibility

Reuse of code across the network Module implementations may change

Unfortunately, there are tradeoffs

Interfaces hide information As we will see, may hurt performance…

Applications Physical Media

Layer N Layer 2

Layer 1.1

slide-31
SLIDE 31

Key Questions

8

How do we divide functionality into layers?

Routing Congestion control Error checking Security Fairness And many more…

slide-32
SLIDE 32

Key Questions

8

How do we divide functionality into layers?

Routing Congestion control Error checking

How do we distribute functionality across devices?

Example: who is responsible for security?

Switch Switch Router

Security Fairness And many more…

slide-33
SLIDE 33

Key Questions

8

How do we divide functionality into layers?

Routing Congestion control Error checking

How do we distribute functionality across devices?

Example: who is responsible for security?

Switch Switch Router

Security Fairness And many more…

slide-34
SLIDE 34

Key Questions

8

How do we divide functionality into layers?

Routing Congestion control Error checking

How do we distribute functionality across devices?

Example: who is responsible for security?

Switch Switch Router

Security Fairness And many more…

slide-35
SLIDE 35

❑ Layering

❑ The OSI Model

❑ Distribution

❑ The End-to-End Argument

Outline

9

slide-36
SLIDE 36

The ISO OSI Model

10

OSI: Open Systems Interconnect Model

Application

Presentation

Session Transport Network Data Link Physical Network Data Link Application

Presentation

Session Transport Network Data Link Physical

Host 1 Router Host 2

Physical

slide-37
SLIDE 37

The ISO OSI Model

10

OSI: Open Systems Interconnect Model

Application

Presentation

Session Transport Network Data Link Physical Network Data Link Application

Presentation

Session Transport Network Data Link Physical

Host 1 Router Host 2

Physical

All devices implement the first three layers

slide-38
SLIDE 38

The ISO OSI Model

10

OSI: Open Systems Interconnect Model

Application

Presentation

Session Transport Network Data Link Physical Network Data Link Application

Presentation

Session Transport Network Data Link Physical

Host 1 Router Host 2

Physical

Layers communicate peer-to-peer

slide-39
SLIDE 39

The ISO OSI Model

10

OSI: Open Systems Interconnect Model

Application

Presentation

Session Transport Network Data Link Physical Network Data Link Application

Presentation

Session Transport Network Data Link Physical

Host 1 Router Host 2

Physical

slide-40
SLIDE 40

The ISO OSI Model

10

OSI: Open Systems Interconnect Model

Application

Presentation

Session Transport Network Data Link Physical Network Data Link Application

Presentation

Session Transport Network Data Link Physical

Host 1 Router Host 2

Physical

slide-41
SLIDE 41

The ISO OSI Model

10

OSI: Open Systems Interconnect Model

Application

Presentation

Session Transport Network Data Link Physical Network Data Link Application

Presentation

Session Transport Network Data Link Physical

Host 1 Router Host 2

Physical

Layers communicate peer-to-peer

slide-42
SLIDE 42

The ISO OSI Model

10

OSI: Open Systems Interconnect Model

Application

Presentation

Session Transport Network Data Link Physical Network Data Link Application

Presentation

Session Transport Network Data Link Physical

Host 1 Router Host 2

Physical

slide-43
SLIDE 43

The ISO OSI Model

10

OSI: Open Systems Interconnect Model

Application

Presentation

Session Transport Network Data Link Physical Network Data Link Application

Presentation

Session Transport Network Data Link Physical

Host 1 Router Host 2

Physical

slide-44
SLIDE 44

Layer Features

11

Service

What does this layer do?

Interface

How do you access this layer?

Protocol

How is this layer implemented?

Application

Presentation

Session Transport Network Data Link Physical

slide-45
SLIDE 45

Physical Layer

12

Service

Move information between two

systems connected by a physical link

Interface

Specifies how to send one bit

Protocol

Encoding scheme for one bit Voltage levels Timing of signals

Examples: coaxial cable, fiber

  • ptics, radio frequency transmitters

Application

Presentation

Session Transport Network Data Link Physical

slide-46
SLIDE 46

Data Link Layer

13

Service

Data framing: boundaries between packets Media access control (MAC) Per-hop reliability and flow-control

Interface

Send one packet between two hosts

connected to the same media

Protocol

Physical addressing (e.g. MAC address)

Examples: Ethernet, Wifi, DOCSIS

Application

Presentation

Session Transport Network Data Link Physical

slide-47
SLIDE 47

Network Layer

14 Service

Deliver packets across the network Handle fragmentation/reassembly Packet scheduling Buffer management

Interface

Send one packet to a specific destination

Protocol

Define globally unique addresses Maintain routing tables

Example: Internet Protocol (IP), IPv6

Application

Presentation

Session Transport Network Data Link Physical

slide-48
SLIDE 48

Transport Layer

15

Service

Multiplexing/demultiplexing connections Congestion control Reliable, in-order delivery

Interface

Send message to a destination’s port

Protocol

Port numbers Reliability/error correction Flow-control information

Examples: UDP

, TCP

Application

Presentation

Session Transport Network Data Link Physical

slide-49
SLIDE 49

Session Layer

16

Service

Access management Synchronization

Interface

It depends…

Protocol

Token management Insert checkpoints

Examples: none

Application

Presentation

Session Transport Network Data Link Physical

slide-50
SLIDE 50

Presentation Layer

17

Service

Convert data between different

representations

E.g. big endian to little endian E.g. Ascii to Unicode

Interface

It depends…

Protocol

Define data formats Apply transformation rules

Examples: none

Application

Presentation

Session Transport Network Data Link Physical

slide-51
SLIDE 51

Application Layer

18

Service

Whatever you want :)

Interface

Whatever you want :D

Protocol

Whatever you want ;)

Examples: turn on your smartphone

and look at the list of apps

Application

Presentation

Session Transport Network Data Link Physical

slide-52
SLIDE 52

Encapsulation

19

How does data move through the layers?

Application

Presentation

Session Transport Network Data Link Physical Data

slide-53
SLIDE 53

Encapsulation

19

How does data move through the layers?

Application

Presentation

Session Transport Network Data Link Physical Data

slide-54
SLIDE 54

Encapsulation

19

How does data move through the layers?

Application

Presentation

Session Transport Network Data Link Physical Data

slide-55
SLIDE 55

Encapsulation

19

How does data move through the layers?

Application

Presentation

Session Transport Network Data Link Physical Data

slide-56
SLIDE 56

Encapsulation

19

How does data move through the layers?

Application

Presentation

Session Transport Network Data Link Physical Data

slide-57
SLIDE 57

Encapsulation

19

How does data move through the layers?

Application

Presentation

Session Transport Network Data Link Physical Data

slide-58
SLIDE 58

Encapsulation

19

How does data move through the layers?

Application

Presentation

Session Transport Network Data Link Physical Data

slide-59
SLIDE 59

Encapsulation

19

How does data move through the layers?

Application

Presentation

Session Transport Network Data Link Physical

slide-60
SLIDE 60

Encapsulation

19

How does data move through the layers?

Application

Presentation

Session Transport Network Data Link Physical Data

slide-61
SLIDE 61

Encapsulation

19

How does data move through the layers?

Application

Presentation

Session Transport Network Data Link Physical Data

slide-62
SLIDE 62

Encapsulation

19

How does data move through the layers?

Application

Presentation

Session Transport Network Data Link Physical Data

slide-63
SLIDE 63

Encapsulation

19

How does data move through the layers?

Application

Presentation

Session Transport Network Data Link Physical Data

slide-64
SLIDE 64

Encapsulation

19

How does data move through the layers?

Application

Presentation

Session Transport Network Data Link Physical Data

slide-65
SLIDE 65

Encapsulation

19

How does data move through the layers?

Application

Presentation

Session Transport Network Data Link Physical Data

slide-66
SLIDE 66

Encapsulation

19

How does data move through the layers?

Application

Presentation

Session Transport Network Data Link Physical Data

slide-67
SLIDE 67

Real Life Analogy

20

slide-68
SLIDE 68

Real Life Analogy

20

Label contains routing info

slide-69
SLIDE 69

Real Life Analogy

20

Postal Service

slide-70
SLIDE 70

Real Life Analogy

20

Postal Service

Un-packing

slide-71
SLIDE 71

Real Life Analogy

20

Postal Service

Doesn’t know contents of letter Doesn’t know how the Postal network works

slide-72
SLIDE 72

Network Stack in Practice

21

Application

Presentation

Session Transport Network Data Link Physical Network Data Link Application

Presentation

Session Transport Network Data Link Physical

Host 1 Router Host 2

Physical

slide-73
SLIDE 73

Network Stack in Practice

21

Application Transport Network Data Link Physical Network Data Link Application Transport Network Data Link Physical

Host 1 Router Host 2

Physical

slide-74
SLIDE 74

Network Stack in Practice

21

Application Transport Network Data Link Network Data Link Application Transport Network Data Link

Host 1 Router Host 2

slide-75
SLIDE 75

Network Stack in Practice

21

Host 1 Router Host 2

FTP Client TCP IP Ethernet IP Ethernet FTP Server TCP IP Ethernet

slide-76
SLIDE 76

Network Stack in Practice

21

Host 1 Router Host 2

FTP Client TCP IP Ethernet IP Ethernet FTP Server TCP IP Ethernet

slide-77
SLIDE 77

Network Stack in Practice

21

Host 1 Router Host 2 Video Client

UDP

Video Server

UDP IP Ethernet IP Ethernet IP Ethernet

slide-78
SLIDE 78

Network Stack in Practice

21

Host 1 Router Host 2 Video Client

UDP

Video Server

UDP IP IP IP 802.11n 802.11n 802.11n

slide-79
SLIDE 79

Encapsulation, Revisited

22

Web Server TCP IP

Ethernet

slide-80
SLIDE 80

Encapsulation, Revisited

22

Web Server TCP IP

Ethernet

Web Page

slide-81
SLIDE 81

Encapsulation, Revisited

22

Web Server TCP IP

Ethernet

HTTP Header Web Page

slide-82
SLIDE 82

Encapsulation, Revisited

22

Web Server TCP IP

Ethernet

HTTP Header TCP Header Web Page HTTP Header Web Page

slide-83
SLIDE 83

Encapsulation, Revisited

22

Web Server TCP IP

Ethernet

HTTP Header TCP Header Web Page HTTP Header Web Page

TCP Segment

slide-84
SLIDE 84

Encapsulation, Revisited

22

Web Server TCP IP

Ethernet

HTTP Header TCP Header

IP Header

Web Page HTTP Header Web Page TCP Header HTTP Header Web Page

TCP Segment

slide-85
SLIDE 85

Encapsulation, Revisited

22

Web Server TCP IP

Ethernet

HTTP Header TCP Header

IP Header

Web Page HTTP Header Web Page TCP Header HTTP Header Web Page

TCP Segment IP Datagram

slide-86
SLIDE 86

Encapsulation, Revisited

22

Web Server TCP IP

Ethernet

HTTP Header TCP Header

IP Header

Ethernet Header Ethernet Trailer

Web Page HTTP Header Web Page TCP Header HTTP Header Web Page

IP Header

TCP Header HTTP Header Web Page

TCP Segment IP Datagram

slide-87
SLIDE 87

Encapsulation, Revisited

22

Web Server TCP IP

Ethernet

HTTP Header TCP Header

IP Header

Ethernet Header Ethernet Trailer

Web Page HTTP Header Web Page TCP Header HTTP Header Web Page

IP Header

TCP Header HTTP Header Web Page

TCP Segment IP Datagram Ethernet Frame

slide-88
SLIDE 88

The Hourglass

23

IPv4 TCP , UDP , ICMP HTTP , FTP , RTP , IMAP , Jabber, … Ethernet, 802.11x, DOCSIS, … Fiber, Coax, Twisted Pair, Radio, …

slide-89
SLIDE 89

The Hourglass

23

IPv4 TCP , UDP , ICMP HTTP , FTP , RTP , IMAP , Jabber, … Ethernet, 802.11x, DOCSIS, … Fiber, Coax, Twisted Pair, Radio, …

slide-90
SLIDE 90

The Hourglass

23

IPv4 TCP , UDP , ICMP HTTP , FTP , RTP , IMAP , Jabber, … Ethernet, 802.11x, DOCSIS, … Fiber, Coax, Twisted Pair, Radio, …

slide-91
SLIDE 91

The Hourglass

23

IPv4 TCP , UDP , ICMP HTTP , FTP , RTP , IMAP , Jabber, … Ethernet, 802.11x, DOCSIS, … Fiber, Coax, Twisted Pair, Radio, …

slide-92
SLIDE 92

The Hourglass

23

IPv4 TCP , UDP , ICMP HTTP , FTP , RTP , IMAP , Jabber, … Ethernet, 802.11x, DOCSIS, … Fiber, Coax, Twisted Pair, Radio, …

slide-93
SLIDE 93

The Hourglass

23

IPv4 TCP , UDP , ICMP HTTP , FTP , RTP , IMAP , Jabber, … Ethernet, 802.11x, DOCSIS, … Fiber, Coax, Twisted Pair, Radio, …

Think about the difficulty of deploying IPv6…

slide-94
SLIDE 94

The Hourglass

23

IPv4 TCP , UDP , ICMP HTTP , FTP , RTP , IMAP , Jabber, … Ethernet, 802.11x, DOCSIS, … Fiber, Coax, Twisted Pair, Radio, …

  • One Internet layer means all networks

interoperate

  • All applications function on all networks
  • Room for development above and below IP
  • But, changing IP is insanely hard
slide-95
SLIDE 95

Orthogonal Planes

24

Application

Presentation

Session Transport IP Data Link Physical

slide-96
SLIDE 96

Orthogonal Planes

24

Application

Presentation

Session Transport IP Data Link Physical

Data Plane

slide-97
SLIDE 97

Orthogonal Planes

24

Application

Presentation

Session Transport IP Data Link Physical

Data Plane BGP RIP OSPF Control Plane

slide-98
SLIDE 98

Orthogonal Planes

24

Application

Presentation

Session Transport IP Data Link Physical

Data Plane BGP RIP OSPF Control Plane Well cover this later…

slide-99
SLIDE 99

Reality Check

25

slide-100
SLIDE 100

Reality Check

25

The layered abstraction is very nice Does it hold in reality?

No.

slide-101
SLIDE 101

Reality Check

25

The layered abstraction is very nice Does it hold in reality?

No.

Firewalls

Analyze application

layer headers

slide-102
SLIDE 102

Reality Check

25

The layered abstraction is very nice Does it hold in reality?

No.

Firewalls

Analyze application

layer headers Transparent Proxies

Simulate application

endpoints within the network

slide-103
SLIDE 103

Reality Check

25

The layered abstraction is very nice Does it hold in reality?

No.

Firewalls

Analyze application

layer headers Transparent Proxies

Simulate application

endpoints within the network NATs

Break end-to-end

network reachability

slide-104
SLIDE 104

❑ Layering

❑ The OSI Model

❑ Distribution

❑ The End-to-End Argument

Outline

26

slide-105
SLIDE 105

Where to Place Functionality

27

How do we distribute functionality across devices?

Example: who is responsible for security?

Switch Switch Router

? ? ? ? ?

slide-106
SLIDE 106

Where to Place Functionality

27

How do we distribute functionality across devices?

Example: who is responsible for security?

Switch Switch Router

? ? ? ? ?

“The End-to-End Arguments in System Design”

Saltzer, Reed, and Clark The Sacred Text of the Internet Endlessly debated by researchers and engineers

slide-107
SLIDE 107

Basic Observation

28

Some applications have end-to-end requirements

Security, reliability, etc.

Implementing this stuff inside the network is hard

Every step along the way must be fail-proof

End hosts…

Can’t depend on the network (recall Kahn’s ground-rules) Can satisfy these requirements without network level support

slide-108
SLIDE 108

Example: Reliable File Transfer

29

slide-109
SLIDE 109

Example: Reliable File Transfer

29

slide-110
SLIDE 110

Example: Reliable File Transfer

29

Solution 1: Make the network reliable

slide-111
SLIDE 111

Example: Reliable File Transfer

29

Solution 1: Make the network reliable

Integrity Check Integrity Check Integrity Check

slide-112
SLIDE 112

Example: Reliable File Transfer

29

Solution 1: Make the network reliable

slide-113
SLIDE 113

Example: Reliable File Transfer

29

Solution 1: Make the network reliable

slide-114
SLIDE 114

Example: Reliable File Transfer

29

Solution 1: Make the network reliable

slide-115
SLIDE 115

Example: Reliable File Transfer

29

Solution 1: Make the network reliable

slide-116
SLIDE 116

Example: Reliable File Transfer

29

Solution 1: Make the network reliable

slide-117
SLIDE 117

Example: Reliable File Transfer

29

Solution 1: Make the network reliable

App has to do a check anyway!

slide-118
SLIDE 118

Example: Reliable File Transfer

29

Solution 1: Make the network reliable Solution 2: App level, end-to-end check, retry on failure

App has to do a check anyway!

slide-119
SLIDE 119

Example: Reliable File Transfer

30

Solution 1: Make the network reliable Solution 2: App level, end-to-end check, retry on failure

slide-120
SLIDE 120

Example: Reliable File Transfer

30

Solution 1: Make the network reliable Solution 2: App level, end-to-end check, retry on failure

slide-121
SLIDE 121

Example: Reliable File Transfer

30

Solution 1: Make the network reliable Solution 2: App level, end-to-end check, retry on failure

Please Retry

slide-122
SLIDE 122

Example: Reliable File Transfer

30

Solution 1: Make the network reliable Solution 2: App level, end-to-end check, retry on failure

slide-123
SLIDE 123

Example: Reliable File Transfer

30

Solution 1: Make the network reliable Solution 2: App level, end-to-end check, retry on failure

Full functionality can be built at App level

slide-124
SLIDE 124

Example: Reliable File Transfer

30

Solution 1: Make the network reliable Solution 2: App level, end-to-end check, retry on failure

  • In-network implementation…

➢ Doesn’t reduce host complexity ➢ Does increase network complexity ➢ Increased overhead for apps that don’t need functionality

  • But, in-network performance may be better
slide-125
SLIDE 125

The End-to-End Argument

31

slide-126
SLIDE 126

The End-to-End Argument

31

“Don’t implement a function at the lower levels of the system unless it can be completely implemented at this level” (Peterson and Davie) Basically, unless you can completely remove the burden from end hosts, don’t bother

slide-127
SLIDE 127

Radical Interpretation

32

Don’t implement anything in the network that can be implemented correctly

by the hosts

slide-128
SLIDE 128

Radical Interpretation

32

Don’t implement anything in the network that can be implemented correctly

by the hosts

Make network layer absolutely minimal Ignore performance issues

slide-129
SLIDE 129

Moderate Interpretation

33

Think twice before implementing functionality in the network If hosts can implement functionality correctly, implement it a lower layer only

as a performance enhancement

But do so only if it does not impose burden on applications that do not

require that functionality

slide-130
SLIDE 130

Reality Check, Again

34

Layering and E2E principals regularly violated

Firewalls Transparent Proxies NATs

Conflicting interests

Architectural purity Commercial necessity

slide-131
SLIDE 131

Takeaways

35

Layering is a nice way to organize network functions Unified Internet layer decouples apps, enables innovation E2E argument (attempts) to keep IP layer simple Think carefully when adding functionality into the network