contentflow: mapping content to flows in sofware defined network speaker: zulman advisor: dr....

40
ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker : Zulman Advisor : Dr. Kai-wei ke Date : February 3, 2015 1

Upload: kerry-curtis

Post on 05-Jan-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

1

ContentFlow: Mapping Content to Flows in Sofware Defined NetworkS p e a k e r : Z u l m a n

A d v i s o r : D r. K a i - w e i k e

D a t e : F e b r u a r y 3 , 2 0 1 5

Page 2: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

2

OUTLINE INTRODUCTION.

OVERVIEW OF THE ARCHITECTURE.

PROXY, CACHE, AND CONTROLLER ALGORITHM.

HOW THE SYSTEM WORKS.

CONTENT MANAGEMENT LAYER AND CONTENTFLOW CONTROLLER.

IMPLEMENTATION AND EVALUATION.

CONCLUSION.

Page 3: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

3

INTRODUCTION

Many new Information-Centric Network (ICN) architecture has been propose to take the advantage of the multiple copies of a piece of content that are distributed throughout the network and to dissociate the content from its network location.

However, the forwarding element in the network still rely on location (namely IP or MAC address) to identify the flows within the network.

One issue is that content is not isomorphous to flows, especially when it comes to network policy.

Page 4: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

4

INTRODUCTION(Cont.)For example : Two request from a specific host to the same server.

Both request could be made on the same port, say port 80 for HTTP as if most of the Internet traffic.

From a switch point of view, without Deep Packet Inspection, these request will look identical.

However, the requirements for the network to deliver proper service to these flows are very different. One of them need more stringent latency constraints than the other.

Flows are not the proper granularity to differentiate traffic or to provide different sets of resource for both pieces of content.

Host A

Host B

Server

Video stream request

Image object request

Figure 1. Example

Page 5: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

5

INTRODUCTION(Cont.)

Yet, flows are convenient handle as they are what switches see.

Considering the recent popularity in SDN and Openflow in particular, these framework introduce a logically centralized software controller to manage the flow tables of the switch within a network, a controller can achieve significant benefits.

A mechanism is needed to bridge the gap between the flow view as used in SDN and achieving policy and management at the content level, as envisioned by ICNs.

Page 6: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

6

INTRODUCTION(Cont.)

With ContentFlow, a centralized controller in a domain will manage the content, resolve content to location, enable content routing and forwarding policies, manage content caching, and provide the extensibility of a software based controller to create new content-based network mechanism.

A mapping mechanism is necessary to identify flows based on the content they carry in order to provision an ICN architecture over a legacy IP overlay.

In this paper, an extension to the current SDN model to perform the mapping and integrate some caching element into the OpenFlow framework proposed.

Page 7: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

7

INTRODUCTION(Cont.)

A centralized content management layer installed n a controller that uses HTTP header information to identify the content, route it based on name and map it back to TCP and IP semantics.

ContentFlow can be inserted transparently and independently by an operator over its own domain.

Overall vision is to have a transparent caching network that can be placed between a service provider and a consumer network as shown in figure 2.

Page 8: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

8

INTRODUCTION(Cont.)The implementation of the architecture in this system focus on HTTP traffic and have been demonstrated that it can operate transparently between unmodified client and servers.

Figure 2. End to end Architecture

Page 9: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

9

OVERVIEW OF THE ARCHITECTUREContentFlow architecture enables allocation of content-dependent flow headers. The combination of the source, destination port, and IPv4 is used.

A separation of content and its metadata happen close to the source and put it in the control plane.

The metadata consist of the file name parsed from the HTTP GET request and the TCP flow information. <file_name, destination IP, destination port, source IP, source port>.

Content routing in a SDN network requires to proxy all TCP connections at the ingress switch in the network due to the TCP semantics.

Page 10: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

10

OVERVIEW OF THE ARCHITECTURE(Cont.)A session is first established between a client and a server before an HTTP GET issued to request a specific content.

Routing is performed before the content is requested, which prohibit content routing.

On the other hand, content routing requires late binding of the content with the location.

Proxying TCP at the ingress switch ensures that no TCP session is established beyond the ingress switch.

Only when the content is requested, then the proper route (and TCP session) can then be setup.

Page 11: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

11

OVERVIEW OF THE ARCHITECTURE(Cont.)

Figure 2 shows the different architecture element of ContentFlow: a proxy at the ingress to terminate the TCP sessions and support late binding;

OpenFlow-enable switching elements; caching and storage elements which can transparently cache content.

A content controller expanding an OpenFlow controller to include content features; and the protocols for the controller to communicate with both the caches and the proxies.

Figure 2. Overview of the Architecture

Page 12: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

12

PROXYThe proxy is a transparent TCP proxy that is located in the caching network. Openflow is used to make the proxy transparent by writing reactive flows to appropriate switches.

The proxy is the primary device that is responsible for separating out content metadata and putting it on the control plane.

The proxy must intercept packets from the client and parse relevant information.

Once the client has setup a connection with the proxy, it issues a HTTP request which the proxy intercept.

The proxy parse the request to extract content metadata and queries the controller.

Page 13: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

13

PROXY Algorithm.

Page 14: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

14

CACHECache receive a content stream to store, the cache will see only response from the server.

In order to avoid extra round trip delay of a cache miss, a custom cache that can accept responses and store them against request metadata obtained from the controller implemented.

The streaming video handled as a special case which is delivered over a HTTP 206 response indicating partial content.

Often, in this case, the client will close the connection for each of the chunks. Thus when the cache sees a HTTP 206 response, it parses the content-range header to find out how much data is currently being transmitted and when that reaches the file size.

Page 15: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

15

CACHE Algorithm

Page 16: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

16

CONTROLLERThe controller maintains two dictionaries that can be looked up in constant time.

Cache Dictionaries maps file name to cache IP where the file is stored.

Request Dictionaries maps destination server IP and ports to file name, this is necessary to set up flow rules and forward content metadata the cache when it will save a piece of content.

Page 17: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

17

CONTROLLER Algorithm

Page 18: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

18

HOW THE SYSTEM WORKS.When a client tries to connect to a server, the packet reaches the ingress switch of the content flow network. This switch does not find matching flow and sends this packet to the contentflow controller.

The controller installs static rules to the switch to forward all HTTP traffic from the client to the proxy.

The client issues the an HTTP request which goes to the proxy.

The proxy parse the request to extract the name of the content and the web server to which the request was sent.

The proxy queries the controller with the file name(as a URI) asking if the file is cached somewhere in the network.

The controller then determines whether the content from web server should or should not be cached and which cache to use. Controller compute the forking point(forking switch) to redirect the content.

Page 19: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

19

HOW THE SYSTEM WORKS(Cont.)The controller install a rule in the forking switch and invokes the cache.

Controller notified the cache of the content name and of the flow information to map the content stream to the proper content name. Controller also record the location of the cache content.

Since the content is not already cache, controller return “none” to the proxy. The controller give the flow information to use to the proxy. The proxy direct the connection to the original web server.

The cache saves the content with the file name obtained from the controller.

The other copy of the content goes back to the proxy and in the egress switch, it hits the reverse flow which re-write its destination IP and port to that of the requester.

Page 20: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

20

Figure 3. Sequence Diagram of the System.

Page 21: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

21

CONTENT MANAGEMENT LAYER AND CONTENTFLOW CONTROLLERContent Identification

Content Naming

Manage Content Name to TCP/IP Mapping

Manage Content Caching Policy

Page 22: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

22

Content Identification Content Identification Proposed using HTTP semantics, which indicates:

If a client in a network sends out a HTTP GET request to another device and receives a HTTP response, it will conclude that the initial request was a content request which was satisfied by the content carried over HTTP.

If the response is error, it will ignore the request and response.

This functionality is located in proxy since it responsible for connection management.

Page 23: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

23

Content Naming As a number of content centric network proposal, the content should be named using its location.

If an image which named picture.jpg resides in a server whose name is www.server.com in a directory called pictures, the full name for the specific content will be: www.server.com/pictures/picture.jpg.

This content named derived by parsing HTTP header for request.

Page 24: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

24

Manage Content Name to TCP/IP MappingTo enable the content management mechanism to work on a base TCP/IP system. Mapping content semantics into TCP/IP semantics is necessary.

Content management handle this by assigning a port number to a specific content.

The data structure can be lookup using port number and server address to identify the content.

The OpenFlow flows can be written to relevant switches based on that information.

Page 25: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

25

Manage Content Name to TCP/IP Mapping(Cont.)

Two clients A and B attempt to fetch 3 piece of content.

A fetch one each from Server C and D, B gets from C.

The flow goes from source IP A, port X to destination IP C, port 80. labeled AxC80.

static rule to forward packet on port 80 to the proxy. Become AxPp.

Proxy terminate the TCP connection ; start a TCP connection on SRC port u to server C port 80. Become PuC80.

catch return flows at the forking switch set by the controller, which duplicates packet towards cache K.

Figure 4. Mapping of Content to Flows

Page 26: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

26

Manage Content Caching PolicyThe Cache Dictionary can be expanded to achieve the desired caching policy, but taking all the distributed caching available into account.

For instance, the controller can append to each content some popularity information gathered from the number of request.

Then, decide which content to cache where based upon user’s request history.

Page 27: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

27

Ensuring AvailabilitySince there is a limit on the number of potential request to a given server, we must make sure there are enough port numbers to accommodate all possible content in the network.

Since the contents map to a port/proxy/server combination, the number of concurrent connections to a server is as limited by the number of available src port between a given proxy/server pair.

Further, number of proxies can be increase by adding virtual proxies with different addresses and will increasing the flow space.

Page 28: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

28

Ensuring ConsistencyThe consistency constraint implies all clients should receive their request content only.

In this system, this is translates to a constraint that once a port number is designated for a content, it should not be re-used while that content is live in the network. This is ensured using controller.

The controller maintains a pool of port numbers from which it assigns to content.

Once a port number is in use, it is remove from the pool.

When the client closes the connection to the proxy, the proxy sends a message to the controller and updates the list of free port numbers.

Page 29: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

29

IMPLEMENTATION AND EVALUATIONTo evaluate the merits of ContentFlow, a basic use case of in-network storage virtualization is implemented. This is a simple application of content-flow mapping.

The architecture has been implemented on a small tesbed.

The testbed has a blade server running Ubuntu (Called H).

The server runs an instance of Open vSwitch which enables it to act as an OpenFlow Switch.

H run three VMs each of which hosts the cache, the proxy, and the client and also the Floodlight controller.

Page 30: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

30

IMPLEMENTATION AND EVALUATION(Cont.)

The major component of the system are:

Content Management Layer. Content Management Layer implemented as a module to do content based forwarding on top of

FloodLight Plarform. The Request Dictionary is used to map <client, server> pairs to request file names. The Cache Dictionary holds mapping of content and its location as the IP and port number of a cache.

Proxy. The proxy is written pure in python and use tproxy library. The library provide method to work with

HTTP headers.

Page 31: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

31

IMPLEMENTATION AND EVALUATION(Cont.)

The major component of the system are:

Cache. In this system, cache implementation is distinct from existing internet cache in a number of ways. It can interface with an OpenFlow controller. on the other hand this does not implement usual caching

protocols. The cache sees only response and not the request. Since it always get to hear only one side of the

connection, it cannot have the TCP session with the server. Because the cache must listen to a network interface and read packets from it. The cache has number

of different coomponet.

Page 32: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

32

IMPLEMENTATION AND EVALUATION(Cont.)

The Cache Components.

The Redis Queue. A simple queuing mechanism. Use to pass data(IP Address) between the grabber module and the

watchdog module. The grabber module can put IP address in the queue which can be read from the watchdog module.

The Grabber Module. This module is responsible for listening to an interface and to read and assemble packet. Use libpcap

library. It collect packets with the same ACK numbers, when it sees a FIN packet. It extract the ACK number and assemble all packets which has that ACK number.

Note that, since there is no TCP connection , the cache will not know if some packets are missing.

Page 33: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

33

IMPLEMENTATION AND EVALUATION(Cont.)The Watchdog Module.

This module is communicates with the controller using a set of REST calls. Use inotify library to listen on the cache directory for file write events.

When the grabber module write a file to the disk, the watchdog module calls the controller API to get the file name, it then strips all HTTP header from the file, changes its name and write it back.

After the file is saved, it sends back an ACK to the controller indicating that the file is cached.

The Cache Server Module. This module serves back content when a client requests. Written in python and is an extended version

of SimpleHTTPServer.

Page 34: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

34

IMPLEMENTATION AND EVALUATION(Cont.)For the experiment, 12 files of different sizes, from 2Kb to 6Mb on a web server located in New Brunswick.

These files then accessed from out client in Santa Clara. The browser cached is turned off to ensure that the overall effect is only due to the system.

Firebug is used to measure content access delay in the two cases case, once when there is a cache miss and when content delivered from the cache.

Caching content is only used to demonstrate that the architecture works in offering content APIs to the controller and that to extend the SDN architecture to support content-based management and ICN ability.

Page 35: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

35

IMPLEMENTATION AND EVALUATION

Figure 5. Variation of Access delay

Page 36: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

36

IMPLEMENTATION AND EVALUATION(Cont.)In this system, we can also compare the delay analysis given in figure 3. each case TCP(A,B) represents the delay for establishing a TCP session between A and B. F(A,B) represent the delay to download a file from A to B. Delay(Proxy) is the processing delay at the proxy.

Case 1 is when a client accesses a file directly without a cache or a proxy. In this case the total delay approximately = TCP(Client, Server) + F(Client, Server).

Case 2 is when the client uses a proxy and OpenFlow Controller to connect to the server. In this case the total delay = TCP(Client, Server) + Delay(Proxy) + TCP(Proxy, Server) + F(Server, Proxy) + TCP(Proxy, Client).

Case 3 is the proposed system with a proxy and a cache. Total delay = TCP(Client, Proxy) + Delay(Proxy) + TCP(Proxy, Cache) + F(Server, Proxy) + TCP(Proxy, Client).

In case 3, assuming that Delay(Proxy) is negligible and that the proxy and cache is located in the same network as the client which makes file transfer delay between them very small.

Page 37: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

37

IMPLEMENTATION AND EVALUATION(Cont.)However, if the proxy is overloaded, this will increase resulting in case 2 and case 3 having higher delay than case 1. which is not desirable.

Two possible ways to reduce computation at the proxy is to have static rules for popular content at the switch.

Or a bloom filter having a list of content cached in the network can be placed at the proxy to avoid controller lookup.

Page 38: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

38

CONCLUSION In this paper, ContentFlow proposed and evaluated. A generalization of the SDN philosophy to work on the granularity of content rather than flow. This hybrid approach enables the end user to leverage the flexibility of a traditional SDN that provide coupled with the content management properties ICN provides. The system has been implemented in a small scale testbed, and demonstrated that it is able to perform network-layer task at the content level.

Page 39: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

39

REFERENCESAbishek Chanda, Cedric Westphal, “ContentFlow:Mapping Content to Flows in Software Defined Networks” arXiv:103.1493v2, 7 February 2013.

Page 40: ContentFlow: Mapping Content to Flows in Sofware Defined Network Speaker: Zulman Advisor: Dr. Kai-wei ke Date: February 3, 2015 1

40

THANK YOU