Тёмный

How TCP Works - The Handshake 

Chris Greer
Подписаться 137 тыс.
Просмотров 312 тыс.
50% 1

Опубликовано:

 

28 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 186   
@tbs1199
@tbs1199 7 лет назад
Great video Chris. Please make more of these. Many people need the fundamentals to understand the root causes of application latency.
@ChrisGreer
@ChrisGreer 7 лет назад
I'll do my best to keep them coming. Thanks for the comment!
@MultiRam73
@MultiRam73 2 года назад
@@ChrisGreer great thanks. Can't thank you enough.
@tj8870
@tj8870 3 года назад
This is real TCP understanding. Much respect to this man for actually breaking down all the information with a real world example so we can understand the thinking process.
@ChrisGreer
@ChrisGreer 3 года назад
Thanks for the comment TJ!
@vizanques
@vizanques 3 года назад
thanks Chris, your english is so easily understandable, this is for sure a differential. greetings from brazil!
@universalponcho
@universalponcho 3 года назад
This dudes explanations are absolutely amazing!
@ric636
@ric636 2 года назад
only ppl that master the topic with theoretical knowledge and consistent practical experience have Your level of clarity! Your passion is really inspirational Chris! 👋💯
@ChrisGreer
@ChrisGreer 2 года назад
Wow, thank you!
@MrHawk407
@MrHawk407 4 года назад
This is the best video i came through. Good Job Chris, expecting more videos. Thank you buddy.
@ChrisGreer
@ChrisGreer 4 года назад
Thank you Sivasakthi! More soon.
@suhailmunshi2876
@suhailmunshi2876 Год назад
I was troubled to understand it literally for 3 days. Finally, i got it because of you, you made my life easier i hope God will make yours. Thankyou Chris.
@ChrisGreer
@ChrisGreer Год назад
Thanks for the comment!
@mryes8184
@mryes8184 3 года назад
Keep creating vids man! Will watch them all, ain't lying
@ChrisGreer
@ChrisGreer 3 года назад
You bet! I will keep them coming. Have more coming out very soon.
@krishnareddy9037
@krishnareddy9037 5 лет назад
Thanks for the videos Chris, I started watching your videos from couple of days. These are really helpful.
@samirshaikh52
@samirshaikh52 7 лет назад
Excellent Video Chris. I've started watching your videos and they are really helpful in real world cases. Great Job!
@ChrisGreer
@ChrisGreer 7 лет назад
Thanks Samir! I appreciate the feedback. I will keep on making these short videos.
@subhamthemusicalguy8851
@subhamthemusicalguy8851 4 года назад
Thank you so much for making this Tcp series
@aleemsyed3595
@aleemsyed3595 4 года назад
Very good detailed explanation.. Really appreciate it.
@ChrisGreer
@ChrisGreer 4 года назад
Thanks for the comment Aleem!
@sauravsahu6243
@sauravsahu6243 6 лет назад
great video Chris, thanks a lot for sharing knowledge !
@zeeshanahmad3989
@zeeshanahmad3989 3 года назад
sir i love the way you explain . and i hope you'll still continue upadating this playlist. really looking forward to watching more of your videos on this topic
@ChrisGreer
@ChrisGreer 3 года назад
Hi Zeeshan - gonna keep at it! Also I have my bit.ly/wiresharktcp course on Pluralsight which goes through all of this with hands-on examples. Check it out!
@anshukhanna6041
@anshukhanna6041 7 лет назад
Thanks chris...I am a big fan of yours.Please post more basic videos and case studies.Great help!
@ChrisGreer
@ChrisGreer 7 лет назад
Thanks Anshu! i'll keep them coming. thank you for the comment.
@megapode2648
@megapode2648 6 лет назад
Thank you, what a great inside, this helps me better at my job
@yukeyang5735
@yukeyang5735 6 лет назад
Great video. Clarifying details of TCP.
@JitenPalaparthi
@JitenPalaparthi 2 года назад
Wonderful video in 2022 as well. Basics prevail
@sareng2005
@sareng2005 Год назад
Thank you this video show a great example of wireshark. I am glad how you explain everything in detail. I like and subscribe!! Take care==S
@asankakodikara2544
@asankakodikara2544 6 лет назад
Oh wow. Thank you for the amazing explanation!
@polliluiz
@polliluiz 4 года назад
Awesome my friend. Keep up this excellent job.
@MultiRam73
@MultiRam73 2 года назад
Chris, for over 5 years i had not been able to understand this. You walked us through, literally in a hand holding way. Great language and simple things detailed, removing jargon. Admire and thank you so much
@ChrisGreer
@ChrisGreer 2 года назад
Thanks for the comment Ram!
@johnvardy9559
@johnvardy9559 Год назад
im still dont understand,do yoi recommend anythig?
@illyam689
@illyam689 5 месяцев назад
@@johnvardy9559 go back and watch the video again, this is the best source you can find
@illyam689
@illyam689 5 месяцев назад
I agree, Chris has IMPRESSIVE teaching skills. We need more teachers like him
@overacupofcoffee8451
@overacupofcoffee8451 3 года назад
Thank you for the awesome explanation. I have a query on NOP? What is the use of it? I have seen this in almost all TCP captures
@ChrisGreer
@ChrisGreer 3 года назад
Hey, great question. I have a video about it - ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-oxyp4deHZXM.html check it out!
@pranav7114
@pranav7114 3 года назад
Really great video 👍👍
@ChrisGreer
@ChrisGreer 3 года назад
Thank you 👍
@balajimudaliar5715
@balajimudaliar5715 4 года назад
Thanks a lot for the explanation.
@MrBitviper
@MrBitviper 3 года назад
thanks for the informative video chris.. much appreciated
@migueldellicarpini4437
@migueldellicarpini4437 6 лет назад
Great video! Thanks for sharing
@trendyniro
@trendyniro 2 года назад
Thank you for educating us chris!
@ChrisGreer
@ChrisGreer 2 года назад
Glad to hear the videos help!
@ramber1021
@ramber1021 3 месяца назад
Great video Chris, thank you :)
@flomax_actual
@flomax_actual 2 года назад
Great Video Chris. I look forward to diving deeper into your material. - Kyle Sullivan
@ChrisGreer
@ChrisGreer 2 года назад
Awesome, thank you!
@amiramiri4517
@amiramiri4517 2 года назад
clearly explained. god bless you, thanks!
@ChrisGreer
@ChrisGreer 2 года назад
Thanks for the comment!
@nadimpathan7912
@nadimpathan7912 3 года назад
does client will receive 8192 bytes ones considering mss is 1460 bytes only? anyone can help me to understand? mss is 1460 only then how client would receive 8192 bytes at ones?
@anthonykahwati5999
@anthonykahwati5999 4 года назад
Thank you!
@gshaurav
@gshaurav 4 года назад
Hi, Liked your way of presentation and videos. I just wanted to add that, there is no such thing as tcp mss negotiation as you mentioned that whichever side will have lower mss, that mss will be used by client and server both. Mss is independent in both direction. Let me know if my understanding is wrong.
@ChrisGreer
@ChrisGreer 4 года назад
Thanks for the comment Gaurav - You are 100% correct - I've mentioned this in other comments below as well. I was in error on using the word negotiation. the MSS is not negotiated. That said - I have seen many stacks where both sides respect and utilize the lower of the two values, but even then, it is not a negotiation. Thanks again for the comment!
@nikhilbejjarapu7610
@nikhilbejjarapu7610 5 месяцев назад
Hi Chris. I couldn't find the Pcap file that you've been using in your system. can you help me with that?
@AmeenHamed
@AmeenHamed Год назад
Thank you man for sharing this stuff
@ChrisGreer
@ChrisGreer Год назад
Thank you for the comment!
@Vpy2023
@Vpy2023 2 года назад
thanks for all the great videos. Can you show instances where a single tcp session is used for multiple http requests ? How do we identify the underlying tcp session in all these http request?
@andreffrosa
@andreffrosa 2 года назад
During my network course at the university, we learned that the acknowledged sequence number was not the last sequence number received contiguously but rather the next sequence number that is being expected by the receiver next. Therefore, having an ACK of 1 in the SYN/ACK makes more sense than the ghost byte explanation since the receiver is telling "I'm expecting the first byte next". And it behaves like this throughout the whole connection. One of our assignments was even to build our own TCP clone on top of UDP and the ACKs worked like this too: Always sending in the ACK the SEQ that is being expected next rather than the one that was contigously received last. What are your thoughs on this?
@ChrisGreer
@ChrisGreer 2 года назад
Thanks for the comment Andre. I guess that is one way to explain it. But the reason I don't like that explanation is that it doesn't take SACK into consideration. If I send you 5 packets of 100 bytes each and packet 2 is lost, your ack number will be 100. But you will also carry a SACK block for sequence numbers 200-500. So yes, the ACK number is indicating where the gap begins, but that's when we have to peek at the SACK block to see how much was lost. Also - the Ghost Byte is a huge part of synchronization, so it is important to understand why that happens in the handshake. Thanks!
@lonnguyenvan6562
@lonnguyenvan6562 3 года назад
What happens if some bits are wrong due to connection errors? How to detect them and fix them?
@tusharnaik4710
@tusharnaik4710 6 лет назад
Nice video chris
@stelluspereira
@stelluspereira 4 года назад
Sorry for my ignorance, question: why we should not capture traffic at server?
@ChrisGreer
@ChrisGreer 4 года назад
Hello Stellus - We can capture traffic at the server end, but it is a best practice to start on the client end, just because the traffic volume is so much less. Also - we don't want to install Wireshark physically on the server, best is on a tap or span as close as possible.
@stelluspereira
@stelluspereira 4 года назад
Thankyou Sir, Typically for debugging performance issues, I capture through command line only specific IP address packet on the server & simultaneously capture from client to match and debug
@ChrisGreer
@ChrisGreer 4 года назад
@@stelluspereira I think that is a great approach. I often do the same myself. It's just a tough thing for beginners - so I usually have them start at the client.
@stelluspereira
@stelluspereira 4 года назад
@@ChrisGreer Thankyou Once again Sir, Do you know any options in wireshark or other tools to identify 'dirty'/'bad performing' devices (I meant creating errors devices ) suppose you have a network TAPs ( ingress/egress traffic from various segments Taps) to combine(2 more more) & pin point 'problem' devices (doing lots of re-transmission) & not responding within a 'resonable' time etc
@ChrisGreer
@ChrisGreer 4 года назад
@@stelluspereira I think the one that I would recommend that I use is the IOTA by Profitap. you can check them out here - www.profitap.com
@aham3687
@aham3687 5 лет назад
Chris I love your videos. Can you make video on https packet analysis?
@ChrisGreer
@ChrisGreer 5 лет назад
Hello Abraham - That is coming soon. Stay tuned!
@karananand20
@karananand20 6 лет назад
In the first Syn packet, the window size was 8192 and scaling factor was 4 and in the syn, ack packet from receiver, it advertises the windows as 4380, now when the sender again sends the ack , why window changes from 8192*4 to 4380*4? can you explain?
@Dennis19901
@Dennis19901 5 лет назад
My best bet is that it tries to match the receiver. Not sure if this is some TCP quirk or that this is determined by some TCP field. I don't particularly see the use of this as the window size advertises the remaining read buffer size. There shouldn't be a problem if one end has a larger buffer then the other.
@emr0088
@emr0088 5 лет назад
Hi, just wondering if there are any application or data in a servers from a previously established tcp connection that can affect or influence the client to initiate a new three way handshake towards another destination ip of the server rather than the originally established one? Can natting affect this?
@LimitedWard
@LimitedWard Год назад
There's a lot we can learn from TCP. We should all acknowledge the syns of our past.
@ChrisGreer
@ChrisGreer Год назад
Yessir!
@pgonza77
@pgonza77 3 года назад
Where can I find this on my personal Pc?
@creakffm
@creakffm 4 года назад
4:32 so set TcpMaxConnectRetransmissions in Registry for windows 10 client to "1" ? or is 2 better
@frankmadrid1846
@frankmadrid1846 Год назад
THANK YOU 🙏🏽
@m.adnankhan8245
@m.adnankhan8245 2 года назад
Thank you so much for these wonderful videos :)
@ChrisGreer
@ChrisGreer 2 года назад
Glad you like them!
@rajkaransinghgill2082
@rajkaransinghgill2082 3 года назад
At 6:05 , if our buffer size itself is 65535 then how is it possible to increase the size using options? where will we store the extra data that exceeds our buffer size ?
@ChrisGreer
@ChrisGreer 3 года назад
If we are using the window scale option, then the advertised window size is just a variable at that point. The number itself is not to true buffer size - it is just an integer that is going to be multiplied by the window scale to arrive at the true window size.
@vjd5865
@vjd5865 6 лет назад
Great stuff!
@mohamedmusaid
@mohamedmusaid 6 лет назад
Awesome video :)
@krishnareddy9037
@krishnareddy9037 5 лет назад
Is there a separate video for Flags?
@ChrisGreer
@ChrisGreer 5 лет назад
No not yet. But it is covered in this video starting at 4:17.
@manjunathag4173
@manjunathag4173 3 года назад
I have a question, Let say i established a connection with FTP server and i need to download 2 GB data, So in this case how my PC or server based on what criteria it decide how much data to transfer in Transport and network layer?
@ChrisGreer
@ChrisGreer 3 года назад
It really just depends on the TCP stack in use by the operating system. So what kind of OS is the FTP server installed on? What version? These things all play into how TCP will handle the transfer.
@AungKoKo
@AungKoKo 2 года назад
Thanks!
@ChrisGreer
@ChrisGreer 2 года назад
Thank you!
@akintolamichael6107
@akintolamichael6107 2 года назад
Great Content
@ChrisGreer
@ChrisGreer 2 года назад
Thank you!
@michaelruiz9499
@michaelruiz9499 3 года назад
Thanks man
@ChrisGreer
@ChrisGreer 3 года назад
You're welcome!
@juanjoseaguero6539
@juanjoseaguero6539 5 лет назад
Great!!
@AlvinRogers4689
@AlvinRogers4689 3 года назад
You said about the actual SEQ number "that's a long complex number".. you should not use the word COMPLEX in this context, it i just a long integer (in hex of course in the data representation). Not a complex number... re square root of neg 1 etc...
@karma-cf8fd
@karma-cf8fd 5 лет назад
i searched for *wireshark how to be the one creepy dude in the coffee shop* think i got the right video
@symonxd
@symonxd 3 года назад
im confused, what does he mean by these 'windows'....
@ChrisGreer
@ChrisGreer 3 года назад
I'm guessing you mean the TCP Window values - these are explained in other videos in this series. Check them out!
@symonxd
@symonxd 3 года назад
@@ChrisGreer I appreciate the answer!
@sihimoge
@sihimoge 4 года назад
dude, add some numbers before the video names. it is hard to followup your playlists. give some video orders to follow up with!
@deepakpanwar6629
@deepakpanwar6629 5 лет назад
Mss is not negotiated...
@ChrisGreer
@ChrisGreer 5 лет назад
You are correct - that is not the accurate word to use. However many stacks will respect and match the lower of the two MSS's.
@hector2099
@hector2099 Год назад
Mr. Greer, How may I email you for specific questions? Do you have an email address?
@ChrisGreer
@ChrisGreer Год назад
Sure! Pop me a message - packetpioneer.com/contact/
@mahavirsinghrajpurohit8004
@mahavirsinghrajpurohit8004 2 года назад
Video 1
@mahavirsinghrajpurohit8004
@mahavirsinghrajpurohit8004 2 года назад
You have play list with TCP but you didn't follow NTP in them 😂😂 Could you put port 123 in TCP playlist. So we come to know which one need to see after this video and so on. 😊🙏
@ChrisGreer
@ChrisGreer 2 года назад
I just looked at the playlist - yikes you are correct. It was pretty out of order. I have some new/old videos on common topics so I just resorted it and featured the new and fresh content. Thanks for the suggestion.
@RolandShytie
@RolandShytie 17 дней назад
Johnson Sharon Lewis Joseph Anderson Brenda
@imadwan91
@imadwan91 4 года назад
👍
@ChrisGreer
@ChrisGreer 3 года назад
Thanks!
@zes3813
@zes3813 3 года назад
no such thing as hs about it, nonerx
@Lovingstoryteller
@Lovingstoryteller 4 года назад
Hi Cris, Could I know why in the ACK calculated window size with multiply by 4 (which is client window scaling factor) even though server SYN/ACK said scaling factor is 1 ? Shouldn't client accept the window size advertised by Server? ( I am unsure it shows client can accept (the bucket size ) four times like server window size? thank you
@ChrisGreer
@ChrisGreer 4 года назад
Hi Chama - for the scale factor in the handshake, this is not a negotiated value. It is simply an advertisement of what the sender is capable of.
@lubarsil
@lubarsil 5 лет назад
Great. Could you sort this playlist by date, please? Thanks!
@NickSmith-hv9zi
@NickSmith-hv9zi 6 лет назад
Would be helpful to include in the video the data transfer completion. Meaning how does Wireshark interprets a completion of a transmission.
@benjaminsafari7449
@benjaminsafari7449 4 года назад
I want to see if I get what a sequence number is. First handshake will tell the receiving machine what sequence the number will come in; if the sequence starts with 7 then the next packet will have sequence number 8, them 9, then 10, and so on, right?
@ChrisGreer
@ChrisGreer 4 года назад
Hello, thanks for the comment! You can check out my TCP sequence number video which goes into that. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-BWILgDt6jz0.html
@ranjanadissanayaka5390
@ranjanadissanayaka5390 2 года назад
I'm learning TCP /UDP for my CCNA . And I've watched this video at least 3 times. Each time I understand a bit more than the last time. A great video and a great help in understanding the concept. Thank you.
@我就呵呵了
@我就呵呵了 3 года назад
The first tag is 0x02, which is specified in RFC 793 as the maximum segment size option. It's followed by 0x04 bytes of data which are themselves the maximum TCP segment of 0x05b4, or 1460 bytes.
@ronlee4983
@ronlee4983 5 лет назад
Im new to network security ,Really love your videos, giving good explanation and examples on TCP communication Thank you
@Zager-recap
@Zager-recap 3 года назад
Amazing Thanks
@rajkaransinghgill2082
@rajkaransinghgill2082 3 года назад
Chris can you please do a video on the analysis of IPV6 packet?
@ChrisGreer
@ChrisGreer 3 года назад
Great idea for a future video, thanks!
@waleedrajab2720
@waleedrajab2720 5 лет назад
thanks ,, its was so helpful
@amirahmed1404
@amirahmed1404 4 года назад
You are the MAN Chris. Thanks a lot for this great explanation 👍
@ChrisGreer
@ChrisGreer 4 года назад
Thanks for the comment Amir!
@mrbigglesworth_Official
@mrbigglesworth_Official 6 лет назад
Great video best tutor and explanation I have found. Very clear and informative straight to the point. Nicely broken down
@ChrisGreer
@ChrisGreer 6 лет назад
Thanks for the comment!
@Cricklox_552
@Cricklox_552 5 месяцев назад
Hi. I can't find the pcap file that you have been using in your system.
@RolandShytie
@RolandShytie 24 дня назад
Lee Gary Williams Steven Jones Nancy
@tdbarke
@tdbarke 5 лет назад
Excellent Videos , explained complex topics in very simple manner and easy to understand.
@Ipadstands
@Ipadstands 5 лет назад
thanks the video was excellent !
@jhc4090
@jhc4090 8 месяцев назад
Thank you so much for making these videos!
@omegamooon
@omegamooon 4 года назад
Excellent explanation Chris. Thanks a lot
@woodiewoodie6916
@woodiewoodie6916 5 лет назад
when i try to follow a stream through wireshark it shows me a encrypted text not the names
@pratiksharma5471
@pratiksharma5471 4 года назад
Seems like you were interacting with the server over HTTPS. Which would encrypt all of the TCP conversations.
@ManozKarmacharya
@ManozKarmacharya 4 месяца назад
How different is it with IPv6?
@sreejith_jinachandran
@sreejith_jinachandran 5 лет назад
Can you make a tutorial for wireshark !
@rahulraghavendrahs6989
@rahulraghavendrahs6989 6 лет назад
Awesome!! Please do many more videos like these
@prateekchaturvedi1995
@prateekchaturvedi1995 4 года назад
All your videos are awesome as it gives In depth analysis about the packet level information which is very important in today's industry..I hope you start uploading the videos again on this channel..
@ChrisGreer
@ChrisGreer 4 года назад
Thanks for the comment Prateek. I'm in my studio shooting some new stuff now! So stay tuned and subscribed.
@ashenchanaka5537
@ashenchanaka5537 6 лет назад
Great Work Chris, Regarding the MSS, It doesn't have to be the same on both end points I guess. It can be different values on each direction Reference : en.wikipedia.org/wiki/Maximum_segment_size
@ChrisGreer
@ChrisGreer 6 лет назад
You are correct Ashen - the MSS does not have to be the same in both directions. however, I find that many TCP implementations will use the lower value, even though the standard says that it can be independent.
@shynggyskassen942
@shynggyskassen942 3 года назад
Thank you so much !!!
@bradbland9307
@bradbland9307 3 года назад
you talked about particular packets but did not at all explain the 3 way handshake...why is it syn then syn ack then ack?....is it always like that ?...are all 3 considered the handshake? we learned nothing about the tcp handshake.
@ChrisGreer
@ChrisGreer 3 года назад
Hello Brad. SYN stands for synchronize. The two sides need to sync (or exchange) sequence numbers and communicate options that will be in use for the life of the connection. This is why both sides send a SYN (along with the initial sequence number and options) to the link partner. The ACK component will increment the received sequence number by one, which is an indication that the receiver successfully received the initial sequence number from the sender. This then moves the two endpoints into a connected state, which allows it to start sending data. Hope this helps better understand the three-way process.
@5190csyt
@5190csyt 4 года назад
Thanks for your video, that's really helpful for me!
@ChrisGreer
@ChrisGreer 4 года назад
You are welcome! Very happy that it helped you.
@train4905
@train4905 Год назад
Awsome😊
@temisegun8631
@temisegun8631 5 лет назад
nice and clear explanation, thank you so much for this chris
@ChrisGreer
@ChrisGreer 5 лет назад
You are welcome - thanks for stopping by!
@creakffm
@creakffm 4 года назад
5:50 so i higher TCP receivw window size ( buffer ) is better in Online Gaming like Fortnite? i recomented no Scaling Size so round 6xxxx Window Size Smaller
@danimoosakhan
@danimoosakhan 6 лет назад
So basically ack number is one number higher than the previous packet seq number?
@Dennis19901
@Dennis19901 5 лет назад
Ack says "This is how many bytes I have received from you". If the Ack is 100 and the receiver receives another 100 bytes, they will Ack 200 the next time. An empty packet counts as 1 (for example connection handshake packets or just empty confirmation packets). Do note that the Ack is every increasing. You can see it as "this is the amount of total bytes I have received from you", usually stating at a random number.
@enriquerodriguez9723
@enriquerodriguez9723 4 года назад
@@Dennis19901 this is almost correct. The acknowledgement number says "I have received ACK-1 bytes so far, I am now expecting byte number ACK.". So if the sender received and ACK number 101, it tells the server the receiver has received 100 bytes and is now expecting byte 101 to be sent.