How TCP Works - Selective Acknowledgment (SACK)

  Рет қаралды 57,603

Chris Greer

Chris Greer

Күн бұрын

Пікірлер: 112
@renxingliang8903
@renxingliang8903 2 ай бұрын
This is very useful for me. I am an F5 engineer from China. I often need to look at data packets. Your video is simple and easy to understand. I love it!😘
@scienceofart9121
@scienceofart9121 5 жыл бұрын
Thank you Chris you saved my 12 hours of reading papers.
@ChrisGreer
@ChrisGreer 5 жыл бұрын
Happy to hear that it helped! This stuff can be a little dry on paper for sure.
@ermias736
@ermias736 3 жыл бұрын
you are the most brilliant person i ever seen in TCP analysis
@CDizzzle4Rizzle
@CDizzzle4Rizzle 3 жыл бұрын
Your videos are distilling down weeks of independent research. It's awesome, Thanks!
@ChrisGreer
@ChrisGreer 3 жыл бұрын
Glad you like them! Thanks for the comment!
@nadlei3270
@nadlei3270 3 жыл бұрын
You must be an amazing teacher, Chris. This was very clear and easy to understand. Nice job!
@ChrisGreer
@ChrisGreer 3 жыл бұрын
Thanks Nadlei! I appreciate the feedback and the comment. See you around the channel.
@AR-dh3yk
@AR-dh3yk 3 жыл бұрын
Chris you are like TCP , giving us trusted and oriented knowledge. Unlike the UDP trainers.
@ChrisGreer
@ChrisGreer 3 жыл бұрын
ACK. :-)
@mrRDX001
@mrRDX001 5 жыл бұрын
I love your videos, no bullshit every line is up to the point and precise. Thank you
@Ipadstands
@Ipadstands 5 жыл бұрын
Thanks , Your videos are helping me get a better feel for all this
@ChrisGreer
@ChrisGreer 5 жыл бұрын
Thanks for the comment - glad to hear the videos are helping.
@mksarav75
@mksarav75 5 жыл бұрын
Crystal clear explanation. Thank you very much.
@ali_HA24
@ali_HA24 5 жыл бұрын
VERY nice to clear the sequence concept. I love your way of explaining.
@ChrisGreer
@ChrisGreer 5 жыл бұрын
Thanks for the comment!
@YahyaALOMAR-f7y
@YahyaALOMAR-f7y 5 ай бұрын
I really appreciate your videos, you're saving much of my time❤️
@toigonbai
@toigonbai 2 жыл бұрын
best resource for learning tcp protocol
@pastorhudson
@pastorhudson 5 жыл бұрын
You're killing it on these tutorials. Thank you very much! What is the chance you could include a link to the trace files in the description? This way we could "follow along" in our own wireshark?
@ChrisGreer
@ChrisGreer 5 жыл бұрын
Sure! Here is the link to the trace in Cloudshark - www.cloudshark.org/captures/4e8ed77deb52 For my newer videos I am doing more of this, but I haven't done it yet for the older ones.
@daniel280187
@daniel280187 4 жыл бұрын
Thanks for sharing Chris, excellent video supported with great visuals and a practical explanation.
@ChrisGreer
@ChrisGreer 4 жыл бұрын
Glad it was helpful!
@netaishvasistha9875
@netaishvasistha9875 5 жыл бұрын
Hey Chris, very informative video....can u make one video on four way handshake or connection termination please.
@ChrisGreer
@ChrisGreer 5 жыл бұрын
Hello! Have you checked out my video on FINs vs Resets? kzbin.info/www/bejne/Y6fKnGyGYpuXhrs That one goes into the four-way termination and reset behavior. Hope that helps.
@irabalabanov4211
@irabalabanov4211 3 жыл бұрын
Hi, thank u so much for this video! I have a short Q: at minute 4:27 u show that packet 54 is accepting the next seq is supposed to be 59861, why? In packet 52 seq = 45261, len =1460, in packet 53 seq = 325, len = 0, how did it jumped to 59861?
@陈元-t5q
@陈元-t5q 2 жыл бұрын
what's missing in between is 46721 and 59861, that's what the SACK showed to the other side what was missing and what was received, 59861 to 62781.
@omegamooon
@omegamooon 4 жыл бұрын
Excellent as usual.
@ChrisGreer
@ChrisGreer 4 жыл бұрын
Thanks for the comment Mohammad!
@letsgopacket4419
@letsgopacket4419 3 жыл бұрын
thanks man!! this really help
@ChrisGreer
@ChrisGreer 3 жыл бұрын
Glad it helped! I have more coming out about sequence number analysis, so stay tuned!
@pedrojaviermunozgarcia3721
@pedrojaviermunozgarcia3721 8 ай бұрын
Neat and clear, excellent job! Thanksss
@ansgar9289
@ansgar9289 5 ай бұрын
Great explanation!
@MrHawk407
@MrHawk407 4 жыл бұрын
Chris thanks a lot for this session, its awesome always, why cant you create WCNA course,
@ChrisGreer
@ChrisGreer 4 жыл бұрын
Hello Sivasakthi! If you have not had a chance to yet - you can check out my Wireshark courses on Pluralsight - www.bit.ly/wiresharktshoot www.bit.ly/wiresharktcp I cover a ton of ground about Wireshark and TCP in these two courses. Check them out!
@mautezsyria8480
@mautezsyria8480 2 жыл бұрын
perfect , Chris Thank you very much here we can see many duplicate ACK ( not just 3 ) before fast retransmission, when this rule will apply :)
@ChrisGreer
@ChrisGreer 2 жыл бұрын
Point of capture is important. If you are capturing from the perspective of the sender, you will see 3 duplicate acks followed by the retransmission. If you are capturing at the receiver, you may see many duplicate acks, since you are not aware of the retransmission yet.
@mautezsyria8480
@mautezsyria8480 2 жыл бұрын
@@ChrisGreer many thanks really appreciate
@Rafael-zc6xy
@Rafael-zc6xy 3 жыл бұрын
Hi Cris! I have a question about SACK: In 5:13 the TCP DUP ACK has: ACK 46721 SACK 59861-61321 (the package below will increase only the right edge) In 5:37 the package has SEQ 61321 Next Seq 62781 What would happen if the package above had a SEQ = 62700 instead of 61321? In this case the next DUP ACK would have 2 SACKS to indicate: 59861-61321 and 62700-62781 (gap between 46721 and 59861, and another gap between 61321 and 62700). Is that right?
@ChrisGreer
@ChrisGreer 3 жыл бұрын
Yes, that is correct. If there was another gap in the sequence, the next ACK would indicate this by starting up another SACK block like you indicated. So the sender would need to fill in the space between 46721 and 59861, as well as 61321 and 62700. Nice work!
@Rafael-zc6xy
@Rafael-zc6xy 3 жыл бұрын
@@ChrisGreer Thank you!
@abhaypratap5311
@abhaypratap5311 5 жыл бұрын
Make a video on TLS handshake process.
@ChrisGreer
@ChrisGreer 5 жыл бұрын
That's a good idea for a video Abhay. Let me work on it.
@shirtguy9322
@shirtguy9322 5 жыл бұрын
@@ChrisGreer "just do it "~ Nike :)
@TalkingMisc
@TalkingMisc 5 жыл бұрын
@@ChrisGreer Looking forward to it.
@subhamthemusicalguy8851
@subhamthemusicalguy8851 4 жыл бұрын
You are doing a great job.Thank you so much
@ChrisGreer
@ChrisGreer 4 жыл бұрын
Thank you very much for the comment Subham!
@tejasmokashi7466
@tejasmokashi7466 3 жыл бұрын
Excellent explanation.
@nighthawk3897
@nighthawk3897 5 жыл бұрын
Nice and concise, thanks. I wonder...what controls how long or how many bytes the SACKer will wait before it gives up?
@arshamghafari4906
@arshamghafari4906 3 жыл бұрын
Why did I find you this late? damn, thank you man.
@ChrisGreer
@ChrisGreer 3 жыл бұрын
Glad you found the channel!
@ee07168
@ee07168 11 ай бұрын
great job Chris, can i have the Wireshark file , the one which you are using for this video
@briancoverstone4042
@briancoverstone4042 5 жыл бұрын
While filling in the missing sequences, what happens if one of those packets are received out of order? Can there be multiple left/right edges to indicate that there are two sections missing?
@williewilfred88
@williewilfred88 2 жыл бұрын
Great video, subscribed!
@ChrisGreer
@ChrisGreer 2 жыл бұрын
Thanks for the sub!
@sald35
@sald35 2 жыл бұрын
Is there a link to the pcap that was used?
@student4373
@student4373 Жыл бұрын
I understand the concept of SACK_PERM, but I'm a little confused: To me it seems as though SACK_PERM = 0 implies that the TCP connection will be using the Go-Back-N protocol, whereas with SACK_PERM = 1 the TCP connection will be using the Selective Repeat protocol. I can't seem to find any information on this elsewhere so I'd love to know if I'm mistaken or not.
@Ajay-tn2ep
@Ajay-tn2ep 5 жыл бұрын
Make a video on DNS in-depth like, different type of records
@mikiszafeiroudis758
@mikiszafeiroudis758 3 жыл бұрын
Great video as usual! One thing that confuses me is the Seq (1-201, 301-501) shown in the diagram. Since each packet is 100 Bytes I was expecting to see 1-200 (1-100 for packet #1 and 101-200 for packet #2). Respectively, I would expect to see 301-500 for the second sequence.
@surenderkamboj
@surenderkamboj Жыл бұрын
Yeah I feel the same. Seq number should be 1-200 and Ack would be 201.
@Aashnakunkolienker
@Aashnakunkolienker Жыл бұрын
Yes@@surenderkamboj
@seanwilliams7073
@seanwilliams7073 11 ай бұрын
Thanks for giving me the ammunition to put this wireshark capture back to the customer's network 😁
@dimplejaral2239
@dimplejaral2239 5 жыл бұрын
thanks again very much, keep doing good work!!!
@briandsouza1550
@briandsouza1550 3 жыл бұрын
Thank you Chris!
@jackliyong
@jackliyong 5 жыл бұрын
if the gap is filled,does the sever resend these packets sequence number after the last gap sequence number?thanks
@ToddMagers
@ToddMagers 5 жыл бұрын
Great video Chris!
@ankurgupta8233
@ankurgupta8233 3 жыл бұрын
Thank you so much for this video
@ChrisGreer
@ChrisGreer 3 жыл бұрын
You are welcome! Thanks for the comment.
@papyrus1113
@papyrus1113 4 жыл бұрын
I have a question about congestion control in relation to SACK. If a TCP layer uses SACK and a packet is missing, does TCP then detect congestion?
@charan_75
@charan_75 2 жыл бұрын
What does it mean when it says a max of 4 SACK blocks can be reported in 1 segment?
@foshan
@foshan 4 жыл бұрын
Hi Chris, is it possible to have multiple "holes" on the TCP stream, i.e. missing multiple packets that are not contiguous. How can SACK left edge and right edge work in that case.
@ChrisGreer
@ChrisGreer 4 жыл бұрын
Hello! Great question. The answer is yes. I cover that in my SACK video, here is the link to it. kzbin.info/www/bejne/jHa1mHxuhsaMhrs In short, most TCP stacks can handle up to four "blocks" of data, with holes between each block. This informs the data sender about the missing sequence numbers so these can be retransmitted. This is also a topic I cover in detail in my Foundational TCP Analysis course on Pluralsight - bit.ly/wiresharktcp
@foshan
@foshan 4 жыл бұрын
@@ChrisGreer Thank you Chris. That is very helpful
@ChrisGreer
@ChrisGreer 4 жыл бұрын
@@foshan Sure thing. Let me know if you have any other questions or video suggestions.
@SnortDefence
@SnortDefence 5 жыл бұрын
post some out of order and gre fragmentation packet analyses and tshoot
@ChrisGreer
@ChrisGreer 5 жыл бұрын
Great ideas, thanks!
@sizhuangliang9118
@sizhuangliang9118 2 жыл бұрын
This is amazing!
@ChrisGreer
@ChrisGreer 2 жыл бұрын
Thank you!
@MimJim6784
@MimJim6784 Жыл бұрын
Thanks. It was great. I would be better if you share the pcap file.
@ciscosubu
@ciscosubu Жыл бұрын
if the SACK feature is NOT supported ( which will be discovered in the TCP 3 way hand shake ) will the TCP transaction proceed . let say client is sending with SACK suppport or server is sending SYN-ACK with SACK suppport ( but client doesnt support) . jusy wanted to know the TCP-transaction will still proceed . or in the TCP- 3 way hand shake RST will happen ??? can you please shed more light on this . and also microburst scenarios which will lead to TCP packet Drops 2 or 3 TCP packets getting dropped .
@andypratama100
@andypratama100 3 жыл бұрын
One i want to ask is, what is mean ACK, did it like d-dos attack like somebody trying sending malware but the main purpose is to make the connection slower, even some case it cause hacked and error to machine. Cause in my case is so much like that, imagine i am online just 4 minutes but packages which i am received are 17,000 and 40% are ACK then the detail i got is not website but like devices. Noted i am using wifi in here.
@goblingames7711
@goblingames7711 4 жыл бұрын
Hi Chris, Is there a specific reason why when a packet goes missing that client then sends an acknowledgment for each packet it receives with the left & right edge values in the SACK option? Normally the client will acknowledge any two packets or two full-size packets.
@ChrisGreer
@ChrisGreer 4 жыл бұрын
Hello Goblin, to boil it down to a simple statement - it gives the sender more feedback about what went missing and can trigger a fast retransmission quicker. Now the details - RFC 2581 mentions that after a point of loss or reordering a receiver will dup ack every segment until the gap is filled. As these fly back to the sender, three duplicate ACKs will trigger a fast retransmission, rather than waiting for the full retransmission timer to expire. So if we only "acked" every other packet, even when there was loss, this process would take longer to get the info back to the sender about the missing segment. This feedback also helps the sender to adjust its congestion window according to how much and how often data was lost. So as much info about the loss as quickly as possible will help TCP keep that congestion window high. I hope that helps.
@goblingames7711
@goblingames7711 4 жыл бұрын
@Chris Greer, thank you for your reply. Also, I appreciate you and others putting up videos to help educate people like us who are interested in learning about networking and packets analysis. Your videos have helped me with some of my own Ah-ha moments (even if I am learning it for fun).
@bilalmsayed
@bilalmsayed 3 жыл бұрын
Thanks a lot chris
@bhatanirudha
@bhatanirudha 4 жыл бұрын
Namaste Sir, Kindly guide me, how to find TCP data throughput from the pcap file... Thank you
@ChrisGreer
@ChrisGreer 4 жыл бұрын
Hello Anirudha - have you checked out my video on the TCP Trace graph? kzbin.info/www/bejne/r4bQcnabiNKHbdE That one goes into throughput a bit. But I plan to make a focused throughput video soon. Thanks!
@syedmobeen981
@syedmobeen981 5 жыл бұрын
Great work !!!
@yadsingh58
@yadsingh58 5 жыл бұрын
Amazing videos sir indebted.
@masudimtiaz2325
@masudimtiaz2325 6 ай бұрын
Excellent! Thanks,
@philozow
@philozow 2 жыл бұрын
Thank you very much!
@ChrisGreer
@ChrisGreer 2 жыл бұрын
You're welcome!
@zzsql
@zzsql 2 жыл бұрын
I learned at a SANS conferences (Ed Skoudis) that if we send sequence numbers 1-99, we'd get an ACK of 100, acknowledging all before 100. Any dropped packets would be cleaned up by selective acknowledgements, if any. You say you ack 1-201 with a 201 ACK? Someone is incorrect.
@ChrisGreer
@ChrisGreer 2 жыл бұрын
If I send 0-99 and you ack 100, that is a missing byte and TCP would freak out. So… gotta ACK every byte, no more.
@megapode2648
@megapode2648 5 жыл бұрын
Is there a way I can download this exact trace to follow along?
@SoulJah876
@SoulJah876 2 жыл бұрын
What happens to lost traffic in the absence of the Selective ACK?
@ChrisGreer
@ChrisGreer 2 жыл бұрын
The receiver will only be able to ACK the highest seq number before the point of loss. Any post-loss traffic that was received will not be ACKed without a SACK block. So those will need to be resent even though they were successfully received.
@SoulJah876
@SoulJah876 2 жыл бұрын
@@ChrisGreer got you, that makes sense. Many thanks.
@ShadyNetworker
@ShadyNetworker 4 жыл бұрын
What happens when more than one gap in the data stream appears? The TCP ACK seems to point to the first expected segment at the start of the gap, while the SACK's keep track of the running data. What happens if another gap appears?
@ChrisGreer
@ChrisGreer 4 жыл бұрын
Hey, great question! SACK can handle that. It just starts another SACK block. You will see a second one appearing in the TCP options that shows what has been successfully received. It is up to the sender to resend the gaps between the blocks. Some stacks can support up to four blocks, while some only support two or three.
@ShadyNetworker
@ShadyNetworker 4 жыл бұрын
@@ChrisGreer Wow, that's funky. Thanks for the answer! This helps me dig deeper into TCP. And thanks for the videos, it's unbelievable that you make this available for free, they are a fantastic resource! Very concise :)
@ChrisGreer
@ChrisGreer 4 жыл бұрын
@@ShadyNetworker Thanks for the comment. i will keep them coming!
@stephen8253
@stephen8253 2 жыл бұрын
@@ChrisGreer Following up to that question, what will happen if those SACK blocks have been exhausted?
@Zach-ge3kj
@Zach-ge3kj 2 жыл бұрын
thank you sir
@pramodb8165
@pramodb8165 5 жыл бұрын
good one
@markopopoland
@markopopoland 5 жыл бұрын
Can You make about Profinet TCP frames and diagnostic. You can have huge amount of viewers :)
@Aashnakunkolienker
@Aashnakunkolienker Жыл бұрын
Hey! this is conceptually a little incorrect. If the client sent bytes 1-201, the ACK number sent by the server would have number 202 !
@pwn0x80
@pwn0x80 5 жыл бұрын
tq
@howieg
@howieg Жыл бұрын
They are all great , but watching this in the "How Tcp Works" playlist , this one should have been moved up to even above Seq Numbers.
@llJoDall
@llJoDall 5 жыл бұрын
ACK VIDEO
@Kumar-gd3qh
@Kumar-gd3qh 5 жыл бұрын
0 dislikes :)
@troysipple2591
@troysipple2591 Жыл бұрын
Fantastic
@ChrisGreer
@ChrisGreer Жыл бұрын
Thank you! Cheers!
How TCP Works - Duplicate Acknowledgments
14:14
Chris Greer
Рет қаралды 51 М.
She made herself an ear of corn from his marmalade candies🌽🌽🌽
00:38
Valja & Maxim Family
Рет қаралды 18 МЛН
Что-что Мурсдей говорит? 💭 #симбочка #симба #мурсдей
00:19
IL'HAN - Qalqam | Official Music Video
03:17
Ilhan Ihsanov
Рет қаралды 700 М.
How TCP Works - The Handshake
13:53
Chris Greer
Рет қаралды 317 М.
How TCP Works - MTU vs MSS
6:59
Chris Greer
Рет қаралды 183 М.
How TCP RETRANSMISSIONS Work // Analyzing Packet Loss
9:26
Chris Greer
Рет қаралды 59 М.
How TCP Works - FINs vs Resets
7:04
Chris Greer
Рет қаралды 72 М.
How TCP Works - Window Scaling
8:57
Chris Greer
Рет қаралды 95 М.
TCP Duplicate Acks Explained // How to Troubleshoot Them
7:34
Chris Greer
Рет қаралды 43 М.
Network Hacking Exposed: ARP Spoofing, Sniffing & MITM Attacks
18:23
Learn Cybersecurity
Рет қаралды 421
How TCP Works - The Receive Window
9:35
Chris Greer
Рет қаралды 73 М.
She made herself an ear of corn from his marmalade candies🌽🌽🌽
00:38
Valja & Maxim Family
Рет қаралды 18 МЛН