Introduction to TCP/IP and Sockets, part 1: Introducing the protocols and API

  Рет қаралды 75,473

Rhymu's Videos

Rhymu's Videos

Күн бұрын

This is a basic introduction to the Internet protocols and how to use them in programs using sockets.
This is the first of two introduction videos on the Internet Protocol and its family of associated protocols (UDP, TCP, etc.) as well as Sockets, a pseudo-standard interface made for programmers to write programs which use these protocols.
The slides for this video can be found here: tinyurl.com/ybfjnekq
Also check out the part 2 video, where I cover real C++ code examples of this: • Introduction to TCP/IP...
Index for skipping to the sections you care about:
00:00 - Introduction
00:33 - Internet Protocol
04:05 - IP fragmentation
05:04 - IP headers
09:14 - IP is "best effort" delivery
10:28 - User Datagram Protocol (UDP)
12:08 - Transmission Control Protocol (TCP)
14:03 - TCP connection states
18:21 - TCP headers
22:08 - Sockets API
23:20 - Connection-oriented socket functions
27:30 - Datagram-oriented socket functions
28:35 - Socket addresses (sockaddr)
29:34 - Socket options (sockopt)
31:21 - Blocking vs. Non-Blocking (fcntl)

Пікірлер: 96
@mochileiro17
@mochileiro17 3 жыл бұрын
Great video! Clutter-free, easy to understand and follow! Love it
@muhammadadam0
@muhammadadam0 3 жыл бұрын
Loved the video. Thanks for your time and effort. Sharing the slides is very appreciated.
@engineering1year734
@engineering1year734 3 жыл бұрын
Really awesome video. All these concepts now makes sense to me. Thanks for quality content.
@UnitedIngvar
@UnitedIngvar 2 жыл бұрын
Thank you for your amazing video! The explanation is perfect, everything is so well-covered. Love it!
@cynthiali4606
@cynthiali4606 2 жыл бұрын
Thanks for making this so easy to understand! I've been looking for videos to help me with work in this area for the past couple of days and this is by far the best one. :)
@idamjelde2776
@idamjelde2776 3 жыл бұрын
This is good! And I like that you have the sections with titles, so that it is easier to jump back and forth in the video to find what you want. Great work!
@jahoopyjaheepu497
@jahoopyjaheepu497 3 жыл бұрын
Best networking video on KZfaq. Thank you for creating this series.
@tabeebrahman4843
@tabeebrahman4843 3 жыл бұрын
this video was amazing. the explanations are clear and has given me the most perspective when it comes to the socket programming. most of the other videos out there assume the viewer has much more knowledge then what your video does, its almost like psuedo code for socket protocols, super understandable and fairly comprehensive.
@harryjohnsonperu724
@harryjohnsonperu724 3 жыл бұрын
Fantastically explained. Its been so long since i have learned all this in University. This was a nice refresher. Thank you
@tourdesource
@tourdesource Жыл бұрын
This video has helped me enormously. Thank you so much.
@shubhankaringale278
@shubhankaringale278 2 жыл бұрын
I never thought it was, that easy to understand. Thanks a lot.
@Coconasty
@Coconasty Жыл бұрын
I can not explain how much I enjoyed this video! So well explained, I was very confused on this topic
@2NormalHuman
@2NormalHuman Жыл бұрын
this is the best explanation of computer networks that i could find on youtube, thank you for your work
@halilibrahimgungor364
@halilibrahimgungor364 3 жыл бұрын
Awesome an overview for this topic! Thanks.
@hfe1833
@hfe1833 3 жыл бұрын
This video almost summarize the details I read in some books into clear and details video. Thank u
@goldomcsas1464
@goldomcsas1464 3 жыл бұрын
Amazing, video. Thanks. You are a very concise and clear teacher. You are very good at not bogging down the technical info with too much technical grammar; congrats!
@itvrlogic5600
@itvrlogic5600 Жыл бұрын
Great explanation, thanks
@bhavana6217
@bhavana6217 3 жыл бұрын
Hey! This video has helped me a lot to learn the basics! I can't thank you enough :')
@chenxu6931
@chenxu6931 3 жыл бұрын
Thanks for making this video, great explanation!
@RxRip01
@RxRip01 3 жыл бұрын
Thank you for providing this as I am trying to learn and create my own web server from scratch. I wish KZfaq algorithm will pick up your channel more as you provide quality content every time. Just subscribed too.
@devpriysahu2223
@devpriysahu2223 3 ай бұрын
Really great, Knowing and teaching are 2 difficult art and you mastered both.
@timurakhalaya6289
@timurakhalaya6289 2 жыл бұрын
Greatest explanation there is ! 🚀👍
@lesterballesteros2924
@lesterballesteros2924 3 жыл бұрын
Keep making videos this is really helpful, i hope you get more recognition!
@adelabdellatif
@adelabdellatif 3 жыл бұрын
Perfect, That was quite good and detailed enough...Thanks.
@mikemcgrath579
@mikemcgrath579 2 жыл бұрын
This was a legendarily well articulated explanation. Thank you for donating your time to make this.
@rhymu
@rhymu 2 жыл бұрын
Glad you enjoyed it!
@rodrigocastilla3375
@rodrigocastilla3375 3 жыл бұрын
By faaaaaaaaaaaaa ... aaaaaaaar the best explanation I have ever found on KZfaq. Thanks, congratulations and reapsect 🤜🤛
@trenholmelodge1820
@trenholmelodge1820 3 ай бұрын
Just amazing. How come he is so clear and easy to understand..Others should follow his technique.
@syasyanik855
@syasyanik855 4 жыл бұрын
Thank you for your video. Really clear explanations and entertaining to learn!
@rhymu
@rhymu 4 жыл бұрын
I'm glad you enjoyed it! :D
@ankitrathore3946
@ankitrathore3946 2 жыл бұрын
Now that’s quality content
@mateusztyc1667
@mateusztyc1667 2 ай бұрын
Love this, thank you!
@matsredman7640
@matsredman7640 2 жыл бұрын
Super good! Thanks!
@samdaou2082
@samdaou2082 3 жыл бұрын
Awesome Video, really helpful explanations to go along with some initially scary diagrams. Appreciate the help. :)
@etha909
@etha909 4 жыл бұрын
Was watching your videos on learning Rust when I saw this introduction. Extremely well presented!
@rhymu
@rhymu 4 жыл бұрын
I'm glad you enjoyed it! :D
@thejunglecarrot
@thejunglecarrot 3 жыл бұрын
Great video, thanks so much!
@reverse_shell
@reverse_shell 4 жыл бұрын
Rhymu, absolutely loved the video! The diagrams aren't so scary once you've explained them. I am heading to the second video now! :D
@rhymu
@rhymu 4 жыл бұрын
I'm glad you liked it!
@oshinwane6902
@oshinwane6902 2 жыл бұрын
very well explained although i suggest watching other videos too since this one completes the journey !
@HanumanthDasar-fi8dd
@HanumanthDasar-fi8dd 2 ай бұрын
real internet Guru
@PaulDiracTWR
@PaulDiracTWR 4 жыл бұрын
Thank you for this.
@AnantaAkash.Podder
@AnantaAkash.Podder 3 ай бұрын
By far the BEST Explanation about SOCKET... Everyone is just saying Socket is just Ip address+port... But it is very Ambiguous... You just Explained it very well... Socket is nothing but An API... Through which my Web Application Code talks to Kernel & thus tells kernel to do some stuffs with all the Protocols... Thank you very Much Sir...❤️❤️❤️
@7race725
@7race725 3 жыл бұрын
I am a beginner in embedded systems and not sure that web-programming will be applicable on my job. I've decided to familiarize a little with such stuff like TCP/IP and obtained nothing but a mess in my head. Your videos are really clear and now i see a difference between TCP and IP, lol. In fact, that topic seems to be interesting for me. Thank you very much.
@pengperry7236
@pengperry7236 3 жыл бұрын
helped a lot,thank you so much
@ali51717
@ali51717 4 жыл бұрын
As a game developer concerned mostly with cpp. this is a fantastic video and I am very glad I found your channel. I just want to say special thanks for the time you put into those videos, the production quality, slides, and animations, I know they take way more time than the recording itself, so allow me again to say thanks.
@rhymu
@rhymu 4 жыл бұрын
Thank you so much! I enjoy making these videos, and just wish I had more time to spend on them.
@ali51717
@ali51717 4 жыл бұрын
@@rhymu I couldn't follow the second video, ( I am completely new to network programming and I Just saw your video, and I understand now how to TCP works but I felt the next part was little advanced to me, May i Know any good resources you think that will enable me to understand the next part? I am already reading through the rfc you mentioned and it all looks good.
@rhymu
@rhymu 4 жыл бұрын
@@ali51717 I fear that I made the difficulty ramp too steep between these two videos. I should have made a video in between that perhaps gets a little into the code but not so advanced. Thank you for the feedback! I think if you feel ready for it, either the POSIX threads or WinSock documentation pages would be good to guide you towards the programming aspect. A good starting point might be here: docs.microsoft.com/en-us/windows/win32/winsock/getting-started-with-winsock
@ali51717
@ali51717 4 жыл бұрын
@@rhymu I am very thankful for your reply. I will check those right away thanks!
@hammerheadlemon
@hammerheadlemon 4 жыл бұрын
Great. Thank you.
@rhymu
@rhymu 4 жыл бұрын
You are welcome!
@AbidAhsan-yp4dc
@AbidAhsan-yp4dc 4 жыл бұрын
Man... you have just summarized stuffs I learned in two networking courses.. hats off... will you continue the series?
@rhymu
@rhymu 4 жыл бұрын
I'm glad you liked it! I'm considering making another video exploring some common techniques for constructing and parsing messages sent across the network: JSON, protocol buffers, and serialization techniques in general. If there is some aspect of networking you would like me to consider for a future video, please let me know!
@klr607
@klr607 2 жыл бұрын
Nice video. TY
@kevinhawekotte4432
@kevinhawekotte4432 3 жыл бұрын
Thank you!
@dark_red_blood
@dark_red_blood Жыл бұрын
Thanks man
@Lucas-md8gg
@Lucas-md8gg Ай бұрын
Will you update the playlist, one day? Your teaching is pretty good
@hussainigoattv9222
@hussainigoattv9222 4 жыл бұрын
Man you are a hero! please make web development tutorials on nodeJS
@rhymu
@rhymu 4 жыл бұрын
I'll let you in on a secret, just don't tell anyone else. :D I know almost nothing about NodeJS! I would be glad to make web development tutorials on NodeJS. However, I will need to study it myself, first. In the mean time, may I refer you to my guru for web development? Check out Chris Griffing and his Twitch stream, where he often demonstrates web development live: twitch.tv/cmgriffing -- He probably can recommend several NodeJS learning resources. In the past, he has already recommended this site which covers web development in general, and has a lot of other learning resources as well: freecodecamp.org/
@hussainigoattv9222
@hussainigoattv9222 4 жыл бұрын
@@rhymu I will be waiting. Thanks very much :)
@samuelkatz2463
@samuelkatz2463 3 жыл бұрын
bravo!
@darkknight0258
@darkknight0258 2 жыл бұрын
this is the fastest channel that I clicked subscribe, lol the this small packets joke
@webdeveloperninja9220
@webdeveloperninja9220 2 жыл бұрын
Helped me fix a bug on a microcontroller thanks
@toragodzen
@toragodzen Жыл бұрын
👍thanks🤘
@mirazh8216
@mirazh8216 3 жыл бұрын
thanks
@shawnl1155
@shawnl1155 2 жыл бұрын
You're a really good teacher. Wish I got this quality from my university.
@kentmiggalen9756
@kentmiggalen9756 2 жыл бұрын
nice Tutorial Gilfoyle
@sergiim5601
@sergiim5601 2 жыл бұрын
Very nice explanation! I miss your twitch streams though (:
@rhymu
@rhymu 2 жыл бұрын
Twitch streams starting back up December 1st for Advent of Code 2021!
@trungthanhbp
@trungthanhbp 3 жыл бұрын
Please make more video like this, for education purpose ^^ video in stream is quite long, ~3hour/video
@kennylee6499
@kennylee6499 4 жыл бұрын
This was a great video! I’m new to cpp and am interested in learning more about server development in the context of game servers/dev. Do you have any tips/advice on how to go about this? I’m definitely going to check out more of your channel too!
@rhymu
@rhymu 4 жыл бұрын
This is a very challenging area to study, with many parts to consider. Games can be very demanding when it comes to server requirements; players want low-latency as well as high availability, and games have a rather unique challenge other kinds of servers don't have: keeping the games fair by preventing players from cheating. I'm by no means an expert; I recommend the blogs and presentations made by experts in the field, such as this one about client-side game architecture: www.gabrielgambetta.com/client-server-game-architecture.html If you prefer KZfaq content, check out videos such as this one, made by the creators of "Rocket League", which covers some of the challenges and solutions they came up with for the networking aspects of their game: kzfaq.info/get/bejne/q8t1oMx1sp-YeXk.html
@615rip2
@615rip2 Жыл бұрын
OH my god!!!!!!!!!!!!!!!!!!
@kdjdjsj3645
@kdjdjsj3645 2 жыл бұрын
no offense to other IT channels but their presentation and microphones betray their expertise lol. your video is well made and v easy to follow, great stuff
@youssefamrkadry
@youssefamrkadry 3 жыл бұрын
I love you
@munisudheer5693
@munisudheer5693 2 жыл бұрын
gay spotted
@shrutiyn962
@shrutiyn962 3 жыл бұрын
hey great video! had a few questions: 1. You mentioned that sockets are like access point to access the protocol stack, what do you mean by that? why should there be an access point? Whats the need for an access point? 2. Why do we need sockets? if the packet gets the destination IP(from network layer) and the destination port number (from the transport layer) then why do i need sockets in UDP? The packets go through the network and gets routed to the destination right? I understand we need sockets in TCP because its connection oriented and so to establish the connection we need sockets but why in UDP? please correct me if I'm wrong here. I'm having a hard time understanding the concept of sockets and its need. HELP!
@rhymu
@rhymu 3 жыл бұрын
1. What I mean by access point is a handle or object that an application uses in conjunction with the operating system APIs to send and receive data through a network interface. Think of a socket as analogous to a file handle. 2. You need sockets because a socket is the interface between the application and the operating system for exchanging network packets. Think from the operating system's perspective: "I just got this packet from google.com; which application should I deliver it to?" The answer is the operating system keeps a table of sockets, where each socket is "bound" to a protocol, local address and port number, and is associated with one of the many applications that are running on the host. The operating system inspects the packet to find the protocol, local address and port number, and looks up which socket in its table that maps to. If it finds one, it delivers the packet to the application associated with it. Just like a file or a mailbox. It doesn't matter if it's connection-oriented or packet-oriented. It's about the addressing and binding.
@shrutiyn962
@shrutiyn962 3 жыл бұрын
@@rhymu ah! That makes sense.. thanks so much! :)
@jianliangge2174
@jianliangge2174 3 жыл бұрын
Like
@alisadm
@alisadm 2 жыл бұрын
Is the Header Checksum the same as the Frame Check Sequence?
@rhymu
@rhymu 2 жыл бұрын
Yes, the header checksum is specifically the frame check sequence used for these protocols. (Frame Check Sequence being a general term and in the case of TCP/IP the implementation of it is the header checksum).
@alisadm
@alisadm 2 жыл бұрын
@@rhymu Thanks! ❤
@user-kw3tv5ij1j
@user-kw3tv5ij1j 2 жыл бұрын
The video is excellent but a pop filter would improve the audio quality a lot.
@rhymu
@rhymu 2 жыл бұрын
Thanks for the suggestion. It's been on my list of setup improvements for a while, along with a better microphone.
@KangJangkrik
@KangJangkrik 3 жыл бұрын
Interestingly, I got a lot of trouble while using Python rather than C in term of TCP
@mindgr13
@mindgr13 Жыл бұрын
Isn't it TCP that divides data into multiple packets and not the IP?
@byte-strategist
@byte-strategist 2 жыл бұрын
Watch in 2x thank me later..
@zes3813
@zes3813 2 жыл бұрын
wrg, soundx doesnt matter, no such thing as yellx etc or not
@rhymu
@rhymu 2 жыл бұрын
true, the wolf sees the gtb and then the yellx no longer exists or maybe it does... wait what are we talking about?
@samucancld
@samucancld 2 жыл бұрын
Great explanation except for the awful SM
@Crce-vv6pm
@Crce-vv6pm 3 жыл бұрын
Great Video, Thanks!
@zaur66
@zaur66 2 жыл бұрын
Thank you !
@rhymu
@rhymu 2 жыл бұрын
You're welcome!
Introduction to TCP/IP and Sockets, part 2: Example code Walk-Through
1:06:32
Each layer of the OSI model and TCP/IP explained.
19:48
danscourses
Рет қаралды 283 М.
Increíble final 😱
00:37
Juan De Dios Pantoja 2
Рет қаралды 113 МЛН
The child was abused by the clown#Short #Officer Rabbit #angel
00:55
兔子警官
Рет қаралды 22 МЛН
OMG🤪 #tiktok #shorts #potapova_blog
00:50
Potapova_blog
Рет қаралды 18 МЛН
Network Ports Explained
10:33
PowerCert Animated Videos
Рет қаралды 1,5 МЛН
UDP doesn't suck! It's the BEST L4 protocol for THESE types of applications...
11:52
How TOR Works- Computerphile
14:19
Computerphile
Рет қаралды 1,7 МЛН
How one thread listens to many sockets with select in C.
12:01
Jacob Sorber
Рет қаралды 95 М.
The Linux socket API explained
15:21
Chris Kanich
Рет қаралды 32 М.
OSI Model Deep Dive
31:52
Kevin Wallace Training, LLC
Рет қаралды 304 М.
Coding a Web Server in 25 Lines - Computerphile
17:49
Computerphile
Рет қаралды 326 М.
Networking in C++
32:50
The Cherno
Рет қаралды 233 М.
Choose a phone for your mom
0:20
ChooseGift
Рет қаралды 1,9 МЛН
Урна с айфонами!
0:30
По ту сторону Гугла
Рет қаралды 8 МЛН