Superb - thanks so much. I was really struggling to understand this but the phantom byte when the syn and fin is flagged totally makes sense of the numbers.
Masha Allah I was really confused, but good that I am seeing from Top Down approach must explains everything. Thank You. This gives me kick start and do more analysis. You should continue doing more videos using small examples with absolute numbers than relative numbers.
Why does a FIN/ACK get 1 phantom byte, but an ACK doesn't get a phantom byte? Also, how would you detect if a packet is loss from the sequence and ack numbers?
Tip: TCP header doesn't include the size of the payload. Can you figure out how to calculate the size of data sent by TCP in Wireshark? N.B. It involves total length of the IP header and the total length of the TCP header versus the total length of the IP datagram.
Great video! I'm new to all this stuff and trying to wrap my head around it. At what point would windowing come into play? After the 3-way handshake when the Client sends its first GET packet with the 376 bytes?
I would have to look that up. Basically, after the three-way handshake, the window gets bigger and bigger. That means the sender will send more before an ack is required.
I was just thinking about you @Colin James. As I was reading the Cisco Press Books, I stumbled across this. I hope it helps. “TCP uses a flow control mechanism called windowing. Each TCP receiver grants a window to the sender. The window, which is a number, defines the number of bytes the sender can send over the TCP connection before receiving a TCP acknowledgment for at least some of those bytes. More exactly, the windows size is the number of unacknowledged bytes that the sender can send before the sender must simply stop and wait. The TCP window mechanism gives the receiver control of the sender’s rate of sending data. Each new segment sent by the receiver back to the sender grants a new window, which can be smaller or larger than the previous windows. By raising and lowering the window, the receiver can make the sender wait more or wait less. By choice, when all is well, the receiver keeps increasing the granted window, doubling it every time the receiver acknowledges data. Eventually, the window grows to the point that the sender never has to stop sending: the sender keeps receiving TCP acknowledgments before sending all the data in the previous window. Each new acknowledgment (as listed in a TCP segment and TCP header) grants a new window to the sender” -CCNA Book ICND2
Linda Dochter I don't think I ever said that, but I probably should have clarified. Thank you for pointing that out. Oh well. Me be derpin on the Internet. XD
Why doesn't the client increment the sequence number with the first transmission (GET request)? If seq=1 in the ACK last step of the handshake, shouldn't it be seq=2 in the GET?
Good question. The SEQ and ACK only increment when data is transmitted. The only exception is if the FIN or SYN bit is set. The ACK never sent a payload so to speak.
i found the sentence i was looking for about 12 hours , right in your answer to the comment of this man ( Anders Ulfsnes ) , " The SEQ and ACK only increment when data is transmitted. The only exception is if the FIN or SYN bit is set"
Thanks for this video. I don't generally watch videos when it comes to learning but I've been stuck learning this all day - numbers just confuse me. So everything I read up on makes sense now.
Hi sir, I have a question because something is not clear to me: In the following exemple where you explained the termination process of the TCP connection with the TCP four-way termination (I wrote the question in square brackets) : client
I wouldn't get too hung up on the ACKs here. If there isn't a previous segment with data or a previous segment with the FIN or SYN bit set, the SEQ or ACK numbers won't increase. You can see this throughout my video. The ACK tells the other side what it's next SEQ number should be. "The next expectant byte." The SEQs and ACKs are used to keep track of Data (Reliable delivery).
What happends when the servers sends 2 continuous TCP packages ? The client return a packages with the sequence number with the last ACK numbers? what happends with the first packages?
Thanks dude. Just a question. The ASK number dont specify that the last packages was recibe with success (thats the ASK flag). Does it specify the length for the next packages? that is no the purpose for windows side?
Hopefully, I understand your question. There is no ASK flag, but I assume you mean ACK. The ACK sequence number acknowledges all previous data segments by saying that I'm ready for the "next byte in order". Definitely, it can get more complicated if they don't come in order or go missing. The video I linked to you explains some of that. The window size determines how much data the sender can send before an acknowledgment is required. The bigger the window size the faster the connection.
Networking is funny. You literally have to tell yourself stories to understand what's going on. XD
Omg thats how im surviving my courses 😂
Best explanation of Seq and ACK numbers I found online. Thank you!
To be honest, I spent almost 3 weeks to understand this concept. I want to thank you because with your help I figured it out.
Good explanation. I hate when tutorials leave out the "why" details, and you didn't. Well done.
TheTayz yes, I hate it too when people don't explain the "why". XD thank you.
One of the best explentions for my brain to handle. Great video, thank you.
Excellent explanation of TCP connection (3 way hand shake, data-exchange, and Termination)
Superb - thanks so much. I was really struggling to understand this but the phantom byte when the syn and fin is flagged totally makes sense of the numbers.
Masha Allah I was really confused, but good that I am seeing from Top Down approach must explains everything. Thank You. This gives me kick start and do more analysis. You should continue doing more videos using small examples with absolute numbers than relative numbers.
Exam in 2 days, and I finally understand it, thank u
thanks man im reading Computer Networking: A Top-Down Approach and i didnt understand it , your video saved me
Best TCP Seq/Ack video on the internet.
Give this guy a cookie, you deserve it buddy ^_^
Elias Housseini give me muffins! XD
Fantastic, super fantastic video on TCP three-way handshake.
Thank you so much this is one of the best tutorials in networking
4:20 should't it be 378 in order to tell the client that it recieved 1 + 376 and is waiting on the next byte on position 378?
It should be 377 because 1 + 376 = 377. Also, in the beginning we start at 0. Look at the 3 way handshake.
Well-explained. Liked the pony :)
One of the best video on you tube the phantom byte part was new and very well explained thx for the upload.
Networking explained with ponies? Right when I have to do networking homework? Well, don't mind if I do! Good video x)
Why does a FIN/ACK get 1 phantom byte, but an ACK doesn't get a phantom byte?
Also, how would you detect if a packet is loss from the sequence and ack numbers?
The FIN/ACK gets 1 because the FIN is set. If the SYN or FIN bit is set, it increases the count by 1.
ruclips.net/video/SUFr2gYtEVU/видео.html&
Love the way you explain bro. More power to you.
I hated that pony, first impressions count, almost quit the video, but it's the best one out there
Danger Wild Man Thanks for not judging a book by its cover. I appreciate that you looked past it.
yeh me too
Sir, I thank you from the bottom of my heart, thank's man
Thanks man!
If you struggle at paying attention and don't understand what is going on, this video is actually easier to understand at playback speed 1.5
Thank you! This is the best video about this topic :)
Excellent explanation of TCP connection (3 way hand shake, data-exchange, and Termination)
(Copy from k86305)
So this is how data transfer and the Mechanism to make sure data is sent when using TCP protocol
Thank you
so ack value = seq value + bytes sent ?
Yes
Thumbs up for nice explanation and for ponies!
Great video, thank you very much for your explanation!!
perfect explanation, bravo 👏👏👏
Tip: TCP header doesn't include the size of the payload. Can you figure out how to calculate the size of data sent by TCP in Wireshark?
N.B. It involves total length of the IP header and the total length of the TCP header versus the total length of the IP datagram.
how we got the data bytes from 376 to 270?
What a great explanation :) Thank you!
Great video! I'm new to all this stuff and trying to wrap my head around it. At what point would windowing come into play? After the 3-way handshake when the Client sends its first GET packet with the 376 bytes?
I would have to look that up. Basically, after the three-way handshake, the window gets bigger and bigger. That means the sender will send more before an ack is required.
I've only scratched the surface of TCP. It's a beast on its own. XD
Derpy Networking no doubt!! Appreciate the response and the videos
I was just thinking about you @Colin James. As I was reading the Cisco Press Books, I stumbled across this. I hope it helps.
“TCP uses a flow control mechanism called windowing. Each TCP receiver grants a window to the sender. The window, which is a number, defines the number of bytes the sender can send over the TCP connection before receiving a TCP acknowledgment for at least some of those bytes. More exactly, the windows size is the number of unacknowledged bytes that the sender can send before the sender must simply stop and wait.
The TCP window mechanism gives the receiver control of the sender’s rate of sending data. Each new segment sent by the receiver back to the sender grants a new window, which can be smaller or larger than the previous windows. By raising and lowering the window, the receiver can make the sender wait more or wait less.
By choice, when all is well, the receiver keeps increasing the granted window, doubling it every time the receiver acknowledges data. Eventually, the window grows to the point that the sender never has to stop sending: the sender keeps receiving TCP acknowledgments before sending all the data in the previous window. Each new acknowledgment (as listed in a TCP segment and TCP header) grants a new window to the sender” -CCNA Book ICND2
Best Explanation, I found.
After the server ends the TCP connection, how does it respond to the client when it sends the FIN bit to end its connection?
The client and server do not set up separate TCP connections. A single connection is between a pair of sockets (IP + port) and is bidirectional.
Linda Dochter I don't think I ever said that, but I probably should have clarified. Thank you for pointing that out. Oh well. Me be derpin on the Internet. XD
Great Explanation Bro! NICE JOB!!!
Super clear explanation. Thanks a lot!
EXCELLENT explanation. Thank you sir
Nice explanation in my perc-per-ps-psrc... perspective.
great video dude, good job , helped me out a lot
So SEQ is what you’ve send (not including the message of what you’re currently sending) and ACK is what you’ve received.
For the most part yes
Why doesn't the client increment the sequence number with the first transmission (GET request)? If seq=1 in the ACK last step of the handshake, shouldn't it be seq=2 in the GET?
Good question. The SEQ and ACK only increment when data is transmitted. The only exception is if the FIN or SYN bit is set. The ACK never sent a payload so to speak.
i found the sentence i was looking for about 12 hours , right in your answer to the comment of this man
( Anders Ulfsnes ) , " The SEQ and ACK only increment when data is transmitted. The only exception is if the FIN or SYN bit is set"
Thanks for this video. I don't generally watch videos when it comes to learning but I've been stuck learning this all day - numbers just confuse me. So everything I read up on makes sense now.
Worth Watching.. Clarity in explanation!
whats up with the ponys?
Hi sir, I have a question because something is not clear to me:
In the following exemple where you explained the termination process of the TCP connection with the TCP four-way termination (I wrote the question in square brackets) :
client
I wouldn't get too hung up on the ACKs here. If there isn't a previous segment with data or a previous segment with the FIN or SYN bit set, the SEQ or ACK numbers won't increase. You can see this throughout my video.
The ACK tells the other side what it's next SEQ number should be. "The next expectant byte." The SEQs and ACKs are used to keep track of Data (Reliable delivery).
Thank you very much for your explaination. Everything is 100% clear to me now.
This videos is really helpful and very well explained.
1. Can anyone decide to close the connection
2. When cleint closes ,whether server needs to close or can continue
neatly explained! Nice work :D
I am unable to understand how reciver send seq no I mean 270 bytes
What happends when the servers sends 2 continuous TCP packages ? The client return a packages with the sequence number with the last ACK numbers? what happends with the first packages?
I believe my second video will clear your question up. If not, please message me again. ruclips.net/video/SUFr2gYtEVU/видео.html
Thanks dude. Just a question. The ASK number dont specify that the last packages was recibe with success (thats the ASK flag). Does it specify the length for the next packages? that is no the purpose for windows side?
Hopefully, I understand your question. There is no ASK flag, but I assume you mean ACK. The ACK sequence number acknowledges all previous data segments by saying that I'm ready for the "next byte in order". Definitely, it can get more complicated if they don't come in order or go missing. The video I linked to you explains some of that.
The window size determines how much data the sender can send before an acknowledgment is required. The bigger the window size the faster the connection.
REAALLY THANK YOU , SO MUCH
Best tutorial out there
Love this explaination
Hallo Kollege, eine Frage: MUSS der Client nach dem er jedes mal daten vom server gekriegt hat, auch wieder ein Ack zurücksenden?
The client and server only send an ack according to the window size.
@@DerpyNetworking i have no Window size. I just got a mss of 1448 Byte
@@scholli99 networklessons.com/cisco/ccnp-route/tcp-window-size-scaling
friendship is magic!!!!!!!!!!!!!!!!!!!!!!!!!!
Great video, thank you!
So the http protocol goes through all that just for one request?
There's a lot of other things below the application layer. It's actually pretty incredible when you think about it. It's somehow all works.
Thanks for the great explanation
Still this is helpful, thank you
great explanation thx !!!
SuperGeneral Legend 8)
Flow chart link is wrong
Thank you for pointing that out. Fixed! XD
purr spec tiv!
jokes aside, great video.
Very helpful, thank you!
Thanks a lot !
Thanks a lot
Great, very helpful
Great video Thanks............
good tutorial
thank you! nice tutorial
Great Explaination
Thanks!
Thank you!!!
María Jaramillo Sojo is that you in that profile pic?
best video
Excellent
That's why i need..super simple
excelent
sentinelling illustration. Ta muchly
Are you god?
Nope, I'm just a pone.
u like a furry person or something?
Brony
lol
how to explain something simple in a bad way, congrats
I'm sorry you feel that way. What do you think I could have done differently?
@@DerpyNetworking its good dont listen to him , youre a good teacher
Excellent video! Thanks!