Re: [gentoo-user] Re: [WAY OT] wanna learn networking internals
* Alan McKinnon[150904 08:15]: > On 03/09/2015 21:46, Francisco Ares wrote: [..SNIP..] > > - there was a teletype > > (remember those?) > > Golf balls. Gods, those things made a racket. I think the golf balls you're referencing were the IBM selectrics? [..SNIP..] > Oh no, not punched paper tape. All I remember is thousands of tiny > yellow punched shards that floated everywhere like confetti Chads. Just like the hanging chad debacle here in the US. (I never understood why everyone hated chad enough to string him up, but...) > > > Thanks for the opportunity for an old story to be remembered. > > We old farts here reminisce about every 6 months or so. It usually > starts when someone asks a question like: did you ever work with those > original 8 inch floppies? and the thread goes on for days :-) I still do. Along with teletypes, line printers, PDP-8s, PDP-11s, vaxen, paper tape, 10MB hard drives that weigh 200lbs, etc. All for fun of course. Todd
[gentoo-user] Re: [WAY OT] wanna learn networking internals
Francisco Ares gmail.com> writes: > Sorry for such WAY out of topic message, but Gentoo users are also way > out of regular computer users. Far out man. some psychedelic mood music, say Pink Floyd Ummagumma:: Several Species of Small Furry Animals Gathered Together in a Cave...[2] (now that we got the proper 'grove on'.let's roll! > I intend to learn more deep details about networking intrinsics, > (packets, ports, negotiation, UDP, multicast, unicast, TCP, ethernet, > DHCP, protocols, and so on) so I decided to recur to this list. > Francisco Well, if you really want to 'Get Smart' as in get to 'the edge' of all of this, why not just jump straight to (SDN) Software Defined Networks and such things as OpenVswitch on a cluster? [1]. Our good friends at Rackspace are very progressive in their ideas and systems development. As you learn about SDN, you can backfill what the old farts have done in the past and be an active part of the future? Just search out SDN as it's a revolution in networking that just may be the disruptive thang that is so desperately needed. PS::I bet McKinnon can build a buffered serial port sniffer out of those old 74LSxx chips! I have a wide selection of those old 74LS chips in tubes, just in case you get an itch you need to scratch... The date codes have fadedall I can make out is you old fart. cheers, James [1] https://www.pytexas.org/2015/talk/45 [2] https://www.youtube.com/watch?v=YrRhnaFaBsA
Re: [gentoo-user] Re: [WAY OT] wanna learn networking internals
On 03/09/2015 16:31, James wrote: > PS::I bet McKinnon can build a buffered serial port sniffer out of those old > 74LSxx chips! I have a wide selection of those old 74LS chips in > tubes, just in case you get an itch you need to scratch... > The date codes have fadedall I can make out is you old fart. McKinnon says "I'll have to get back to you on that!" while wandering into his library to fetch the trusty old copy of Mastering Serial Communications copyright 1986 -- Alan McKinnon alan.mckin...@gmail.com
Re: [gentoo-user] Re: [WAY OT] wanna learn networking internals
2015-09-03 6:51 GMT-03:00 Alan McKinnon: > On 03/09/2015 03:16, James wrote: > > Alan McKinnon gmail.com> writes: > > > > > >>> Last, I suggest a parallel learning of C/C++ as it really helps > > > >> ^this^, after the basics are fully mastered. > > > >> netmasks make no sense at all until bitwise operators are fully > >> understood. Even CIDR notation is not really obvious until you > >> understand what languages like C do with the 32 bit words we call IP > >> addresses. All x10 when IPv6 comes into play > > > > > > Huh. I find teaching networking, including the intricacies of advanced > > protocol design, implementation and debugging, are far simpler if > > folks know at least one programming language. Bit manipulations > > are but one part of logic, sequential circuits timing and such > > of the Computer Engineer's domain. In my experience, if folks read too > > much, but do not play with some codes on actual hardware, it all > becomes a > > giant nebula. I guess I just like the practical side of these issues, to > get > > folks hooked on hardware. > > Yes, knowing at least one language is key > > > > > > > How a serial port (rs_232) works and the putting ppp over that is very > > keen for teaching networking. ymmv. You can also use a protocol analyzer > to > > see some cool things. Many codes are published and looking at how a > > microprocessor handles basic packets is very stimulating and encouraging. > > Too bad most kids now days do not get to work on embedded hardware and > build > > up an executive or state machine and send/recieve data over interfaces. > > Granted I worked in the world where assembler was > > king (embedded) and assembler folks learning C and tcp/ip were easily > amazed > > and happy to migrate from assembler to C. > > I think the critical thing is to have a good grasp of what the > technology you use is built on. > > C is a thin wrapper around assembly so to master C you should know cpu > instructions, logic and at lest something about hardware. I don't > believe it's possible or desirable to completely abstract something like > C away from those things and still use it well. It's C, not the ISO 7 > layer model > > > > > As Joost pointed out, I guess it really depends on the background of > > the student. Being a hardware guy, I guess my focus is tainted > > I'm a hardware and electronics guy too. I spent hours in college > building circuits with breadboards, 74xx TTL chips and bits of wire > before they'd let me move onto the next thing > > > > > So, fair enough, but how long (exactly what are the basics) do you > > read before you go to the lab and play? Labs are always more fun > > than classrooms, lectures and stuffy old farts.(gotcha!) ? > > The raspberry pi was specifically built to get back to those old days, > the main designers were from the BBC micro era. > > Which I think is a wonderful idea. > > > > > > > cheers, > > James > > > > > > > > > > > > > > > -- > Alan McKinnon > alan.mckin...@gmail.com > > > Me, too, a hardware guy, but having to learn high level stuff. Here at the company that work for, we had a programmer a couple of years ago, that has gone for a better opportunity. So I got his load. Blinking a bunch of LEDs is where I started. The first ones with simple transistors, resistors and capacitors, TTLs were next, and then, finally, a Z80 with an UV EPROM, having to be programmed at the university lab in a terribly monstrous gig - there was a teletype (remember those?) where a paper tape had to be punched with the byte codes, hand assembled from mnemonics, the tape transferred to another part where it was read while the bytes been burnt to the EPROM; if one missed or twisted a byte, everything had to be done again, program tapes being literally patched over and over. Nowadays it all look very funny, but not at all on those days with a final degree project deadline approaching ;-) Thanks for the opportunity for an old story to be remembered. Francisco
Re: [gentoo-user] Re: [WAY OT] wanna learn networking internals
Thanks, James. I already know C and a bit of C++, and that's why I want to understand deeply about networking protocols, there are some tricks that I see some device's closed source SDKs doing that I would like to reproduce. And probably - if they worth it - publish as open source, of course. Best Regards, Francisco 2015-09-02 17:57 GMT-03:00 James: > Francisco Ares gmail.com> writes: > > > > > Hi, > > Sorry for such WAY out of topic message, but Gentoo users are also way > out > of regular computer users. > > > > I intend to learn more deep details about networking intrinsics, > (packets, > ports, negotiation, UDP, multicast, unicast, TCP, ethernet, DHCP, > protocols, > and so on) so I decided to recur to this list. Googling the terms, just > gets me to network administration and equipment interconnection. > > > > Any hints on web resources for this research? > > > > Thanks a lot and > > > > Best Regards, > > Francisco > > > > > You can always build your own router, and learn about those internals > as they come up while setting up your home router. All you need > are some old PC parts laying around, gentoo and this guide [1]. > Iptables if a really cool network applications as is Network Address > Translation (NAT). > > > Also reading key "RFCs" is the way to go [2]. But try not to get hung up > On the really cool RFCs like OSPF or SIP, as they are ever evolving > and looking at sources it actually better. > > > Last, I suggest a parallel learning of C/C++ as it really helps with > unix/linux/networking if can look at software sources and see what is going > on. Bash and Python are really important too. It's a lifelong journey, so > relax and enjoy the experiences and try not to get frustrated. > > > hth, > James > > [1] https://wiki.gentoo.org/wiki/Home_Router > > [2] https://en.wikipedia.org/wiki/List_of_RFCs
Re: [gentoo-user] Re: [WAY OT] wanna learn networking internals
2015-09-02 18:14 GMT-03:00 Alan McKinnon: > On 02/09/2015 22:57, James wrote: > > Last, I suggest a parallel learning of C/C++ as it really helps with > > unix/linux/networking if can look at software sources and see what is > going > > on. > > ^this^, after the basics are fully mastered. > > netmasks make no sense at all until bitwise operators are fully > understood. Even CIDR notation is not really obvious until you > understand what languages like C do with the 32 bit words we call IP > addresses. All x10 when IPv6 comes into play > > > -- > Alan McKinnon > alan.mckin...@gmail.com > > > Hi again, Alan. Those basics are already well understood, and for now IPv6 is not even being considered ;-) Let me get the second level first. Thanks.
Re: [gentoo-user] Re: [WAY OT] wanna learn networking internals
2015-09-03 3:20 GMT-03:00 J. Roeleveld: > On Thursday, September 03, 2015 01:16:47 AM James wrote: > > Alan McKinnon gmail.com> writes: > > > > Last, I suggest a parallel learning of C/C++ as it really helps > > > > > > ^this^, after the basics are fully mastered. > > > > > > netmasks make no sense at all until bitwise operators are fully > > > understood. Even CIDR notation is not really obvious until you > > > understand what languages like C do with the 32 bit words we call IP > > > addresses. All x10 when IPv6 comes into play > > > > Huh. I find teaching networking, including the intricacies of advanced > > protocol design, implementation and debugging, are far simpler if > > folks know at least one programming language. Bit manipulations > > are but one part of logic, sequential circuits timing and such > > of the Computer Engineer's domain. In my experience, if folks read too > > much, but do not play with some codes on actual hardware, it all > becomes a > > giant nebula. I guess I just like the practical side of these issues, to > get > > folks hooked on hardware. > > > > > > How a serial port (rs_232) works and the putting ppp over that is very > > keen for teaching networking. ymmv. You can also use a protocol analyzer > to > > see some cool things. Many codes are published and looking at how a > > microprocessor handles basic packets is very stimulating and encouraging. > > Too bad most kids now days do not get to work on embedded hardware and > build > > up an executive or state machine and send/recieve data over interfaces. > > Granted I worked in the world where assembler was > > king (embedded) and assembler folks learning C and tcp/ip were easily > amazed > > and happy to migrate from assembler to C. > > > > As Joost pointed out, I guess it really depends on the background of > > the student. Being a hardware guy, I guess my focus is tainted > > > > So, fair enough, but how long (exactly what are the basics) do you > > read before you go to the lab and play? Labs are always more fun > > than classrooms, lectures and stuffy old farts.(gotcha!) ? > > > > > > cheers, > > James > > If you want to base it on programming, I would recommend the following as > well: > http://beej.us/guide/bgnet/ > > -- > Joost > > Thanks again, Joost, that also looks quite promising. Best Regards, Francisco
Re: [gentoo-user] Re: [WAY OT] wanna learn networking internals
2015-09-03 11:31 GMT-03:00 James: > Francisco Ares gmail.com> writes: > > > > Sorry for such WAY out of topic message, but Gentoo users are also way > > out of regular computer users. > > Far out man. some psychedelic mood music, say Pink Floyd Ummagumma:: > Several Species of Small Furry Animals Gathered Together in a Cave...[2] > (now that we got the proper 'grove on'.let's roll! > > > > I intend to learn more deep details about networking intrinsics, > > (packets, ports, negotiation, UDP, multicast, unicast, TCP, ethernet, > > DHCP, protocols, and so on) so I decided to recur to this list. > > Francisco > > > Well, if you really want to 'Get Smart' as in get to 'the edge' of all of > this, why not just jump straight to (SDN) Software Defined Networks and > such > things as OpenVswitch on a cluster? [1]. Our good friends at Rackspace are > very progressive in their ideas and systems development. As you learn about > SDN, you can backfill what the old farts have done in the past and be > an active part of the future? Just search out SDN as it's a revolution in > networking that just may be the disruptive thang that is so desperately > needed. > > > PS::I bet McKinnon can build a buffered serial port sniffer out of those > old > 74LSxx chips! I have a wide selection of those old 74LS chips in > tubes, just in case you get an itch you need to scratch... > The date codes have fadedall I can make out is you old fart. > > > > cheers, > James > > > [1] https://www.pytexas.org/2015/talk/45 > > [2] https://www.youtube.com/watch?v=YrRhnaFaBsA Thanks for the tip and for the video, those glory days of progressive rock still amazes old and new generations. To jump right now on a project like the ones you mentioned is, for now, out of scope. But as more depth can be reached, well, who knows? Best Regards, Francisco
Re: [gentoo-user] Re: [WAY OT] wanna learn networking internals
On 03/09/2015 21:46, Francisco Ares wrote: > Me, too, a hardware guy, but having to learn high level stuff. Here at > the company that work for, we had a programmer a couple of years ago, > that has gone for a better opportunity. So I got his load. > > Blinking a bunch of LEDs is where I started. The first ones with simple > transistors, resistors and capacitors, TTLs were next, and then, > finally, a Z80 with an UV EPROM, Z80? A fine CPU. Built by a bunch of guys who left Intel early on, convinced a full 8 bit cpu with 16 address lines was possible! That chip powered so many home pcs in the late 70s and early 80s. That and the 6502 # having to be programmed at the > university lab in a terribly monstrous gig A giant thing with a ZIL socket and huge UV tubes to blank the EPROM> Yup, I remember them well > - there was a teletype > (remember those?) Golf balls. Gods, those things made a racket. But worse still was line printers with 136 disks, one for each character position. If you printed just the right things, you could get them to play out a tune :-) > where a paper tape had to be punched with the byte > codes, hand assembled from mnemonics, the tape transferred to another > part where it was read while the bytes been burnt to the EPROM; if one > missed or twisted a byte, everything had to be done again, program tapes > being literally patched over and over. Nowadays it all look very funny, > but not at all on those days with a final degree project deadline > approaching ;-) Oh no, not punched paper tape. All I remember is thousands of tiny yellow punched shards that floated everywhere like confetti > Thanks for the opportunity for an old story to be remembered. We old farts here reminisce about every 6 months or so. It usually starts when someone asks a question like: did you ever work with those original 8 inch floppies? and the thread goes on for days :-) -- Alan McKinnon alan.mckin...@gmail.com
Re: [gentoo-user] Re: [WAY OT] wanna learn networking internals
On Thursday, September 03, 2015 01:16:47 AM James wrote: > Alan McKinnon gmail.com> writes: > > > Last, I suggest a parallel learning of C/C++ as it really helps > > > > ^this^, after the basics are fully mastered. > > > > netmasks make no sense at all until bitwise operators are fully > > understood. Even CIDR notation is not really obvious until you > > understand what languages like C do with the 32 bit words we call IP > > addresses. All x10 when IPv6 comes into play > > Huh. I find teaching networking, including the intricacies of advanced > protocol design, implementation and debugging, are far simpler if > folks know at least one programming language. Bit manipulations > are but one part of logic, sequential circuits timing and such > of the Computer Engineer's domain. In my experience, if folks read too > much, but do not play with some codes on actual hardware, it all becomes a > giant nebula. I guess I just like the practical side of these issues, to get > folks hooked on hardware. > > > How a serial port (rs_232) works and the putting ppp over that is very > keen for teaching networking. ymmv. You can also use a protocol analyzer to > see some cool things. Many codes are published and looking at how a > microprocessor handles basic packets is very stimulating and encouraging. > Too bad most kids now days do not get to work on embedded hardware and build > up an executive or state machine and send/recieve data over interfaces. > Granted I worked in the world where assembler was > king (embedded) and assembler folks learning C and tcp/ip were easily amazed > and happy to migrate from assembler to C. > > As Joost pointed out, I guess it really depends on the background of > the student. Being a hardware guy, I guess my focus is tainted > > So, fair enough, but how long (exactly what are the basics) do you > read before you go to the lab and play? Labs are always more fun > than classrooms, lectures and stuffy old farts.(gotcha!) ? > > > cheers, > James If you want to base it on programming, I would recommend the following as well: http://beej.us/guide/bgnet/ -- Joost
Re: [gentoo-user] Re: [WAY OT] wanna learn networking internals
On 03/09/2015 03:16, James wrote: > Alan McKinnon gmail.com> writes: > > >>> Last, I suggest a parallel learning of C/C++ as it really helps > >> ^this^, after the basics are fully mastered. > >> netmasks make no sense at all until bitwise operators are fully >> understood. Even CIDR notation is not really obvious until you >> understand what languages like C do with the 32 bit words we call IP >> addresses. All x10 when IPv6 comes into play > > > Huh. I find teaching networking, including the intricacies of advanced > protocol design, implementation and debugging, are far simpler if > folks know at least one programming language. Bit manipulations > are but one part of logic, sequential circuits timing and such > of the Computer Engineer's domain. In my experience, if folks read too > much, but do not play with some codes on actual hardware, it all becomes a > giant nebula. I guess I just like the practical side of these issues, to get > folks hooked on hardware. Yes, knowing at least one language is key > > > How a serial port (rs_232) works and the putting ppp over that is very > keen for teaching networking. ymmv. You can also use a protocol analyzer to > see some cool things. Many codes are published and looking at how a > microprocessor handles basic packets is very stimulating and encouraging. > Too bad most kids now days do not get to work on embedded hardware and build > up an executive or state machine and send/recieve data over interfaces. > Granted I worked in the world where assembler was > king (embedded) and assembler folks learning C and tcp/ip were easily amazed > and happy to migrate from assembler to C. I think the critical thing is to have a good grasp of what the technology you use is built on. C is a thin wrapper around assembly so to master C you should know cpu instructions, logic and at lest something about hardware. I don't believe it's possible or desirable to completely abstract something like C away from those things and still use it well. It's C, not the ISO 7 layer model > > As Joost pointed out, I guess it really depends on the background of > the student. Being a hardware guy, I guess my focus is tainted I'm a hardware and electronics guy too. I spent hours in college building circuits with breadboards, 74xx TTL chips and bits of wire before they'd let me move onto the next thing > > So, fair enough, but how long (exactly what are the basics) do you > read before you go to the lab and play? Labs are always more fun > than classrooms, lectures and stuffy old farts.(gotcha!) ? The raspberry pi was specifically built to get back to those old days, the main designers were from the BBC micro era. Which I think is a wonderful idea. > > > cheers, > James > > > > > > -- Alan McKinnon alan.mckin...@gmail.com
[gentoo-user] Re: [WAY OT] wanna learn networking internals
Alan McKinnon gmail.com> writes: > > Last, I suggest a parallel learning of C/C++ as it really helps > ^this^, after the basics are fully mastered. > netmasks make no sense at all until bitwise operators are fully > understood. Even CIDR notation is not really obvious until you > understand what languages like C do with the 32 bit words we call IP > addresses. All x10 when IPv6 comes into play Huh. I find teaching networking, including the intricacies of advanced protocol design, implementation and debugging, are far simpler if folks know at least one programming language. Bit manipulations are but one part of logic, sequential circuits timing and such of the Computer Engineer's domain. In my experience, if folks read too much, but do not play with some codes on actual hardware, it all becomes a giant nebula. I guess I just like the practical side of these issues, to get folks hooked on hardware. How a serial port (rs_232) works and the putting ppp over that is very keen for teaching networking. ymmv. You can also use a protocol analyzer to see some cool things. Many codes are published and looking at how a microprocessor handles basic packets is very stimulating and encouraging. Too bad most kids now days do not get to work on embedded hardware and build up an executive or state machine and send/recieve data over interfaces. Granted I worked in the world where assembler was king (embedded) and assembler folks learning C and tcp/ip were easily amazed and happy to migrate from assembler to C. As Joost pointed out, I guess it really depends on the background of the student. Being a hardware guy, I guess my focus is tainted So, fair enough, but how long (exactly what are the basics) do you read before you go to the lab and play? Labs are always more fun than classrooms, lectures and stuffy old farts.(gotcha!) ? cheers, James
[gentoo-user] Re: [WAY OT] wanna learn networking internals
Francisco Ares gmail.com> writes: > > Hi, > Sorry for such WAY out of topic message, but Gentoo users are also way out of regular computer users. > > I intend to learn more deep details about networking intrinsics, (packets, ports, negotiation, UDP, multicast, unicast, TCP, ethernet, DHCP, protocols, and so on) so I decided to recur to this list. Googling the terms, just gets me to network administration and equipment interconnection. > > Any hints on web resources for this research? > > Thanks a lot and > > Best Regards, > Francisco > You can always build your own router, and learn about those internals as they come up while setting up your home router. All you need are some old PC parts laying around, gentoo and this guide [1]. Iptables if a really cool network applications as is Network Address Translation (NAT). Also reading key "RFCs" is the way to go [2]. But try not to get hung up On the really cool RFCs like OSPF or SIP, as they are ever evolving and looking at sources it actually better. Last, I suggest a parallel learning of C/C++ as it really helps with unix/linux/networking if can look at software sources and see what is going on. Bash and Python are really important too. It's a lifelong journey, so relax and enjoy the experiences and try not to get frustrated. hth, James [1] https://wiki.gentoo.org/wiki/Home_Router [2] https://en.wikipedia.org/wiki/List_of_RFCs
Re: [gentoo-user] Re: [WAY OT] wanna learn networking internals
On 02/09/2015 22:57, James wrote: > Last, I suggest a parallel learning of C/C++ as it really helps with > unix/linux/networking if can look at software sources and see what is going > on. ^this^, after the basics are fully mastered. netmasks make no sense at all until bitwise operators are fully understood. Even CIDR notation is not really obvious until you understand what languages like C do with the 32 bit words we call IP addresses. All x10 when IPv6 comes into play -- Alan McKinnon alan.mckin...@gmail.com