Uploaded image for project: 'Traffic Server'
  1. Traffic Server
  2. TS-2431

Add SPDY support to ATS

    XMLWordPrintableJSON

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 5.0.0
    • Component/s: HTTP
    • Labels:
      None

      Description

      I must say, sorry for my late. And now, I have finished the first version, the migration of Taobao SPDY plugin to ATS core.

      But seriously speaking, the migration to ATS core is finished partially. I had tried to remove the dependency of fetcher library created by @Quehan and create a specific VC for each http request in spdy sm, but I found it was too difficult, so I give up temporarily.

      Let me push this series patches to here before it's perfect enough, at least, this series can statisfy TAOBAO's current demand (in fact, this version has had good performance in our testing, but it can do much better I think).

      I had thought another solution instread of recreating a new VC for each http request in spdy sm, which will replace FetchSM's function and speed up SPDY protocol, but will not change the framework of this version. So I can hacking it based on these patches in the future.

      == UPDATE ==

      • From now on, SPDY can work with SSL, Cheers!

      ==How to test it==

      • Install spdylay library, here is URL of this lib:
        Download spdylay library: https://github.com/tatsuhiro-t/spdylay
      • Use '--enable-spdy' option to compile ATS:
        $ ./configure --enable-spdy
        $ make all && make install
        
      • SPDY can work with SSL now, it depends on OpenSSL >= 1.0.1. You can use '--with-openssl=<dir>' option to tell ATS where to search it:
        $ ./configure --enable-spdy --with-openssl=/path/to/openssl-1.01
        
      • Need not to config anything if you just want to test SPDY without SSL.
        The code can recognize SPDY or HTTP by reading this first byte of request.
      • When test SPDY+SSL, you may need to configure SSL key properly for ATS.
      • You can use spdycat in spdylay(or other SPDY client) to do request, for example:
        # SPDY without SSL
        $ spdycat -3 -v --no-tls http://localhost/b.txt
        
        # SPDY + SSL
        $  spdycat -3 -v  https://localhost/b.txt
        
      • You can enable debuging logs of SPDY:
        CONFIG proxy.config.diags.debug.enabled INT 1
        CONFIG proxy.config.diags.debug.tags STRING spdy
        

      ==TODO===

      • Migrate spdy configuration to ATS records.config

      Any feedbacks are welcome.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                yunkai Yunkai Zhang
                Reporter:
                yunkai Yunkai Zhang
              • Votes:
                0 Vote for this issue
                Watchers:
                12 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: