1 / 45

Design and Implementation of Web Switch

Design and Implementation of Web Switch. 碩士論文口試 研究生:鄭文信 指導教授:張燕光博士 2004/07/26. Switch. Layer-2 Switch: MAC address Ethernet, ATM Layer-3 Switch: IP address router Layer-4 Switch: TCP or UDP port number NAT

armand
Download Presentation

Design and Implementation of Web Switch

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Design and Implementation of Web Switch 碩士論文口試 研究生:鄭文信 指導教授:張燕光博士 2004/07/26 成功大學資訊工程系 CIAL實驗室

  2. Switch • Layer-2 Switch: MAC address • Ethernet, ATM • Layer-3 Switch: IP address • router • Layer-4 Switch: TCP or UDP port number • NAT • Layer-5 Switch: Web requests using URL, HTTP headers, or users’ registration information • Web switch, layer-7 switch, Content switch 成功大學資訊工程系 CIAL實驗室

  3. Outline • 1. Introduction • 2. Related work • 3. Proposed FPS architecture • 4. Performance Evaluation • 5. Conclusion & Future work 成功大學資訊工程系 CIAL實驗室

  4. Outline • 1. Introduction • 2. Related work • 3. Proposed FPS architecture • 4. Performance Evaluation • 5. Conclusion & Future work 成功大學資訊工程系 CIAL實驗室

  5. Request GET /cial.html Response cial.html Single Server Architecture Web Server 成功大學資訊工程系 CIAL實驗室

  6. seq(CSEQ) SYN SYN, ACK seq(SSEQ) ack(CSEQ+1) Three-way handshake ack(SSEQ+1) ACK lenR GET /cial.html seq(CSEQ+1) cial.html lenD seq(SSEQ+1) ack(CSEQ+1+lenR) data ACK seq(CSEQ+1+lenR) ack(SSEQ+1+lenD) GET /cial.html cial.html HTTP Protocol Socket descriptorC Socket descriptorS Web Server 成功大學資訊工程系 CIAL實驗室

  7. GET /cial.html cial.html Web Server Web Server Clustered Server Architecture Web Switch 成功大學資訊工程系 CIAL實驗室

  8. SYN(CSEQ) SYN(BSEQ) SYN(ASEQ), ACK(CSEQ+1) SYN(SSEQ), ACK(BSEQ+1) ACK(ASEQ+1) ACK(SSEQ+1) DATA(CSEQ+1) lenR DATA(BSEQ+1) DATA(ASEQ+1), ACK(CSEQ+1+lenR) DATA(SSEQ+1), ACK(BSEQ+1+lenR) lenD ACK(ASEQ+1+lenD) ACK(SSEQ+1+lenD) lenR GET /cial.html cial.html lenD HTTP Protocol C A B S Web switch Web Server 成功大學資訊工程系 CIAL實驗室

  9. Outline • 1. Introduction • 2. Related work • 3. Proposed FPS architecture • 4. Performance Evaluation • 5. Conclusion & Future work 成功大學資訊工程系 CIAL實驗室

  10. Proxy Client Web Switch Server A B user space kernel space C S 成功大學資訊工程系 CIAL實驗室

  11. TCP Splicing Client Web Switch Server user space kernel space A B C S 成功大學資訊工程系 CIAL實驗室

  12. Scalable Server Architecture (SSA) Client Web Switch Server user space kernel space A B C S pre-forked connection 成功大學資訊工程系 CIAL實驗室

  13. A A B A B B A B available connection list head GET /index.html HTTP/1.1 GET /index.html HTTP/1.1 index.html index.html mapping table B A B B A B head The Problem of SSA (1/4) Server A C A Server B 成功大學資訊工程系 CIAL實驗室

  14. B GET /a.jpg HTTP/1.1 a.jpg GET /a.jpg HTTP/1.1 a.jpg mapping table B A A B B B B A A B B C head head The Problem of SSA (2/4) Server A A B Server B 成功大學資訊工程系 CIAL實驗室

  15. A GET /b.gif HTTP/1.1 GET /b.gif HTTP/1.1 b.gjf b.gif mapping table A B B A B B B A B C head head The Problem of SSA (3/4) Server A B A Server B 成功大學資訊工程系 CIAL實驗室

  16. B GET /c.cgi HTTP/1.1 c.cgi GET /c.cgi HTTP/1.1 c.cgi mapping table B A B B B A B C head head The Problem of SSA (4/4) Server A A B Server B Swapping four times! 成功大學資訊工程系 CIAL實驗室

  17. Outline • 1. Introduction • 2. Related work • 3. Proposed FPS architecture • 4. Performance Evaluation • 5. Conclusion & Future work 成功大學資訊工程系 CIAL實驗室

  18. A A B A B B A B available connection list head GET /index.html HTTP/1.1 GET /index.html HTTP/1.1 index.html index.html B C A B B A B A C B head Fully Pre-Splicing (1/4) Server A mapping table Server B 成功大學資訊工程系 CIAL實驗室

  19. GET /a.jpg HTTP/1.1 a.jpg GET /a.jpg HTTP/1.1 a.jpg C A B B A B A C B head Fully Pre-Splicing (2/4) Server A mapping table Server B 成功大學資訊工程系 CIAL實驗室

  20. GET /b.gif HTTP/1.1 GET /b.gif HTTP/1.1 b.gif b.gif C A B B A B A C B head Fully Pre-Splicing (3/4) Server A mapping table Server B 成功大學資訊工程系 CIAL實驗室

  21. GET /c.cgi HTTP/1.1 c.cgi GET /c.cgi HTTP/1.1 c.cgi C A B B A B A C B head Fully Pre-Splicing (4/4) Server A mapping table Server B No Swapping times! 成功大學資訊工程系 CIAL實驗室

  22. A Complete Example of FPS 140.116.82.18:80 10.0.0.10:80 10.0.0.1 140.116.82.11 10.0.0.11:80 成功大學資訊工程系 CIAL實驗室

  23. C E B D SYN(1923828202) SYN(627567432) ACK(1923828203) ACK(627567433) SYN(4073346099) SYN(2481257401) SYN(625561648) ACK(4073346100) SYN(250437722) ACK(2481257402) ACK(625561649) ACK(250437723) GET /cial.html (350bytes) DATA_R(2481257402) ACK(250437723) A Complete Example of FPS (1) Client Web Switch Server A Server B 1111 3333 6666 F 6667 80 A 80 成功大學資訊工程系 CIAL實驗室

  24. A Complete Example of FPS (2) Client Web Switch Server A Server B C 1111 3333 E 6666 F 6667 80 A 80 B D DATA_R(1923828203) ACK(627567433) cial.html 2894 bytes DATA_D(250437723) ACK(2481257752) DATA_D(627567433) ACK(1923828553) ACK(250440617) ACK(627570327) 成功大學資訊工程系 CIAL實驗室

  25. A Complete Example of FPS (3) Client Web Switch Server A Server B C 1111 3333 E 6666 F 6667 80 A 80 B D GET /title.jpg (349bytes) DATA_R(2481257752) ACK(250440617) DATA_R(4073346100) ACK(625561649) title.jpg (16464 bytes) DATA_D(250440617) ACK(2481258101) DATA_D(625561649) ACK(4073346449) ACK(250457081) ACK(625578113) 成功大學資訊工程系 CIAL實驗室

  26. Implement FPS • FPS extends and modifies the TCPSP (TCP splicing) project from LVS (linux virtual server) 成功大學資訊工程系 CIAL實驗室

  27. FPS architecture 成功大學資訊工程系 CIAL實驗室

  28. Outline • 1. Introduction • 2. Related work • 3. Proposed FPS architecture • 4. Performance Evaluation • 5. Conclusion & Future work 成功大學資訊工程系 CIAL實驗室

  29. Benchmark • WebBench 5.0 • VeriTest developed WebBench is a licensed PC Magazine benchmark program that measures the performance of web servers. • WebBench calculated two overall server scores • requests per second • bytes per second 成功大學資訊工程系 CIAL實驗室

  30. Experiment 1 Setup • To show the overhead of HTTP header parsing in TCPSP. • The workload were for static files. 成功大學資訊工程系 CIAL實驗室

  31. Experiment 1 Result • Requests per second 成功大學資訊工程系 CIAL實驗室

  32. Experiment 1 Result cont. • Bytes per second 成功大學資訊工程系 CIAL實驗室

  33. Experiment 2 Setup • To compare FPS with TCPSP in distributing every request based on MCRR. • The workload was dynamic cgi request with CPU intensive. 成功大學資訊工程系 CIAL實驗室

  34. Experiment 2 Result – 10.0.0.10 TCPSP FPS 成功大學資訊工程系 CIAL實驗室

  35. Experiment 2 Result – 10.0.0.11 TCPSP FPS 成功大學資訊工程系 CIAL實驗室

  36. Experiment 2 Result – 10.0.0.12 TCPSP FPS 成功大學資訊工程系 CIAL實驗室

  37. 10 reqs/sec 202 ms/req 41 reqs/sec 39 ms/req Experiment 2 Result TCPSP FPS 成功大學資訊工程系 CIAL實驗室

  38. Experiment 2 Result cont. • Define a “diff” value to evaluate the load balancing trends. 成功大學資訊工程系 CIAL實驗室

  39. Experiment 3 Setup • To compare SSA with FPS in measuring swapping overhead. • The workload was developed in WebBench for accessing a simple dynamic cgi file in one minute. 成功大學資訊工程系 CIAL實驗室

  40. Experiment 3 Setup • Workload: 76 requests per second • Normal TCP splicing which represents no overhead in swapping. • TCP splicing with getting the connections from available connection list in and out. 成功大學資訊工程系 CIAL實驗室

  41. Experiment 3 Result • average latency time • FPS (768 ms), SSA (788 ms) • FPS outperforms SSA for 20 ms per request. • Because of the dynamic cgi test, the server consumed much time of generating the response. • In the first experiments, the average latency time • 1.5 ms 成功大學資訊工程系 CIAL實驗室

  42. Outline • 1. Introduction • 2. Related work • 3. Proposed FPS architecture • 4. Performance Evaluation • 5. Conclusion & Future work 成功大學資訊工程系 CIAL實驗室

  43. Conclusion • FPS has several advantages: • First, it extracts the HTTP header in the kernel space to reduce the twice data copy time between user and kernel space. • Second, it forwards the response from server to client in the layer 3.5 of TCP/IP protocol stacks with packet header modification to decrease unnecessary data copy time from kernel to application layer, which is called TCP splicing [5]. • Third, it uses the pre-connection method to diminish the three-way handshake time between the switch and the server connections. • Fourth, we extend the TCP splicing which is content-blind to content-aware. • FPS diminishes the swapping overhead in SSA. 成功大學資訊工程系 CIAL實驗室

  44. Future work • For the integrity of FPS, there are several parts should be improved: • 1. To include more user friendly GUI interfaces for configurations. • 2. Adaptive control of the number of pre-forked connections according to the load of web switch. • QoS (quality of service), TCP tapping, high availability, and fault tolerance etc. 成功大學資訊工程系 CIAL實驗室

  45. Thank for your patience. 成功大學資訊工程系 CIAL實驗室

More Related