No video

Distance Vector Algorithm (Bellman Ford) - Computerphile

  Рет қаралды 88,781

Computerphile

Computerphile

Күн бұрын

Underpinning the Internet are countless network routers - how do they work out the route to send your data along? Dr Richard G Clegg, Queen Mary University of London explains the Bellman Ford distance vector algorithm.
/ computerphile
/ computer_phile
This video was filmed and edited by Sean Riley.
Computer Science at the University of Nottingham: bit.ly/nottsco...
Computerphile is a sister project to Brady Haran's Numberphile. More at www.bradyharan.com

Пікірлер: 115
@BonJoviBeatlesLedZep
@BonJoviBeatlesLedZep 3 жыл бұрын
We had a Computer Networks exam involving distance vector algorithms yesterday and NOW this video gets posted. Just my luck.
@johanhendriks
@johanhendriks 3 жыл бұрын
don't worry, you'll be on time for the second time you take the test
@siddharthkapoor1056
@siddharthkapoor1056 3 жыл бұрын
F
@shlomiunger3518
@shlomiunger3518 3 жыл бұрын
Haha me too I just learned about dynamic routing protocols on Jeremy's IT Lab's channel and how RIP and EIGRP use a Distance Vector Algorithm and then I see this. Awesome channel!
@usafa1987
@usafa1987 3 жыл бұрын
Are you in my class?
@talideon
@talideon 3 жыл бұрын
I had fun times with this stuff a two decades ago. In my college work placement, I had to get a bunch of MEMS talking to each other in a mostly reliable fashion, which meant figuring out mesh networking and what to do when you have very unreliable routes. That was a harder problem than my mentors (who were electronic engineers, not software engineers) realised... It was certainly a learning experience!
@richardclegg8027
@richardclegg8027 3 жыл бұрын
Optical MEMs? They're pretty amazing. The first time I heard someone talk about that (late 90s) I honestly thought they were kidding me as it didn't seem possible.
@davidgillies620
@davidgillies620 3 жыл бұрын
Bellman-Ford not having been invented by Bellman and Ford is an example of Stigler's Law: no scientific or engineering discovery is named after its originator. Stigler himself credited Robert Merton as the original discoverer of the law in a nice bit of self-reference.
@matheuscosta5330
@matheuscosta5330 3 жыл бұрын
dijkstra
@davidgillies620
@davidgillies620 3 жыл бұрын
@@matheuscosta5330 Examples can be found practically without limit.
@TechyBen
@TechyBen 3 жыл бұрын
Overhead projectors in 1990: Blurred focus on the wall. Overhead projectors in 2020: Blurred low pixel count KZfaq.
@xenobob2773
@xenobob2773 3 жыл бұрын
30 years of progress!
@Enigmatt_eu
@Enigmatt_eu 3 жыл бұрын
University bells ringing 🔔 Thanks for refreshing my knowledge @Computerphile 🙏
@n00dle_king
@n00dle_king 3 жыл бұрын
3 years on I think I've forgotten the details of every algorithm from my networking class :(
@vipsylar6370
@vipsylar6370 3 жыл бұрын
You're not alone!
@sasukesarutobi3862
@sasukesarutobi3862 3 жыл бұрын
Can the algorithm account for directness? It seems from Dr Clegg's explanation that the count-to-infinity problem arises from nodes exchanging second-hand routing information back and forth, so weighting information by originality would help updates propagate quicker. (Unless that's one of the hacks he alludes to.)
@noamlima9402
@noamlima9402 3 жыл бұрын
So tyler what about maping glitches to instructions then injecting it on intel management engine ? Maybe we can install android that is kinda great
@noamlima9402
@noamlima9402 3 жыл бұрын
So its the ones thats is from that
@donaldkjenstad1129
@donaldkjenstad1129 3 жыл бұрын
Back in the '70's we were writing algorithms for minimal spanning trees ....
@zwz.zdenek
@zwz.zdenek 3 жыл бұрын
It's one of those things you need expensive equipment for and so much planning needs to go into making it work that only those at the top do it. A regional network, especially with damage and/or overloaded paths has to be managed by hand.
@joshuanorris3776
@joshuanorris3776 4 ай бұрын
I would give away my car to have an hour in the classroom with this guy
@joshroberts4076
@joshroberts4076 3 жыл бұрын
This video does a great job of showing a run of the algorithm, but doesn't explain as well the problems it solves
@MasterHigure
@MasterHigure 3 жыл бұрын
They refer back to earlier videos on Dijkstra and A*. Presumably they think the problem is explained well enough over there.
@joshroberts4076
@joshroberts4076 3 жыл бұрын
@@MasterHigure I'm familiar with the video they refer to, but that one I feel too fails to effectively explain why you would use Bellman Ford over Dijkstra
@MasterHigure
@MasterHigure 3 жыл бұрын
@@joshroberts4076 That I think they do explain: That no router wants the responsibility of having a full map of the network, or even the full path to any other router. Just "If I want to send to red, the shortest seems to be to send to black and let them deal with it from there". They don't spend minutes exploring this issue, but it is explained at the outset.
@joshroberts4076
@joshroberts4076 3 жыл бұрын
@@MasterHigure I don't they ever explicitly cover it at all in the video, you've just made a clever inference
@MasterHigure
@MasterHigure 3 жыл бұрын
@@joshroberts4076 Yes, they do. Have a look at 1:10.
@s_rox5042
@s_rox5042 3 жыл бұрын
Please add subtitles. Great content
@victorcotu
@victorcotu 3 жыл бұрын
I'm glad to see that I'm not the only one to have stolen continuous form paper from the lab.
@wylie500
@wylie500 Жыл бұрын
Great video. Cleared things up for me, very well explained.
@felineboy
@felineboy 3 жыл бұрын
Aaaaaand then Black becomes overwhelmed and the whole networks becomes slower, and that reminds me of Braess' paradox.
@theinnerwaffle5887
@theinnerwaffle5887 3 жыл бұрын
I'd watch a video on the Counter Infinity Problem.
@AnaS-lp4mf
@AnaS-lp4mf 9 ай бұрын
Thank you so much this made sense of everything!
@JmanNo42
@JmanNo42 3 жыл бұрын
Immediately i must say fantastic idea of webcam
@arpitpachori3620
@arpitpachori3620 3 жыл бұрын
Please make another video on Count to Infinity problem.
@LaserFur
@LaserFur 3 жыл бұрын
I would think a better way to look at it is to leave the initial blocks and then have sub lists from each router. So it's a one blue followed by one red.
@vinayak186f3
@vinayak186f3 3 жыл бұрын
Just finished watching Dijkstra algo 😀
@TheRastaDan
@TheRastaDan 3 жыл бұрын
what about one router is manually configured to give wrong information? Be it just for disrupting a network or let traffic go through itself to spy on it? Is there anything in the algorithm to prevent that? And - not sure if it relates here - can you make a video on the 'byzantine general problem'?
@UpcycleElectronics
@UpcycleElectronics 3 жыл бұрын
Are the units directly coupled to physical time/distance, or do they include environmental factors and hardware limitations?
@recklessroges
@recklessroges 3 жыл бұрын
They can be coupled to various things, (that you mention and other things such as including upstream costs.)
@graywolf3354
@graywolf3354 3 жыл бұрын
I have one of those mugs!
@kevincozens6837
@kevincozens6837 3 жыл бұрын
I like that mug. Where can you buy one of them?
@richardclegg8027
@richardclegg8027 3 жыл бұрын
Ah... I'm afraid I had it since about 1980 so I doubt it is made any more. :-)
@isyt1
@isyt1 3 жыл бұрын
Great video but one thing I’m not getting - how are the initial route numbers between nodes generated - like in this example, a cost of 1 or 2 or 3 - between nodes? Like when the network is turned on does each node ping everything and base that number on the ping time? And if so, do they routinely recalculate the ping at given intervals?
@richardclegg8027
@richardclegg8027 3 жыл бұрын
So there's lot of ways you might choose to get those initial costs. You might choose simply to say everything is 1 (that's very common) but that makes a boring example. You might choose to say that a link is more expensive if it is near capacity so getting crowded. You might even say that a link is more expensive if it is literally more expensive (you pay some other company money for traffic on that link). In large scale systems these "link weight" parameters tend to be set by engineers. It's actually pretty complicated I am afraid so we didn't really have time to get into it here. Really that would be a full video on its own.
@isyt1
@isyt1 3 жыл бұрын
@@richardclegg8027 Great many thanks for that!
@NilakshMalpotra
@NilakshMalpotra 3 жыл бұрын
0:52 I can imagine Moss from the IT Crowd saying that :'D
@daddlplays4060
@daddlplays4060 2 жыл бұрын
much more complicated explained that it is, hes a professor so that explains a lot.
@kinloo3778
@kinloo3778 3 жыл бұрын
i thought link state protocol / distance vector protocol, Dijkstra Algorithm / DUAL Algorithm?
@richardclegg8027
@richardclegg8027 3 жыл бұрын
DUAL is the algorithm used by EIGRP - I mention it just a little.
@kentw.england2305
@kentw.england2305 3 жыл бұрын
Great explain(er)
@t71024
@t71024 3 жыл бұрын
My toilet is clogged. I guess I have to call the brown rooter.
@TheFool88888
@TheFool88888 Жыл бұрын
thanks
@alejandrodeharo9509
@alejandrodeharo9509 3 жыл бұрын
ADD SUBTITLES PLEASE
@raygreen2134
@raygreen2134 3 жыл бұрын
Never been so early.
@pratek3d
@pratek3d 3 жыл бұрын
Me too!
@raygreen2134
@raygreen2134 3 жыл бұрын
@@pratek3d hello! you interested in computer science?
@jsomhorst
@jsomhorst 3 жыл бұрын
What I'm missing in this is how does a router on its own define what the cost is to a specific device?
@richardclegg8027
@richardclegg8027 3 жыл бұрын
I've answered this in a few places in comments here. It's really a complex problem.
@JanBebendorf
@JanBebendorf 3 жыл бұрын
And the funniest thing is that in reality you almost never use this to search for the shortest route but instead artificially increase the cost of routes to choose the financially cheapest route to send your traffic :D
@richardclegg8027
@richardclegg8027 3 жыл бұрын
Yes. The numbers here are a generic "weight". I did not get into it here but it could be latency or financial cost or something related to bandwidth. At the highest level routing is an economic and political decision as much as an engineering one.
@vishalcseiitghy
@vishalcseiitghy 3 жыл бұрын
@@richardclegg8027 Cisco makes routers have the option to choose which algorithm you want your packets to be sent. Either RIP or OSPF or EIGRP one more protocol developed by cisco only.
@richardclegg8027
@richardclegg8027 3 жыл бұрын
@@vishalcseiitghy yup - I play with them virtually in Packet Tracer software which I teach to my students. :)
@vishalcseiitghy
@vishalcseiitghy 3 жыл бұрын
@@richardclegg8027 I would gladly be a part of that. Are you taking students for internship at the moment. I need to do one internship based on the topic of my choice, and Computer networks fascinate me to my core. I am ready for a test for eligibility from your side, if this is what it takes to do that.
@richardclegg8027
@richardclegg8027 3 жыл бұрын
@@vishalcseiitghy I'm afraid to say I don't have internship places right now but do feel free to drop me an email.
@Engineer12798
@Engineer12798 3 жыл бұрын
While this video explains how the algorithm is used to get the length of the shortest routes, it doesn't explain how to use that information to traverse to any particular node.
@richardclegg8027
@richardclegg8027 3 жыл бұрын
Let us imagine you are router A and you want to get to router B. You receive from each of your neighbours their cost to get to B and you know your cost to get to that neighbour. You pick the smallest of these and send the traffic to that neighbour.
@almatnarmatov
@almatnarmatov 3 жыл бұрын
my future self, hope you doing okay
@paulogsf76
@paulogsf76 3 жыл бұрын
Isn't that Floyd-Warshall?
@richardclegg8027
@richardclegg8027 3 жыл бұрын
Floyd-Warshall finds every shortest path for every pair of nodes assuming a single entity which knows the whole network. F-W is a centralised solution. B-F is a distributed solution. In B-F no router ever knows every link in the network. In F-W one entity knows every link.
@paulogsf76
@paulogsf76 3 жыл бұрын
@@richardclegg8027 Ok. This is not so important, it's just that, if I understood it right, the explained algrorithm computes shortest-paths between all pairs of nodes, and it does so by first considering direct paths with no intermediate nodes and then progressively considering intermediate nodes. This is pretty much like FW is usually presented (in algorithms textbooks, or wikipedia, for instance). The BF algorithm, otoh usually refers to a single-source shortest path algorithm (like Dijkstra, but allowing for negative edges) which uses dynamic programming to progressively relax the number of edges. I am not aware of the computer networks-specific literature, but just got a bit concerned that one could get confused when searching for further references on the topic. But anyway, thanks for your time and the nice explanation with the blocks :)
@richardclegg8027
@richardclegg8027 3 жыл бұрын
@@paulogsf76 the confusion is reasonable. They both try to achieve the same thing in different ways. (Plus I am describing B-F in a short video here. In a lecture series it would get 30 minutes, a full problem definition and worked examples.)
@sadashivshinde9150
@sadashivshinde9150 2 жыл бұрын
That mug has seperate fanbase
@TheDudem122
@TheDudem122 3 жыл бұрын
farid naisan
@noamlima9402
@noamlima9402 3 жыл бұрын
100
@BoxEnjoyer
@BoxEnjoyer 3 жыл бұрын
Rooter
@IcyMidnight
@IcyMidnight 3 жыл бұрын
Your sweater stripes keep making me think there's some sort of massive codec error going on 😂
@richardclegg8027
@richardclegg8027 3 жыл бұрын
Haha... I can't unsee that now. Waistcoat encoding error.
@ShubhamBhushanCC
@ShubhamBhushanCC 3 жыл бұрын
Dynamic Programming is basically just Magic
@SimGunther
@SimGunther 3 жыл бұрын
Feels like magic, but it's just caching (pure) function results based on input parameters and programming for optimal substructures/overlapping subproblems
@MikelNaUsaCom
@MikelNaUsaCom 3 жыл бұрын
as a real world example from my experience... imagine of you have a bunch of distribution centers and trucks... now if you are selling alcohol, you want to plan out the best routes to take and distribute alcohol to all the bars in the area... well the ones that are your customers. Wala... a need for this al-gore-rhythm... I don't know if al gore can dance, but yeah... real world.
@richardclegg8027
@richardclegg8027 3 жыл бұрын
This relates to one of the most famous algorithms in computer science "the travelling salesman problem". It is usually phrased as the cheapest/quickest way one person could visit every one of a set of locations. In your sense, one truck must drive to all of ten bars in some area using the least petrol. (You can make it more complex by adding more trucks or some bars only take some types of beer etc.)
@NathanTallack
@NathanTallack 3 жыл бұрын
lol, "rooter". :P
@1000niggawatt
@1000niggawatt 3 жыл бұрын
more like distance rooter algorithm
@iamundergrace
@iamundergrace 3 жыл бұрын
First
@photophone5574
@photophone5574 3 жыл бұрын
No one cares
@G.T828
@G.T828 3 жыл бұрын
@@photophone5574 I do as well
@ShainAndrews
@ShainAndrews 3 жыл бұрын
Nobody cares.
@theinnerwaffle5887
@theinnerwaffle5887 3 жыл бұрын
@@ShainAndrews How original.
@diamondsmasher
@diamondsmasher 3 жыл бұрын
These rooters look a lot like my router
@jackismname
@jackismname 3 жыл бұрын
None of computerphiles videos are truly accessible to the average person who isn’t on a college course, as opposed to brady’s other series like 60 symbols, the periodic table and numberphile. This is the only channel where they will jump right into an algorithm, without any explanation of what RAM or pointers or libraries or stacks are... In short, the jargon used gates the content, and I think its a shame.
@DigitalMonsters
@DigitalMonsters 3 жыл бұрын
You don't need to know any of that stuff to appreciate an algorithm. Algorithms are entirely divorceable from the machine.
@theinnerwaffle5887
@theinnerwaffle5887 3 жыл бұрын
@@DigitalMonsters fax
@jackismname
@jackismname 3 жыл бұрын
​@@DigitalMonsters Go to around 7:30 in the video, when he his asked "Is this being used?", and I have no idea what any of the things listed in the next 40 seconds are, and how they themselves are implemented. I didn't know what a router was until I was 18 or so, and I'm more tech savvy than the average person. Simple words like "path", "protocol", "thread", "hash", are thrown up extensively, but not every one knows what they mean in the context of computer science. And the explanations of these on this channel I think are poor, and again feel like revision for someone who already knows the topic. I stand by what I say, there is a big layer of jargon and constructs that isn't broken down in every video, and in this case, I still don't really understand what a Dijkstra algorithm is, what is so special about this particular algorithm, which some one who has tried to implement such a procedure knows intuitively, and probably under estimates how hard it is to grasp for some one who hasn't. Chemists, Physicists and Mathematicians are used to dumbing things down, and for some reason, I find that isn't the case with these computerphile videos.
@aaronkoch3273
@aaronkoch3273 3 жыл бұрын
It's pronounced "ROUT-er," not ROOTer, and it's DIKE-strah, not dickstraw. :|
3 жыл бұрын
Hehe, dickstraw
@pierreabbat6157
@pierreabbat6157 3 жыл бұрын
A /ɹutəɹ/ (from "route") is a networking tool. A /ɹautəɹ/ (from "rout") is a woodworking tool. As to Dijkstra, you're close. The diphthong is /æi/, as I've heard Dutch people pronounce it.
@teslainvestah5003
@teslainvestah5003 3 жыл бұрын
@@pierreabbat6157 Well, I've never heard of that woodworking tool. Also, I think it's more important to pronounce root and (networking) route differently, because they're both mathematical terms here, and can actually cause confusion. For the first couple minutes, he could have been talking about a circuit or machine to calculate the root of some number, and it was actually a more reasonable guess than _I'm hearing someone pronounce route as root for the second time in my life (with the first time being 14 years ago in pixar's Cars talking about Route 66)._
@recklessroges
@recklessroges 3 жыл бұрын
"Its Wingardium Leviosa" different accents exist, and unless you are casting a spell, there isn't a "correct" pronunciation, (as long as the audience can understand... which clearly you can.)
@pierreabbat6157
@pierreabbat6157 3 жыл бұрын
@@teslainvestah5003 In that case, "root" is /ɹʊt/. It's not my pronunciation (I say /ɹut/ for both "root" and "route"), but it's a common one, and not used for "route" or "rout".
@busterdafydd3096
@busterdafydd3096 3 жыл бұрын
so poorly explained I think
TCP Meltdown - Computerphile
14:52
Computerphile
Рет қаралды 220 М.
Harley Quinn's plan for revenge!!!#Harley Quinn #joker
00:49
Harley Quinn with the Joker
Рет қаралды 26 МЛН
Why Is He Unhappy…?
00:26
Alan Chikin Chow
Рет қаралды 95 МЛН
IQ Level: 10000
00:10
Younes Zarou
Рет қаралды 13 МЛН
Lecture 17: Bellman-Ford
48:51
MIT OpenCourseWare
Рет қаралды 192 М.
Count to Infinity problem in Distance Vector Routing
3:50
The Nerds
Рет қаралды 47 М.
The First Internet Worm (Morris Worm) - Computerphile
14:21
Computerphile
Рет қаралды 99 М.
Does this sound illusion fool you?
24:55
Veritasium
Рет қаралды 833 М.
Prime Numbers & RSA Encryption Algorithm - Computerphile
15:06
Computerphile
Рет қаралды 173 М.
VPN & Remote Working - Computerphile
13:38
Computerphile
Рет қаралды 213 М.
Hacking Out of a Network - Computerphile
25:52
Computerphile
Рет қаралды 239 М.
Harley Quinn's plan for revenge!!!#Harley Quinn #joker
00:49
Harley Quinn with the Joker
Рет қаралды 26 МЛН