470 likes | 825 Views
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
E N D
Design and Implementation of Web Switch 碩士論文口試 研究生:鄭文信 指導教授:張燕光博士 2004/07/26 成功大學資訊工程系 CIAL實驗室
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實驗室
Outline • 1. Introduction • 2. Related work • 3. Proposed FPS architecture • 4. Performance Evaluation • 5. Conclusion & Future work 成功大學資訊工程系 CIAL實驗室
Outline • 1. Introduction • 2. Related work • 3. Proposed FPS architecture • 4. Performance Evaluation • 5. Conclusion & Future work 成功大學資訊工程系 CIAL實驗室
Request GET /cial.html Response cial.html Single Server Architecture Web Server 成功大學資訊工程系 CIAL實驗室
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實驗室
GET /cial.html cial.html Web Server Web Server Clustered Server Architecture Web Switch 成功大學資訊工程系 CIAL實驗室
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實驗室
Outline • 1. Introduction • 2. Related work • 3. Proposed FPS architecture • 4. Performance Evaluation • 5. Conclusion & Future work 成功大學資訊工程系 CIAL實驗室
Proxy Client Web Switch Server A B user space kernel space C S 成功大學資訊工程系 CIAL實驗室
TCP Splicing Client Web Switch Server user space kernel space A B C S 成功大學資訊工程系 CIAL實驗室
Scalable Server Architecture (SSA) Client Web Switch Server user space kernel space A B C S pre-forked connection 成功大學資訊工程系 CIAL實驗室
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實驗室
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實驗室
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實驗室
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實驗室
Outline • 1. Introduction • 2. Related work • 3. Proposed FPS architecture • 4. Performance Evaluation • 5. Conclusion & Future work 成功大學資訊工程系 CIAL實驗室
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實驗室
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實驗室
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實驗室
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實驗室
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實驗室
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實驗室
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實驗室
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實驗室
Implement FPS • FPS extends and modifies the TCPSP (TCP splicing) project from LVS (linux virtual server) 成功大學資訊工程系 CIAL實驗室
FPS architecture 成功大學資訊工程系 CIAL實驗室
Outline • 1. Introduction • 2. Related work • 3. Proposed FPS architecture • 4. Performance Evaluation • 5. Conclusion & Future work 成功大學資訊工程系 CIAL實驗室
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實驗室
Experiment 1 Setup • To show the overhead of HTTP header parsing in TCPSP. • The workload were for static files. 成功大學資訊工程系 CIAL實驗室
Experiment 1 Result • Requests per second 成功大學資訊工程系 CIAL實驗室
Experiment 1 Result cont. • Bytes per second 成功大學資訊工程系 CIAL實驗室
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實驗室
Experiment 2 Result – 10.0.0.10 TCPSP FPS 成功大學資訊工程系 CIAL實驗室
Experiment 2 Result – 10.0.0.11 TCPSP FPS 成功大學資訊工程系 CIAL實驗室
Experiment 2 Result – 10.0.0.12 TCPSP FPS 成功大學資訊工程系 CIAL實驗室
10 reqs/sec 202 ms/req 41 reqs/sec 39 ms/req Experiment 2 Result TCPSP FPS 成功大學資訊工程系 CIAL實驗室
Experiment 2 Result cont. • Define a “diff” value to evaluate the load balancing trends. 成功大學資訊工程系 CIAL實驗室
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實驗室
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實驗室
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實驗室
Outline • 1. Introduction • 2. Related work • 3. Proposed FPS architecture • 4. Performance Evaluation • 5. Conclusion & Future work 成功大學資訊工程系 CIAL實驗室
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實驗室
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實驗室
Thank for your patience. 成功大學資訊工程系 CIAL實驗室