Hello everybody. Welcome to this fourth and last section about computer architecture and networks. Here we will talk about network structuring, and how to connect the various machines to the network and the Internet. At first, computers were only connected to a few peripherals. Previously, we saw how to transfer information on a cable between a computer and a printer so it would be the same with other peripherals, like a scanner for example. Today, we try to interconnect many computers together. One of the first questions to arise when trying to interconnect every workstation in an office, is if there are a hundred of them for example, how do you make them talk with one another without spreading cables between each computer pair? If you did that, there would be 5,500 cables between all these computers. That's not just not possible, so we try to find technologies that can link all these computers to the network without having too many wires spreading all over the building. So ring technologies were created quite rapidly. A ring is simply every computer connected with 2 neighbours, so if I want to talk to a computer that isn't one of my neighbours, I'll just go through other neighbours until I reach the one I want. There is also bus like topologies, where everyone is connected to the same bus, and everybody can talk to each other through that bus. The problem with those technologies is that you can potentially have collisions, because several people may want to talk at the same time on the ring or on the bus, so one person may be writing and erasing what another person is writing. So one has to be careful with that,so protocols were created to manage that kind of problem. That's also where the notion of network packets comes in, which is actually dividing the communication between 2 persons. So if I want to send 1 megabyte to a neighbour, That will be divided into small packets each weighing approximately a few kilobytes, so a few thousand bytes. It will be sent in small portions, and the point is that I can send a few parts of the file, then let somebody else talk instead for a time, and then I will be able to send the next parts. So basically, I am going to divide my communication into packets and send it piece by piece when I have the opportunity to send without hindering the others. So those are the kinds of technologies used in local networks nowadays. Generally, there is a thing called a switch on which everyone is connected and that switch can be implemented inside the house Internet box or inside real network systems called switches that can be found inside company buildings, for example. Technically, every workstation will be connected to that switch with a cable and will be able to talk to others through that switch. That's what everybody will use. Communication through that box or server will also be possible in a wireless mode which will then transfer the data to other stations, either through Wi-Fi or a cable if the computers are only connected through wires. So the heart of the network will allow everybody to talk with each other inside that local network. Then the Internet appeared, and the point was to connect various local networks. The word Internet comes from InterNetWorking, so interconnecting various networks with one another. So technically, the Internet is a big graph that links Internet provider centres in particular, which are scattered all around the planet. So Internet providers have laid down cables between them, or optical fibres more recently, that allow packets to be routed from France to the United States or somewhere else by going through various places and different routes eventually. There are several optical fibres going from Europe to the United States, and the packets we send don't need to go through the same cable all the time. Today, thanks to the Internet,there are billions of interconnected equipment.The first question is how to identify in a unique fashion each connected equipment. For example, if you want your smartphone to communicate with a server, to check a web page. Your smartphone needs to be identified and the other equipment needs to be identified too, the web server you want to communicate with, so that you can talk to it and so that it can respond. Packets also need to be routed through, so communications between my smartphone and the server at the other end of the world. That means a path has to be found across that big Internet graph so that the packets get to the right place. A great protocol was specifically designed to do that, called IP, for Internet Protocol, which was actually designed to do addressing, so find the precise equipment you want to talk to and route the packets towards that equipment. IP was developed several years ago, the modern version is called IPv4. We are gradually migrating towards the IPv6 version, and its main utility is to allow much more equipment to be simultaneously connected to the Internet. IPv4 is actually limited to 4 billion different addresses, which means that no more than 4 billion can be connected at the same time. That's a problem at the moment because if you add up all the computers and smartphones, that already makes more than 4 billion. So we're migrating to IPv6 which will allow more addresses, but the transition is done gradually to avoid breaking the Internet overnight. Other protocols have been added. IP enables us to find the people we want to talk to and send them packets through various intermediary equipment There are other protocols, like TCP, for Transmission Control Protocol which allows performing reliable communications with somebody. For example, if I want to send a packet to a web server, TCP will make sure all my packets will indeed be brought to that person because packets can sometimes get lost in case of an equipment failure. Packets can get to their destination in the wrong order, so TCP will reorganise them so that the message is understandable by the server. The server will send me packets back in the same way when I request a Web page, TCP will send it in the right order. How do we identify equipment? We need to know the IP addresses, so a unique number enables us to identify equipment connected to the Internet. There are 2 possibilities actually: our address and the address of the person we want to talk to. At home or at the office, we connect to a network and equipment will automatically retrieve the IP addresses. That's why a protocol called DHCP was created, it enables equipment to connect to the network and say, "I'm new here, I need an address, give me an address".At that moment, the company's server or the box at home will provide an address saying "You're new, so here's your address".So now the equipment is identified, we just need to know who to talk to. Some equipment is at the other end of the world, at first we don't know their address. Most of the time, we want to manipulate equipment with Web addresses like www.fun-mooc.fr which is an Internet address. That's actually a domain name with a machine name inside the domain name, and what we need is the IP address to be able to talk to that machine. So a translation needs to be done to retrieve the IP address and then be able to communicate. There is another protocol created for the translation called DNS, Domain Name System, that actually exists to translate machine names toward the machine's IP address. So when connecting to the website Web fun-mook.fr, we will ask the DNS system "Translate that server's address into an IP address." then the IP protocol will be used to talk to the server whose address we just retrieved. Technically, we are going to send packets to that distant server, they will be sent from our smartphone, for example, go through a network, through the home box example, and then through the Internet, so each mediator will simply pass the packet over until it gets inside the local network that contains the server, the server will receive our request, then respond and go back the same way. To perform this routing through the Internet, packets will go through a certain number of mediators, may it be the box or intermediary equipment on the Internet provider's side that are called routers. Each intermediary has what is called a routing table. A routing table is a big chart that says "If you want to go to that addresses list, follow that wire". So routers have a set of wires connecting them together everywhere on the globe and so they know that each wire corresponds to that address list which is accessible through that route. So each time a router receives a request to connect to this or that service, FUN's IP address, for example, will look on its table and find a place that says, "OK, it's this way to get to FUN." So the data leaves, the box will send the packet to the Internet provider,which will look on its table and pass the data to another Internet provider, etc. until it gets to FUN's server. So that's actually step by step routing. When it gets to an intermediary, each packet looks where it has to go, and then the same for the next intermediary. What's funny here is that there is no unique route between transmitter and receiver. The Internet is a big graph with optical fibres going everywhere on the planet, so there are many possible paths between the various equipment, go from my smartphone to a server. And that path can actually vary as communication goes on. There may be an equipment failure for example, so data will automatically follow another path. Sometimes, traffic can be slowed down, because many people are trying to communicate with that server, so we may be routed through another, there can be pricing reasons too. So without us knowing, protocols may route packets through other paths, and change again, and everything continues to work because protocols make sure the packets get to where they should be and are put in order again so that they can be understood. Fortunately, that is done in an imperceptible way and we don't need to handle anything, except if our connexion crashes, of course,because generally, we only have one connexion What you need to remember: computers, smartphones, etc. are generally connected through local networks which then connect to the Internet. Well, when connected with a 3G or a 4G connexion on a smartphone, that's not really a local network, but that's still a local network connected to the mobile phone provider's antenna. All this is interconnected thanks to a very big graph that forms the Internet with billions of equipment connected to it. And so there are two main problems with that big Internet graph: protocols to identify the equipment, so knowing who I am and who is the person I want to talk to, where he or she is located, then find a path so as to send packets to those people and so that they can respond to the question I asked, like when I make a search on a search engine, for example.