what is nodes and hubs in selenium grid

JavaScript
-it's a java program looks like jar file
-we run this jar from 2 roles: hub and node
-hub receives commands Webdriver object of the client
-then hub is looking for available nodes 
 for execution.
-nodes are executing tests-we run this jar from 2 roles: hub and node
-hub receives commands Webdriver object of the client
-then hub is looking for available nodes 
 for execution.
-nodes are executing testsI configure my driver class to run remote test.
DesiredCapabilities.desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.setCapability("browser","chrome");
URL gridUrl = new URL("http://ipAdress.4444/wd/hub");
driverPool.set(new RemoteWebDriver(gridUrl, desiredCapabilities));
Source

Also in JavaScript: