HOW QUIC WORKS - Intro to the QUIC Transport Protocol

แชร์
ฝัง
  • เผยแพร่เมื่อ 10 ก.ค. 2024
  • QUIC is here. The RFC just dropped. We may know that QUIC is over UDP, but let's learn how the QUIC transport protocol works with an intro to the core features. We will talk about QUIC vs TCP and whether QUIC will replace TCP or not.
    Check out my new Protocol Deep Dive: QUIC course on Pluralsight. You can watch it for free with a 10 day trial: www.bit.ly/quicprotocol
    Please smash the like button to let me know if you dig this content!
    // WIRESHARK TRAINING - Udemy//
    ▶Getting Started with Wireshark - bit.ly/udemywireshark
    // WIRESHARK TRAINING - Pluralsight//
    Check out the free 10-day trial of my hands-on courses on Pluralsight:
    ▶TCP Fundamentals with Wireshark - www.bit.ly/wiresharktcp
    ▶Identify Cyber Attacks with Wireshark - www.bit.ly/wiresharkhunt
    ▶TCP Deep Dive with Wireshark - bit.ly/virtualwireshark
    //LIVE TRAINING COURSE//
    ▶TCP/IP Deep Dive Analysis with Wireshark - bit.ly/virtualwireshark
    -------------- Trace File Analysis Services//Private Training ----------------------
    Got packet problems that you need help digging into?
    Want to schedule a private training for your team?
    www.packetpioneer.com/contact
    Chapters in video:
    0:00 Introduction to QUIC
    0:54 TCP vs QUIC
    3:00 The QUIC Connection
    5:07 0-RTT Explained
    7:00 QUIC Review

ความคิดเห็น • 126

  • @ChrisGreer
    @ChrisGreer  3 ปีที่แล้ว +17

    QUIC is here! The RFC just dropped. Let's learn about this new protocol that stands ready to take on some of the TCP workload over the web.
    Check out my new Protocol Deep Dive: QUIC course on Pluralsight. You can watch it for free with a 10 day trial: www.bit.ly/wiresharkquic
    Please smash the like button to let me know if you dig this content!

    • @toptalkers7980
      @toptalkers7980 3 ปีที่แล้ว

      Will it replace the TCP?

    • @ileonardor
      @ileonardor 2 ปีที่แล้ว

      Just found your channel and I'm already a fan. Many thanks, Chris!

    • @ChrisGreer
      @ChrisGreer  2 ปีที่แล้ว +1

      @@ileonardor Thanks for the comment!

  • @clintonh7399
    @clintonh7399 ปีที่แล้ว +11

    You are a natural teacher, friend. Just starting to go deeper into IT, networking, cyber sec, etc. And even though I have limited knowledge, I felt like I could follow everything you were covering. Instantly Subbed. Thank you!

  • @EliteTech24
    @EliteTech24 2 ปีที่แล้ว +1

    I love the way you teach it’s so understandable

  • @richi3161
    @richi3161 3 ปีที่แล้ว +3

    We havw a RFC! Great short summary of QUIC. Thanks, Chris!

  • @maxquasar
    @maxquasar 3 ปีที่แล้ว +1

    Great summary! Thank you very much for sharing.

  • @bhumithit
    @bhumithit 3 ปีที่แล้ว

    Really appreciated. Superb video. BTW, I am learning new things every single day by watching your videos. Go on like this 👍👍👍

  • @pardeeplakhani
    @pardeeplakhani 3 ปีที่แล้ว +1

    Thanks for the insights into QUIC

  • @shruthis56
    @shruthis56 3 ปีที่แล้ว

    Clear and great explanation. Waiting for many more videos and learning from you. Thank you Chris.

    • @ChrisGreer
      @ChrisGreer  3 ปีที่แล้ว

      Awesome, thank you!

  • @Ankitkumargupta12
    @Ankitkumargupta12 2 ปีที่แล้ว +5

    Thanks for explaining it so nicely and concisely. Appreciate your effort !!

    • @ChrisGreer
      @ChrisGreer  2 ปีที่แล้ว

      Glad it was helpful!

  • @inurspace
    @inurspace 9 หลายเดือนก่อน

    Chris, I love the way you explain things. So easy to follow. I'm hoping to do some of your courses once I'm done with my current studies next month. Cheers Wayne

  • @KarthikMcyclist
    @KarthikMcyclist 3 ปีที่แล้ว +1

    Great Overview !

  • @adamderyo8257
    @adamderyo8257 ปีที่แล้ว

    Thanks for explaining in quic and concise manner ;)

  • @pierreklee8032
    @pierreklee8032 2 ปีที่แล้ว

    I am learning from you! Thank you!!!

  • @rahultichkule7557
    @rahultichkule7557 3 ปีที่แล้ว +3

    Chris, your videos helped me crack interviews. Thanks for all the work you are doing. keep it up

    • @ChrisGreer
      @ChrisGreer  3 ปีที่แล้ว

      Thanks for the comment, glad to hear it!

  • @donniereidjr
    @donniereidjr 3 ปีที่แล้ว +1

    Good stuff Chris. You're a phenomenal instructor.

    • @ChrisGreer
      @ChrisGreer  3 ปีที่แล้ว

      Thanks for the comment!

  • @user-dr3rq5cf4d
    @user-dr3rq5cf4d 5 หลายเดือนก่อน

    By far one of the best tutorials I've watched in a long time!! Thanks a lot!

    • @ChrisGreer
      @ChrisGreer  5 หลายเดือนก่อน

      Thanks for the comment!

  • @sapnachaudhary9418
    @sapnachaudhary9418 2 ปีที่แล้ว

    Thanks for this video Chris !!

    • @sapnachaudhary9418
      @sapnachaudhary9418 2 ปีที่แล้ว

      Hi Chris,
      I have one video request for you.
      Can you make a video on MPTCP. Although many videos are available but the way you explain makes me understand things better.
      Looking forward for MPTCP video soon!!

  • @juanandrew1356
    @juanandrew1356 2 ปีที่แล้ว

    explanation is clear and concise. appreciate it!

  • @NimTheHuman
    @NimTheHuman 2 ปีที่แล้ว +1

    Thank you for this super concise explanation, Chris! :)

    • @ChrisGreer
      @ChrisGreer  2 ปีที่แล้ว

      Glad it was helpful!

  • @arvindgupta5457
    @arvindgupta5457 2 ปีที่แล้ว

    Thanks , for your wonderful Explanation.

    • @ChrisGreer
      @ChrisGreer  2 ปีที่แล้ว

      You are welcome!

  • @lauradesouza9980
    @lauradesouza9980 2 ปีที่แล้ว

    It’s very good explanation, thank you very much!

    • @ChrisGreer
      @ChrisGreer  2 ปีที่แล้ว

      You are welcome!

  • @selvidct
    @selvidct 3 ปีที่แล้ว

    Brilliant Explanation 👏👏

    • @ChrisGreer
      @ChrisGreer  3 ปีที่แล้ว

      Glad you liked it

  • @ratnavodutta
    @ratnavodutta ปีที่แล้ว

    That was really quick Quic 😁 loved your video

  • @gabrielverreault4301
    @gabrielverreault4301 3 ปีที่แล้ว +3

    Great overview Chris! Hope you'll have a course / lab on this at Sharkfest next year. Really enjoyed your presentations last year.

    • @ChrisGreer
      @ChrisGreer  3 ปีที่แล้ว +1

      Actually I will! I'll be speaking on QUIC at Sharkfest Europe next week, then again at the US conference in September. Stay tuned!

  • @omerbennahum1903
    @omerbennahum1903 8 หลายเดือนก่อน

    Thank you

  • @franzforddecrito2003
    @franzforddecrito2003 5 หลายเดือนก่อน

    Great vid! Very concise!! Would love to see one for MASQUE..

  • @JivanPal
    @JivanPal 2 ปีที่แล้ว

    Fab overview!

  • @hamzazahidulislam3490
    @hamzazahidulislam3490 3 หลายเดือนก่อน

    Thanks :)

  • @sagumekishin5748
    @sagumekishin5748 3 ปีที่แล้ว

    Thanks for doing a video on QUIC. Have you ever considered doing a video on SCTP?

  • @Teamsniper360
    @Teamsniper360 2 ปีที่แล้ว

    u very good teacher thank you

  • @rdscog
    @rdscog 2 ปีที่แล้ว

    Awesome!

  • @iginiofitzpatrick6572
    @iginiofitzpatrick6572 ปีที่แล้ว

    I learned about your channel because of a video you made with David Bombal. Thanks for your videos.

  • @jax4652
    @jax4652 ปีที่แล้ว

    Today I learn many things.

  • @dinieshvc8069
    @dinieshvc8069 2 ปีที่แล้ว

    Nice explanation

    • @ChrisGreer
      @ChrisGreer  2 ปีที่แล้ว

      Thanks for liking

  • @oscarlevipaguada
    @oscarlevipaguada 2 ปีที่แล้ว

    Chris great channel. I made it here through David Bombal and I’m glad he’s had you on. Definitely subbing

    • @ChrisGreer
      @ChrisGreer  2 ปีที่แล้ว

      Glad to have you! Thanks for the comment and welcome.

  • @joerockhead7246
    @joerockhead7246 3 ปีที่แล้ว +7

    Chris, Thanks for posting. Have you ever considered putting your videos on Udemy?

    • @ChrisGreer
      @ChrisGreer  3 ปีที่แล้ว +1

      Hi Joe! Yes sir I have. It's tough though because I already have content on Pluralsight so I've chosen to go that route for now. Thank you for the comment though - I appreciate the idea.

  • @punggukbulan8674
    @punggukbulan8674 2 ปีที่แล้ว

    hi Chris, i am capturing youtube traffic, there is mixing protocol of QUIC and GQUIC inside the captured file. What is the relation between QUIC and GQUIC ? and how to correlate QUIC and GQUIC in that youtube file ?

  • @lohphat
    @lohphat ปีที่แล้ว

    How is QUIC used at the client and server app layer? Is there a new library which does all the QUIC before it hits the network stack?

  • @-gbogbo-
    @-gbogbo- 2 ปีที่แล้ว

    Any intro on MPTCP any time soon? Kudos for your trainings BTW, top quality!

    • @ChrisGreer
      @ChrisGreer  2 ปีที่แล้ว +1

      I didn't have any plans to cover MPTCP yet - I just haven't seen it enough in the wild yet to master it. But if I do, the video will definitely follow.

    • @-gbogbo-
      @-gbogbo- 2 ปีที่แล้ว

      @@ChrisGreer Thanks for the answer. Siri, Apple Maps and Apple Music are supposed to use it I believe.

  • @prashantsahu3474
    @prashantsahu3474 2 ปีที่แล้ว

    hiii chris, i have a issue, in my chrome, quic allowed policy is set to false and i am not having avast or avg antivirus installed, i have windows security, due to this chrome is showing your browser is managed by organization which is annoying, i want to know about quicallowed policy being set to false is good for me or not. i mean its ok or not.

  • @AbacateSexy
    @AbacateSexy 3 ปีที่แล้ว +7

    if QUIC runs over UDP, how is the integrity of the packet guaranteed? I thought that was the whole appeal of TCP (being connection oriented and all that)
    also, isnt QUIC an acronym for Quick UDP Internet Connection?
    thanks for the video! Youve helped me a lot!

    • @ChrisGreer
      @ChrisGreer  3 ปีที่แล้ว +14

      Hey! I go deep into those topics in my QUIC course on Pluralsight - www.bit.ly/wiresharkquic But just to boil it down - QUIC sits on top of UDP, but that doesn't mean it is not connection-oriented. QUIC itself builds and manages the connection between the endpoints. So any lost data is retransmitted by QUIC, not UDP. UDP doesn't care, it is just the messenger. QUIC at one time was an acronym for Quick UDP Internet Connection, but that has since been obsolete. They did away with the acronym and now QUIC is just the name. Hope this helps!

    • @AbacateSexy
      @AbacateSexy 3 ปีที่แล้ว +2

      @@ChrisGreer thank you so much, it helped a lot! Cheers man keep up the great work!

    • @Davi-go1ct
      @Davi-go1ct 2 ปีที่แล้ว

      Hi Chris - great video - easy to follow and helpful. Is there a UDP centric video?

  • @sandeepawatade446
    @sandeepawatade446 ปีที่แล้ว

    I am un able to make payment to access that quic drive course ..it does not accept credit card.Any other solution for this

  • @richardwang3438
    @richardwang3438 2 ปีที่แล้ว

    where can I get a packet head cap?

  • @sushmithay3950
    @sushmithay3950 ปีที่แล้ว

    If blocked the keyword in firewall then in chromium browser tha blocked website is able to acces in packet captures we observed instead of TCP there is QUIC

  • @canert3553
    @canert3553 3 ปีที่แล้ว

    Hi Chris, thanks for your sharing. I am wondering somethings. Can we say that quic will die the tcp? Also, does quic protocol need more bandwith than tcp?

    • @ChrisGreer
      @ChrisGreer  3 ปีที่แล้ว

      TCP will still be around for awhile, but QUIC will take on some of it's workload for web based apps. QUIC doesn't need more bandwidth, as the data is generally the same. It's just carried differently.

  • @TheWallReports
    @TheWallReports 2 ปีที่แล้ว +1

    Chris, good presentation. I noticed one error made. Perhaps it was a slip of the tongue. If QUIC runs on top of UDP it cannot be as stated another or new transport protocol. Both TCP and UDP are OSI transport layer protocols. This would make QUIC an OSI sessions layer protocol.

    • @ChrisGreer
      @ChrisGreer  2 ปีที่แล้ว +1

      Check out RFC 9000 - datatracker.ietf.org/doc/html/rfc9000. The first sentence is “This document defines the core of the QUIC transport protocol.” QUIC covers aspects of the transport layer, so it is a transport protocol. I can totally understand the confusion though - until now we have largely only had TCP/UDP at that layer. Think of QUIC as layer 4.5. 😁 trust me it helps!

    • @TheWallReports
      @TheWallReports 2 ปีที่แล้ว

      @@ChrisGreer curious. After posting that also occurred to me as well. Perhaps QUIC falls somewhere in as a layer 4.5 protocol. Or maybe the reference is to the TCP/IP layer stack rather than the OSI layer stack I'm referencing. Anyways, thanks for link; I will dive through it.

  • @shoshemon
    @shoshemon 2 ปีที่แล้ว

    What about ddos attack? UDP is favorite one for hackers to attack network; a simple port scan, see what udp port are open, and done, deliver a big ddos attack; how handle this with QUIC?

  • @ozan628
    @ozan628 22 วันที่ผ่านมา

    At 6:37, why do we compare UDP to IP, instead of asking "why is quic built on top of UDP instead of TCP". I am confused because IP is a network layer protocol, so obviously it makes more sense to build quic on top of UDP. What do i miss here?

  • @elalemanpaisa
    @elalemanpaisa ปีที่แล้ว

    Btw Nginx already providing binaries with quic support though still preview :)

  • @sushmithay3950
    @sushmithay3950 ปีที่แล้ว

    After cleaning of cache memory then the website is able to blocking

  • @myusrn
    @myusrn 2 ปีที่แล้ว

    How does quick traverse homenet [ and corporate ] firewalls given there is no client side initiated tcp connection to support the server sent download and stream payloads?

    • @ChrisGreer
      @ChrisGreer  2 ปีที่แล้ว +1

      The client initiates the QUIC connection, much like it initiates a TCP connection. Since the firewall sees the Initial packet going out, it allows the reply back through - just like with TCP.

  • @pcbona
    @pcbona 3 ปีที่แล้ว

    So how does quick handle packetloss? how does it utilize max bandwidth without overcongestion? is global synchronization an issue with quic? How does quic determine the MSS along a path?

    • @ChrisGreer
      @ChrisGreer  3 ปีที่แล้ว

      Hey Mario - Great questions. QUIC acks on a per-packet basis. Note: not an IP packet, but a QUIC packet. The UDP payload can carry more than one. When one goes missing, only those streams within the QUIC packet are impacted. QUIC only retransmits data for the affected stream. Within each stream, and with the connection as a whole, congestion algorithms very similar to the ones used with TCP are implemented. Not sure what you mean about global synchronization. QUIC starts out with the largest packet payload first which, if there are MTU problems, will reveal that before the connection kicks off.

  • @Specsy
    @Specsy 2 ปีที่แล้ว +1

    make a video on how QUIC is going to help solana avoid spam transactions on the blockchain please

  • @chinmayrath8494
    @chinmayrath8494 ปีที่แล้ว

    Hey, got a question, protocols like UDP, TCP and IP are implemented into the kernel right ?? So why would it be hard to rollout QUIC if its based on top of IP instead of UDP, as both IP and UDP are present in the kernel ???

    • @ChrisGreer
      @ChrisGreer  ปีที่แล้ว +1

      Because you would have to update every kernel in the planet to support QUIC/IP. Where if you put it on top of UDP, the system will just treat it like an application and send it up the stack

    • @chinmayrath8494
      @chinmayrath8494 ปีที่แล้ว

      @@ChrisGreer oooh, got it, thanks for the prompt reply, really appreciate it 🍻

  • @knubertus
    @knubertus 2 ปีที่แล้ว +1

    Thanks, great Video.
    But i have one question: When I lock in a Wireshark capture. Before Quick is established, a normal TCP handshake is done first. Only then QUICK is used. The advantage of QUICK is lost, isn't it?

    • @ChrisGreer
      @ChrisGreer  2 ปีที่แล้ว +1

      Not all advantages are lost. Just the initial QUIC connection time. But all other QUIC features (streams, built-in TLS, no head of line blocking) are still there, even if the browser first knocks on the server door using TCP. Since QUIC is so new, it's common to see non-chrome browsers do that first.

    • @knubertus
      @knubertus 2 ปีที่แล้ว

      @@ChrisGreer Thanks for the answer. I have another question: As I understand it, firewalls can no longer do any content filtering due to the encryption of QUIC. Is this true or is there a way to look into a QUIC traffic?

  • @gregnstuff1118
    @gregnstuff1118 3 ปีที่แล้ว +1

    Any chance that the QUIC videos will be put on something like Udemy so they can be purchased. I am trying not to sign up for another monthly subscription service if I can help it. I would rather give you $30 for the videos than sign up for a month... I have already used my free trial on Pluralsight and also trying not to set up another gmail account for a free trial ;)

    • @ChrisGreer
      @ChrisGreer  3 ปีที่แล้ว +2

      Oh gotcha. It's something I could consider. Thanks for the comment and the productive suggestion.

  • @marc0523
    @marc0523 3 ปีที่แล้ว

    Where does it sit in the OSI Layer? Is it at layer 4 or closer to layer 7?
    If it is higher wouldn't this potentially cause more overhead for the computers at either edge that TCP would?

    • @ChrisGreer
      @ChrisGreer  3 ปีที่แล้ว +2

      Like the RFC mentions, QUIC is a transport protocol. That said however, it also dips a bit into the application layer with the way that it sets up streams, which used to be handled just by HTTP/2. So to me, it's a transport protocol with a toe into the application layer.

    • @marc0523
      @marc0523 3 ปีที่แล้ว

      @@ChrisGreer So what's the CPU hit for this? Does it cause processor overhead on just the two ends, or is it so little that we don't even need to worry about it?

    • @ChrisGreer
      @ChrisGreer  3 ปีที่แล้ว +1

      For the time being, I'm guessing it will be more intensive on the CPU, or at least until OS's and apps start to optimize it. Here is a report about it - conferences.sigcomm.org/sigcomm/2020/files/slides/epiq/0%20QUIC%20and%20HTTP_3%20CPU%20Performance.pdf

  • @aymenbouallagui8818
    @aymenbouallagui8818 5 หลายเดือนก่อน

    Hello guys , does anyone have a working simple client/server protocol in any programming language ?

  • @f.3850
    @f.3850 4 หลายเดือนก่อน

    Which one is better QUIC or TCP?

  • @user-hw4td5zc1g
    @user-hw4td5zc1g 10 หลายเดือนก่อน

    tcp udp and quic?

  • @alex_smallet
    @alex_smallet 2 ปีที่แล้ว

    QUIC is an acronym for Quick UDP Internet Connections.

    • @ChrisGreer
      @ChrisGreer  2 ปีที่แล้ว

      RFC 9000 Section 1.2: QUIC: The transport protocol described by this document. QUIC is a name, not an acronym. datatracker.ietf.org/doc/html/rfc9000

  • @sushmithay3950
    @sushmithay3950 ปีที่แล้ว

    Why it happens?

  • @minuterain
    @minuterain 2 ปีที่แล้ว

    Dear Chris, good day sir!
    Let's say we would be interested in acquiring consultation services from you,
    Is there a way we may do so ?
    We're a finance company located in Malaysia, Zoom intermittent quality and performances has baffled us for the past 2 years,
    Hoping you'd undertake the singular and interesting subject and even more so the opportunity to be ale to work with you :D

  • @elfbark624
    @elfbark624 3 ปีที่แล้ว

    Does it have an ErC-20 token? I know some idiots that will likely trade it.

  • @cryptomoonmonk
    @cryptomoonmonk 2 ปีที่แล้ว

    It seems so obvious? I'm guessing it was advancements in crunching the TLS into the UDP first step or why wouldn't this have been in place initially and TCP avoided all together. Just named it UDPS and UDP, UDPS for secure? I'm learning Networking + now and am guessing I'll eventually know this answer come the time.

    • @cryptomoonmonk
      @cryptomoonmonk 2 ปีที่แล้ว

      Also, thanks for the video!

    • @ChrisGreer
      @ChrisGreer  2 ปีที่แล้ว

      Hey Adam, thanks for watching! So QUIC doesn't crunch TLS into UDP. Instead TLS was crunched into QUIC. Since QUIC is a brand new transport layer protocol (Think of it almost like layer 4.5) it couldn't be put right on top of IP because it would take forever for every device in the world to support it. By using UDP/IP as the carrier, QUIC is almost turnkey. UDP is not any more secure than it ever was - it's still just an 8 byte protocol header. Two ports, a length, and a checksum. No bells and whistles at that layer. The smarts and security is all built into QUIC.

  • @claudioestevez61
    @claudioestevez61 2 ปีที่แล้ว

    3:11 QUIC = Quick UDP Internet Connection

    • @ChrisGreer
      @ChrisGreer  2 ปีที่แล้ว

      RFC 9000 Section 1.2 - QUIC:The transport protocol described by this document. QUIC is a name, not an acronym. 😉

  • @kaleemullah247
    @kaleemullah247 ปีที่แล้ว

    h2 is like old generation people, who first get to know each other, make sure they are on the same page, then they date, and the new gen QUIC people, well they jump straight in.

  • @samkachar
    @samkachar ปีที่แล้ว

    I don't understand why it'd be a problem if quic sat atop of IP as he put it. Would really like to hear someone's explanation on this one as it sounds wrong to me. I always understood IP as being its own thing that other protocols used. Great example is how tcp is generally reffed to as TCP/IP.

    • @ChrisGreer
      @ChrisGreer  ปีที่แล้ว

      That is a good question. If QUIC sat right on top of IP, every device in the world (network infrastructure, end user devices, phones, tablets, printers, IoT devices, etc, etc) would need a specific upgrade to the kernel stack in order to use QUIC. That would have a very long implementation cycle. QUIC sits on UDP because all those devices already support UDP. QUIC can be passed up to the sub-application layer immediately without the device getting stuck

    • @samkachar
      @samkachar ปีที่แล้ว

      @@ChrisGreer so quic leverages UDPs access to the IP stack then? Why can't the network drivers just be extended to allow quic to work natively with IP? Or is that the issue at hand? I don't understand drivers inside the network stack well enough to speak intelligently on them. I just assume that if something needs to use existing protocols it simply makes the calls to them.

  • @riadafridishibly327
    @riadafridishibly327 3 ปีที่แล้ว +1

    Well, that was QUIC...

  • @everestshadow
    @everestshadow 2 ปีที่แล้ว

    LOL. yea UDP is so well supported that a lot of firewalls and ISPs just block them right away.

  • @imichael.
    @imichael. 4 หลายเดือนก่อน

    Just a tip: Don't use the letter S to represent two different things at the same time.

  • @shozdott
    @shozdott ปีที่แล้ว

    Can they abuse rights easier with this protocol in future? and force routing into blockk chains etc...? Are they setting up a world where there wont be free reign to travel online sorta speak

    • @ChrisGreer
      @ChrisGreer  ปีที่แล้ว

      Hey - QUIC embeds TLS 1.3 - so they can't abuse rights any more with QUIC than they already can with TLS over TCP, which is used by most servers on the internet.

  • @the_schreiber
    @the_schreiber 7 หลายเดือนก่อน

    QUIC is an acronym for "Quick UDP Internet Connections"

  • @4mp3d
    @4mp3d 2 ปีที่แล้ว

    Its not over 9000

  • @damaliamarsi2006
    @damaliamarsi2006 ปีที่แล้ว

    QUIC QUic Is not an aCronym. See ..its not.