Transparent Redirections in Content Delivery Networks
Abstract
:Featured Application
Abstract
1. Introduction
2. State of the Art
2.1. Protocols and Caching
2.2. CDN Redirections
- DNS (Domain Name System) based request routing
- Application layer request routing
- Transport layer request routing
2.2.1. DNS Based Request Routing
- “The sheer size of the database and frequency of updates suggest that it must be maintained in a distributed manner, with local caching to improve performance. Approaches that attempt to collect a consistent copy of the entire database will become more and more expensive and difficult, and hence should be avoided.”
- “Tradeoffs between the cost of acquiring data, the speed of updates, and the accuracy of caches, the source of data should control the tradeoff.”
- “DNS only allows resolution at the domain level. However, an ideal request resolution system should service request per object level.”
- “In DNS based Request-Routing systems servers may be required to return DNS entries with a short time-to-live (TTL) values. This may be needed in order to be able to react quickly in the face of outages. This in return may increase the volume of requests to DNS servers.”
2.2.2. Application Layer Request Routing
2.2.3. Transport Layer Request Routing
2.3. Existing Transparent Redirection Mechanisms
2.4. TCP Session Handoff
3. SDN Based Transparent Redirection
3.1. System Architecture
- Access Forwarders: conventional OpenFlow 1.3 enabled forwarder aligned with the specification;
- Core Forwarder: conventional OpenFlow 1.3 enabled forwarder with support for experimenter actions that can modify the TCP sequence and acknowledge numbers.
3.2. SDN Based TCP Session Handoff
- Flow mod 2: rewrites destination IP, port and MAC address for the communication from the surrogate server towards the client, where the IP, port and MAC address are rewritten to mimic the request router. Sequence number and Acknowledge number is incremented to synchronize with the TCP session established between the client and request router.
- Flow mod 3: rewrites the source IP, port and MAC address to match the parameters of the client. The packet sent out from the surrogate server is originally destined to the request router.
- Flow mod 4: rewrites source IP, port and MAC address to match the parameters of the request router for the communication from the client towards the surrogate server. Sequence and acknowledgement numbers are incremented to synchronize with the TCP session between the request router and the surrogate server.
- Flow mod 5: rewrites the destination IP, port and MAC address to match the parameters of the surrogate server as the outgoing packet from the client is destined to the request router.
- Flow mod 6 and 7 blocks any further communication from the request router towards the client or surrogate server over the two established TCP sessions.
- Srs: Initial sequence number from request router to the surrogate server;
- Scr: Initial sequence number from client to the request router;
- Rrs: Request size from the request router to the surrogate server;
- Rcr: Request size from client to the request router;
- Src: Initial sequence number from the request router to the client;
- Ssr: Initial sequence number from the surrogate server to the request router.
4. Verification
4.1. Forwarder Implementation
- inc_seq(increment): increments sequence number by the supplied increment argument. The argument is a 4 Byte unsigned integer
- inc_ack(increment): increments the acknowledge number by the supplied increment argument. The argument is a 4 Byte unsigned integer
4.2. SND Controller Implementation
- ForwardingModule: responsible for simple L2 forwarding, and provides shortest path lookup for other modules
- CDNModule: responsible for controlling the CDN, implements connection tracking of TCP sessions and controls the handoff procedure
- DatabaseModule: provides an in memory single source of truth data storage for the SDN controller
- WsEndpointModule: provides a Websocket API using JSON-RPC over the Northbound API
4.3. Request Router Implementation
- Http endpoint module: this module opens a TCP socket, which listens for incoming HTTP requests. The endpoint is running on port 8082. If a request is received, it is parsed and then prepared for handoff.
- Controller endpoint connector module: this module is responsible for communicating with the SDN controller’s Northbound API over the WebSocket based JSON-RPC endpoint.
- Request router module: this module is responsible for handling the CDN logic. The module stores information about the assets and maintains the pool of established TCP connections toward the surrogate servers. On incoming requests, this module is responsible for modifying the request and sending it out to the surrogate server. The surrogate server selection is done by the SDN controller, which is queried by the controller endpoint connector module.
- API endpoint: this module provides a REST API for the GUI. The REST API listens on port 3000.
4.4. Topology and Additional Services
4.4.1. DNS Server
4.4.2. Content Origin
4.4.3. CDN Surrogate Servers
5. Evaluation
5.1. TCP Option Prerequisites
- TCP Timestamps: Timestamp Value (TSval) timestamps are carried in both data and <ACK> segments and are echoed in Timestamp Echo Reply (TSecr) fields carried in returning <ACK> or data segments, originally used primarily for timestamping individual segments, as the properties of the timestamps option allow for taking time measurements. The Timestamps option is important when large receive windows are used to allow the use of PAWS (Protection Against Wrapped Sequence numbers) mechanism. This option further enhances security by eliminating TCP session hijacking [38]. In the moment of the handoff, the TSecr field does not match the TSval of its peer, as this packet was generated by a different node. Stripping off this TCP Option made the handoff work. This option could be synchronized via the control plane too, as during the handoff procedure the packets are traversing through the SDN controller.
- TCP Selective Acknowledgement Option (SACK): TCP may experience poor performance when multiple segments are lost from one window of data. With the limited information available from cumulative acknowledgments, a TCP sender can only learn about a single lost packet per round trip time. An aggressive sender could choose to retransmit packets early, but such retransmitted segments may have already been successfully received. A Selective Acknowledgment (SACK) mechanism, combined with a selective repeat retransmission policy, can help to overcome these limitations. The receiving TCP sends back SACK packets to the sender informing the sender of data that has been received. The sender can then retransmit only the missing data segments [39]. After the handoff, endpoints would see ranges in incorrect values. This could be solved by implementing the incrementing feature of this TCP option too. However, such a feature is challenging, as the order and the position of the TCP options are not fixed in the TCP header. Currently TCP SACK Option is stripped off during the 3-way handshake by the SDN controller.
- Window Scale Option: The three-byte Window Scale option MAY be sent in an SYN segment by a TCP. It indicates that the TCP is prepared to send and receive window scaling and communicate the exponent of a scale factor. The value of the Window Scale option cannot be changed on an established connection [38]. Window scaling option might be problematic when synchronizing different TCP sessions. When a handover is done via the TCP_REPAIR, initial TCP options are synchronized too, which will not happen when two sessions are synchronized with each other. We run several tests and found out when the actual WSCALE is different from the negotiated value the connection control might have issues correctly setting the window sizes, which can end up in a stalled connection. This might happen if the WSCALE TCP option is different on the client and the request router. This issue could be fixed by pre-establishing a pool of TCP sessions towards the surrogate servers using various WSCALE options and choosing the TCP session when doing the handoff, which matches the WSCALE option of the client. This will ensure, that the negotiated WSCALE value is going to be the same even after the handoff.
5.2. Redirection Delay
5.3. Overall Delay and Bandwidth Measurements
5.4. Use Case of a Transparent Proxy
6. Conclusions and Future Work
Author Contributions
Funding
Conflicts of Interest
References
- Pathan, A.M.K.; Buyya, R. A Taxonomy and Survey of Content Delivery Networks, Grid Computing and Distributed Systems GRIDS Laboratory; University of Melbourne: Parkville, Australia, 2006; Volume 148, pp. 1–44. ISBN 9783540778868. ISSN 1876110. [Google Scholar]
- Boros, T.; Kotuliak, I. SDN-based transparent redirection for content delivery networks. In Proceedings of the 2019 42nd International Conference on Telecommunications and Signal Processing (TSP), Budapest, Hungary, 1–3 July 2019; pp. 373–377, ISBN 978-1-7281-1864-2. [Google Scholar] [CrossRef]
- Thompson, K.; Miller, G.J.; Wilder, R. Wide-area internet traffic patterns and characteristics. IEEE Network. 1997, 11, 10–23. [Google Scholar] [CrossRef]
- Cáceres, R.; Danzig, P.B.; Jamin, S.; Mitzel, D.J. Characteristics of wide-area TCP/IP conversations. In Proceedings of the ACM SIGCOMM, Zurich, Switzerland, 3–6 September 1991; Volume 21, pp. 101–112, ISBN 0-89791-444-9. [Google Scholar] [CrossRef]
- Postel, J. Transmission Control Protocol, Darpa Internet Program, Protocol Specification, RFC 793. Available online: https://tools.ietf.org/html/rfc793 (accessed on 21 April 2019).
- Fielding, R.; Reschke, J. (Eds.) Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests, RFC 7232. Available online: https://www.rfc-editor.org/info/rfc7232 (accessed on 21 April 2019).
- Fielding, R.; Nottingham, M.; Reschke, J. (Eds.) Hypertext Transfer Protocol (HTTP/1.1): Caching, RFC 7234. Available online: https://www.rfc-editor.org/info/rfc7234 (accessed on 21 April 2019).
- Barbir, A.; Cain, B.; Nair, R.; Spatscheck, O. Known Content Network (CN) Request-Routing Mechanisms, RFC 3568. Available online: https://www.rfc-editor.org/info/rfc3568 (accessed on 21 April 2019).
- Mockapetris, P. Domain names—Concepts and facilities, STD 13, RFC 1034. Available online: https://www.rfc-editor.org/info/rfc1034 (accessed on 21 April 2019).
- Tanenbaum, A.; van Steem, M. “Server Clusters,” in Distributed Systems—Principles and Paragdims; Paerson Education: London, UK, 2006; ISBN 0-13-239227-5. [Google Scholar]
- Hunt, G.; Nahum, E.; Tracey, J. Enabling Content-Based Load Distribution for Scalable Services; Watson Research Center: New York, NY, USA, 1997. [Google Scholar]
- Braden, R. Extending TCP for Transactions—Concepts, RFC 1379. Available online: https://www.rfc-editor.org/info/rfc1379 (accessed on 21 April 2019).
- Braden, R. T/TCP—TCP Extensions for Transactions Functional Specification, RFC 1644. Available online: https://www.rfc-editor.org/info/rfc1644 (accessed on 21 April 2019).
- Hannum, C. Security Problems Associated with T/TCP. Cambridge, Massechusetts, 1996. [Google Scholar]
- Hannum, C. T/TCP vulnerabilities. Phrack Mag. 1998, 8, 6–15. [Google Scholar]
- Cooney, M. Getting corporate intranets under control. Netw. World 1996, 13, 17. [Google Scholar]
- Wang, L. Design and Implementation of TCPHA 2005. (Draft Release).
- Acharya, A.; Shaikh, A. Using mobility support for request-routing in IPv6 CDNs. In 7th International Workshop on Web Content Caching Distribution; Watson Research Center: Hawthorne, NY, USA, 2002. [Google Scholar]
- Johnson, D.; Perkins, C.; Arkko, J. Mobility Support in IPv6, RFC 3775. Available online: https://www.rfc-editor.org/info/rfc3775 (accessed on 21 April 2019).
- Google Inc. IPv6 Statistics. 2019. Available online: https://www.google.com/intl/en/ipv6/statistics.html#tab=ipv6-adoption&tab=ipv6-adoption (accessed on 14 April 2019).
- Wichtlhuber, M.; Reinecke, R.; Hausheer, D. An SDN-based CDN/ISP collaboration architecture for managing high-volume flows. IEEE Trans. Netw. Serv. Manag. 2015, 12, 48–60. [Google Scholar] [CrossRef]
- Corbet, J. TCP connection repair. 2012. Available online: https://lwn.net/Articles/495304/ (accessed on 14 April 2019).
- Hayakawa, Y.; Eggert, L.; Honda, M.; Santry, D. Prism: A proxy architecture for datacenter networks. In Proceedings of the 2017 Symposium on Cloud Computing—SoCC, Santa Clara, CA, USA, 24–27 September 2017; pp. 181–188, ISBN 9781450350280. [Google Scholar] [CrossRef]
- Honda, M.; Huici, F.; Lettieri, G.; Rizzo, L. mSwitch: A highly-scalable, modular software switch. In Proceedings of the 1st ACM SIGCOMM Symposium on Software Defined Networking Research—SOSR ’15, Santa Clara, CA, USA, 17–18 June 2015; pp. 1–13, ISBN 9781450334518. [Google Scholar] [CrossRef] [Green Version]
- Nadeau Thomas, G.K. SDN—Software Defined Networks; O’Reilly Media Inc.: Sebastopol, CA, USA, 2013; pp. 1–9. ISBN 978-1449342302. [Google Scholar]
- Open Networking Foundation. Software-Defined Networking: The New Norm for Networks; ONF White Paper: Menlo Park, CA, USA, 2012. [Google Scholar]
- Heller, B. OpenFlow Switch Specification version 1.3.5; ONF: Menlo Park, CA, USA, 2009. [Google Scholar]
- Fielding, R.; Gettys, J.; Mogul, J.; Frystyk, H.; Masinter, L.; Leach, P.; Berners-Lee, T. Hypertext Transfer Protocol—HTTP/1.1, RFC 2616. Available online: https://www.rfc-editor.org/info/rfc2616 (accessed on 21 April 2019).
- Pfaff, B.; Pettit, J.; Koponen, T.; Jackson, E.; Zhou, A.; Rajahalme, J.; Gross, J.; Wang, A.; Stringer, J.; Shelar, P. The design and implementation of open vSwitch. In Proceedings of the 12th USENIX Conference on Networked Systems Design and Implementation, Oakland, CA, USA, 4–6 May 2015; pp. 117–130. [Google Scholar]
- Pan, H.-Y.; Wang, S.-Y. Optimizing the SDN control-plane performance of the Openvswitch software switch. In Proceedings of the 2015 IEEE Symposium on Computers and Communication (ISCC), Larnaca, Cyprus, 6–9 July 2015; pp. 403–408, ISBN 978-1-4673-7194-0. [Google Scholar] [CrossRef]
- Shanmugalingam, S.; Ksentini, A.; Bertin, P. DPDK Open vSwitch performance validation with mirroring feature. In Proceedings of the 2016 23rd International Conference on Telecommunications (ICT), Thessaloniki, Greece, 16–18 May 2016; pp. 1–6, ISBN 978-1-5090-1990-8. [Google Scholar] [CrossRef]
- Ashley, M.; Brown, A.; Jaißle, A.; Sahani, S.; Simpson, B.; Tierney, B. iPerf—The ultimate speed test tool for TCP, UDP and SCTP. Available online: https://iperf.fr/ (accessed on 21 April 2019).
- Lantz, B.; Heller, B.; McKeown, N. A network in a laptop. In Proceedings of the Ninth ACM SIGCOMM Workshop on Hot Topics in Networks—Hotnets ’10, Monterey, CA, USA, 20–21 October 2010; pp. 1–6, ISBN 9781450304092. [Google Scholar] [CrossRef]
- Ryu SDN Framework Community, COMPONENT-BASED SOFTWARE DEFINED NETWORKING FRAMEWORK: Build SDN Agilely. 2017. Available online: https://osrg.github.io/ryu/ (accessed on 30 September 2017).
- Tilkov, S.; Vinoski, S. Node.js: Using JavaScript to Build High-Performance Network Programs. IEEE Internet Comput. 2010, 14, 80–83. [Google Scholar] [CrossRef]
- Greenstein, S. How Much Apache? IEEE Micro 2013, 33, 80. [Google Scholar] [CrossRef]
- Reese, W. Nginx: The High-performance Web Server and Reverse Proxy. Linux J. 2008, 173. Article no. 2. [Google Scholar]
- Borman, D.; Braden, B.; Jacobson, V.; Scheffenegger, R. (Eds.) TCP Extensions for High Performance, RFC 7323. Available online: https://www.rfc-editor.org/info/rfc7323 (accessed on 21 April 2019).
- Mathis, M.; Mahdavi, J.; Floyd, S.; Romanow, A. TCP Selective Acknowledgment Options, RFC 2018. Available online: https://www.rfc-editor.org/info/rfc2018 (accessed on 21 April 2019).
Server | MGMT Network | Internal L2 NTW |
---|---|---|
mn | 10.9.1.10/24 | - |
services | 10.9.1.11/24 | 10.11.0.99/24 |
rr | 10.9.1.12/24 | 10.11.0.100/24 |
se1 | 10.9.1.13/24 | 10.11.0.11/24 |
se2 | 10.9.1.14/24 | 10.11.0.12/24 |
client1 | 10.9.1.15/24 | 10.11.0.101/24 |
client2 | 10.9.1.16/24 | 10.11.0.102/24 |
Domain Name | Record | IP/Domain | Node |
---|---|---|---|
dns.dizp.bt | A | 10.11.0.99 | DNS server |
rr.dizp.bt | A | 10.11.0.100 | Request Router |
se1.cdn.dizp.bt | A | 10.11.0.11 | Surrogate 1 |
se2.cdn.dizp.bt | A | 10.11.0.12 | Surrogate 2 |
origin.dizp.bt | A | 10.11.0.99 | Origin |
www.dizp.bt | CNAME | origin.dizp.bt | Origin |
cdn.dizp.bt | CNAME | rr.dizp.bt | Request Router |
© 2019 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Boros, T.; Bencel, R.; Kotuliak, I. Transparent Redirections in Content Delivery Networks. Appl. Sci. 2019, 9, 5418. https://doi.org/10.3390/app9245418
Boros T, Bencel R, Kotuliak I. Transparent Redirections in Content Delivery Networks. Applied Sciences. 2019; 9(24):5418. https://doi.org/10.3390/app9245418
Chicago/Turabian StyleBoros, Tomáš, Rastislav Bencel, and Ivan Kotuliak. 2019. "Transparent Redirections in Content Delivery Networks" Applied Sciences 9, no. 24: 5418. https://doi.org/10.3390/app9245418
APA StyleBoros, T., Bencel, R., & Kotuliak, I. (2019). Transparent Redirections in Content Delivery Networks. Applied Sciences, 9(24), 5418. https://doi.org/10.3390/app9245418