 Welcome all to the last day of the workshop, so this is the schedule for today I will spend some time talking about the instead of future trends I will cover some interesting trends in computer networks these will include both things that are already existing as well as things people are working on the very informal talk I will get into it soon at the conclusion of this talk I will also summarize some takeaways from the workshop our expectations from you going forward after this after the tea break we will have a workshop feedback as well as the valedictory function where you can provide your thoughts on what you felt about the workshop whether we could do something to improve it so on so forth. And then we will break for lunch post lunch we are expecting you to fill an online feedback provided on Moodle, so you are supposed to log in through your Moodle accounts and fill up to the survey as I have mentioned earlier also such kind of surveys are very important they give lot of feedback for us to improve the workshops in the future, so sincere request you all to please fill the survey even if you are not able to do it today afternoon the survey link is open for the next few days even after you go back you can fill the survey. So, with that let me get to the talk, so this talk is on interesting trends in computer networks a word of caution is that my area of research is in the wireless space, so I know lot of stuff that happens in that space in the wired space I am not actually as conversant with the kind lot of research that happens, but that said I do know some of the stuff that is hot in these areas. So, what I am going to provide is just a high level overview of some interesting things that happen in computer networks, the idea is to just provide a very high level picture in order to get into any of these concepts you need much more time in fact we could run a course itself based on this topic, since I am going to provide a very high level picture I mean the take away or the end result of all this is you will just pick up a few buzzwords as to what is happening and have some vague idea of what I am what I am talking about. In order for you to know anything more in depth you actually have to pick up the topic, pick up the resources do Google or pick up some text books and read it in depth yourself I am not going to provide any such thing. So, they will when I explain stuff I am sure there will be more questions than answers in your head that is the intention, the intention is not to explain everything in a lot of detail the intention is just to expose you to some of the interesting things that happen in computer networks. The idea is for you to take this forward on your own and get to know it in detail. So, just expect to know some buzzwords at the end of the talk with some vague understanding of what is happening. So, with that said so again I will go according to the protocol stack here and then wind up with some high level overview. So, at the physical layer most of the effort these days is to increase the speed. So, when we are talking about wired networks we are already in the GVPS range. So, it is pushing forward to 10 GVPS and all is already there. So, we are trying to really push up the speeds. So, the lot of innovation that happens at the physical layer is in increasing the speed of the link. More work often happens in the wireless space where when we have Wi-Fi networks for example, when they started out they started out with just 2 Mbps and then slowly it got hiked up to 11 Mbps then through 54 Mbps then 108 Mbps. So, as you can see over the years the rates have been constantly increasing and now we are talking about GVPS in Wi-Fi. Similarly, in the cellular space also when we first started it was just 10 Kbps, but slowly the speeds have started to increase and now when we talk about 4th generation which is still not a deployed there is still work going on in that space. We are talking about again 100 Mbps throughput to be offered in a mobile environment. So, in order to achieve any of these high data rates there is lot of innovation that happens at the physical layer. Let me just mention one technology which is extensively used in wireless though it finds used even in the wired space which is called OFDM, Orthogonal Frequency Division Multiplexing. So, OFDM is a very hot area. So, this is what 4G employs, this is what future Wi-Fi will employ, this is what future Wi-Max will employ more or less any wireless technology is converging towards OFDM because it is an extremely spectrally efficient system. So, I will briefly mention what this is that said OFDM also finds used in the wired space in this digital video and audio broadcasting. So, let us see what OFDM is, there are a few things you need to know before you understand OFDM. In fact, whatever I am providing is again extremely high level overview OFDM is very complicated I can do an entire course based on OFDM. So, I will just tell a few things as a background and then you will understand OFDM better. So, there is this concept of spectrum which I have already covered as part of the course any signals for example, if you take a big sequence like this, this has some spectrum. So, we represent it like this. So, the spectrum is infinity it spills over, but typically we cut off at some point and say this is the spectrum of the signal. Another thing which is important to understand in this context is what is called carrier modulation. So, if you see any system be it Wi-Fi, be it cellular, be it Ymax, be it even regular Ethernet you have this bit stream that is in the represented here and this bit stream has the spectrum. What we call this is baseband because any system is going to have signals in this form baseband means it will range from 0 hertz to some f hertz. Now, when you say carrier modulation what you basically are doing is the entire spectrum be it wired or wireless also ranges from 0 hertz all the way till giga tera hertz and so on so forth and you could use the space to communicate. Now, when you have different systems especially in the wireless you want to allocate different chunks of the spectrum to different systems. For example, you might decide to allocate the chunk around 900 megahertz to cellular similarly you may want to I am writing it further, you may want to allocate let us say something near 2.4 gigahertz to Wi-Fi. So, this is how you split up this particular spectrum to the different services when something happens like this. So, baseband as I said will always range from 0 hertz to f hertz. Now, you need to move this baseband to wherever the spectrum has been allocated to you. So, for that what you do is you do what is called carrier modulation. So, you take whatever signal you have in baseband. So, this is the baseband signal and you multiply it with a carrier frequency which is 2 pi f c t. So, f c is the carrier. So, this will correspond to 900 megahertz in the cellular spectrum it will come correspond to 2.4 gigahertz in the Wi-Fi so on so forth. So, this is carrier modulation. So, these two things you need to know that there is spectrum and then there is this carrier modulation that is happening. Now, let us get back to OFDM. So, what OFDM does is the fact that there is FDM shows that this is a form of frequency division multiplexing. So, what you have is let us say you have this entire spectrum at your disposal in frequency division multiplexing what you do is you are going to assign different users this spectrum like this. So, user 1 has got this chunk, user 2 has got this chunk and user 3 may have some other chunk so on so forth. So, entire spectrum you are dividing it up into chunks like this. This is by the way not OFDM this is frequency division multiplexing. Now, the problem with frequency division multiplexing is that you have to provide these guard bands between two different users because as I showed the spectrum spills over into other frequencies also you try to reduce it to the extent possible, but you still need to provide a guard band such that the usage of user 1 spectrum does not spill into user 2. So, this is typically what happens ok. So, I will have to read all. So, this is FDM you have different users in this particular fashion so, this is FDM. What OFDM does is it does as I said it is very spectrally efficient. So, what it does is it divides the spectrum into these very narrow band carriers. So, this entire spectrum is divided in this particular fashion and as you can see there is no guard band not only that the chunks that are assigned are overlapping. The reason why it is able to do like this is because of this orthogonal feature. In other words these carriers are chosen these are all the carriers. So, as you can see earlier we have talked about single carrier here you have multiple carriers. So, OFDM falls under this multiple carrier modulation technique. So, you have multiple carriers right. So, just to contrast in FDM you would have given this carrier to this user and this user is going to use this carrier and spread his data around this particular carrier. Whereas, here in OFDM there are multiple things that happen. So, as I said this thing goes on you will select some of these carriers for user 1, some of these other carriers for user 2 and some more carriers for user 3 and so on so forth. So, you have divided the spectrum into multiple narrow band channels and each of this a bunch of them you are assigning to given user. So, it is very spectrally efficient because it avoids this guard band through the use of this orthogonal carriers and not only that it for a given user itself here you are just allocating one chunk it is a single carrier modulation based on FC whereas, here you are allocating multiple carriers in OFDM. The reason why you do this has to do something with mitigating multipart. As you go for higher and higher data rates multipart becomes an extremely difficult thing to handle and OFDM handles it very beautifully through the use of this single carriers. Now, you may have questions about what this multipart is how does it handle all that is for you to read up on your own, but this is more or less what OFDM is in a nutshell. So, to summarize the physical layer at computer scientist we do not pay that much attention, but that said lot of work that goes on at the physical layer is in improving the data rate and as I have showed an example of it which is OFDM whose main objective is to get the maximum data rate for a given spectrum allocation. So, it is extremely spectrally efficient and it is the technology of choice in many of these wireless technologies. So, most wireless technologies are converging towards OFDM they often throw in MIMO this also is a buzzword multiple in multiple out antennas. So, this has got to do with using multiple antennas again to improve the data rates. So, with that we will move on to the next layer which is the link layer. Again compared to the wired networks there is lot of activity that happens in the wireless networks because the challenges at the link layer basically the media access control becomes challenging because in a wireless network everyone can hear everyone's transmissions. So, media access control has a very important role to play since we are not dealing with wireless networks let me just focus on the wired networks. In wired networks there is Ethernet itself since it is extremely popular as well as very low cost there are lot of efforts in using Ethernet in different settings there is something called Metro Ethernet whose main objective is to extend Ethernet in a metropolitan area network. So, Ethernet is often viewed as a local area network. So, it just covers a small region whereas, metropolitan area it covers a region of an entire city. So, that is a much larger network. So, how can we leverage on the low cost of Ethernet and cover a metropolitan area network. So, there is lot of innovation here at the physical layer I mean this is against not something very new it has been there for quite some time. So, that is something people are looking into. There is similarly something called carrier Ethernet again this is using Ethernet in the telecommunication space where originally the telecommunication space has been mostly proprietary they have ADM switches they have their own signaling so on so forth. But to leverage the low cost of Ethernet as well as the migration towards IP they are also trying to move towards using Ethernet as part of their backbone and that is where a carrier Ethernet comes into play. So, apart from this is like the different technologies that are there as I said link layer there is very minimal even here because CSMA is no more applicable even in switched Ethernet. So, this is more like a physical layer stuff with some minimal link layer specifications which carry on from the regular Ethernet. But more importantly something that happens very interesting at the link layer is what is called VLANs these stands for virtual LANs. So, virtualization of a link in the form of a LAN is something which is extremely useful. So, there is a standard corresponding to this called A22.1Q in fact this also has been around since 1998. So, it is not something so new but something which we do not introduced as part of the course because it is slightly an advanced concept. But let me again tell a little bit of what this VLAN is. Suppose you have this building which is hosting let us say there are multiple floors between the building. So, this is floor 1, this is floor 2 so on so forth and let us say within each floor there are two groups let me call group 1 and group 2. Similarly within floor 2 also there is group 1, group 2 and similarly in floor 1 also and let us say there are two such buildings. So, the task of the network administrator is such that to interconnect these so the group 1 has lot of host, group 2 also has lot of host and you want to interconnect these host such that they can interact with each other. But at the same time you may also have some concerns that you do not want group 1 traffic to reach to group 2. In other words the broadcast traffic because of some privacy concerns. So, let us say group 1 is doing lot of research or it is accounting or the patenting kind of issues you do not want it to reach the kind of message exchanges that they do you do not want it to reach another group. That is not the only reason you may want also that group 1 for example, makes extensive use of the bandwidth whereas, group 2 made less use of the bandwidth. If you merge both of them group 2 is going to suffer because of group 1's activities. So, you want to provide some kind of traffic isolation for this reason as well. So, there are many reasons why you want to separate out the groups. In other words you want the group 1 to belong to one local area network and you want to group 2 to belong to another local area network. But the issue here is the way things are how do you put up interconnect them. So, for example, if you look at floor 3 if you want to connect these groups you naturally have to put one switch for group 1, one switch for group 2 maybe similarly one switch for group 1, one switch for group 2 so on so forth and thereby you have to invest in lot of switches which will increase the cost. But since they are on the same floor if I say I will use the same switch for all of them then it becomes an extended land where transmissions from one group you cannot prevent them from reaching the other group they will because the way it is the switching is done they are bound to go to the other group. The same concept I mean in order to interconnect these groups across two buildings either you have to invest in more switches to provide the isolation or if you want to use less switches currently the way switch tethernet is you cannot quite do it. So, they came up with this very interesting concept called VLAN where what they basically do is I will explain it in the context of just two switches. Let us say there is one switch that is being used in this building 1 and there is another switch S2 being used in building 2 and they are going to interconnect these two switches and you are going to impose this virtual LANs, virtual LANs is this LAN 1 will correspond to group 1, LAN 2 will correspond to group 2 on to this switched architecture. So, let us say there are all these users of group 1. So, this is all group 1 users I am representing it by a circle and there are also these group 2 users which I am representing by a square. So, they are all connected to the switch similarly at the other switch also. So, you have lot of the users that you are doing. Now, what you do in VLAN is basically configure the switches such that they are going to do very intelligent transfer of data. So, one way of viewing is each port of the switch you associate with a color. So, this group 2 is let us say associated with the blue color and group 1 is associated with say the green color. So, that is a typical terminology used in VLAN. So, what you do is whenever you get a packet from a port that is listed as green what the switch 1 does is it will send that packet only on other ports that are listed as green and it will since this one is interconnecting both of them this link will be listed as green as well as blue sorry green as well as blue. So, this will definitely send it out on this. Now switch 2 when it receives this packet say switch 1 will tag this particular packet saying that this packet corresponds to green and send it out and again switch 2 will only send this packet out on those ports that are labeled green. So, this is how VLAN is configured. So, VLAN involves switch configuration. So, there is a network administrator who sits down configures each and every port of a switch based on what the color of that particular group is and thereby the switch is going to do this kind of intelligent routing. So, this is there is in fact lot of stuff I have given a very high level overview you could color based on ports you could color the things based on MAC addresses you could color even based on IP addresses. So, there is lot it is a bit more complicated than what I have mentioned, but at a high level this is how you are imposing a virtualized LAN on a LAN which for all practical purposes is an extended LAN whatever you send ideally can go everywhere, but you are imposing restrictions on where you can send the particular frames. So, thereby realizing a virtualized LAN on a physical LAN. So, this is with respect to the link layer. So, let us move on to the network layer. So, at the network layer also lot of the research even to this day it goes into improving the router speeds. As I said as more and more traffic comes your routers have to handle lot of traffic not only that the link speeds are also progressively increasing. So, your router has to be extremely fast. So, there is lot of research that goes on how to increase the speed of the routers, how to quickly check your routing table to figure out where to forward a particular packet. Apart from this there is also lot of work that goes on providing quality of service for real time applications in the internet. So, there are these architectures called DIPSERV inter servers proposed, but it kind of got overtaken by DIPSERV. So, DIPSERV is what is typically used is called differentiated services. So, there are certain mechanisms that are employed as part of the internet to ensure that real time traffic is given more priority over other traffic. As I had mentioned earlier internet has been designed with best effort service in mind. So, here you are trying to do something more than best effort. So, thereby you need to change certain things about the way internet operates. So, there is research in this phase of how to provide quality of service in the internet. So, apart from this let me tell get into a little bit more detail in something called MPLS. MPLS stands for Multi Protocol Label Switching. This thing actually some people view it as layer 2, some people view it as layer 3 it in fact works in between layer 2 and layer 3. So, let me tell what this is again this is a buzzword which you may have already heard it is again very popular buzzword. So, what MPLS tries to do is impose virtual circuits in the internet in an IP network. If you recollect this IP network is based on datagram forwarding which is very different from virtual circuits. In datagram forwarding what you do is you have a packet this packet has a destination IP address. So, you look at this particular destination IP address and based on this you decide which among my interfaces should I forward this packet on. So, there is no concept of a circuit as part of the internet and datagram forwarding. So, what you are trying to do through the use of MPLS is impose a virtual circuit within this kind of IP network. So, the way that is done is just like in virtual circuits you attach a tag. So, you have this packet which has the ethernet header and then you have an MPLS tag and then you have an IP header. So, you inserted this MPLS tag between ethernet and IP and this tag is very similar to a virtual circuit tag. In other words this is a label which will use for forwarding. So, originally the interest in MPLS was in improving the speed of routers. So, if you remember routers do longest prefix match. In other words in order if there are multiple prefixes within a router and a given IP address could match any of them that search in the forwarding table takes lot of time. Whereas, when you have virtual circuits where you have a label in order for you to search for that label it is an exact match. So, longest prefix match will multiple entries can match it. So, you have to go through the forwarding table carefully whereas, in virtual circuit you have what is called MPLS originally intended to do was to use this exact match through the use of labels. So, you attach a label so that at the router which is an MPLS router instead of looking at the IP destination field you are going to look at this MPLS tag which will match in a way one can view this MPLS tag as if this is your forwarding table you have lot of entries. So, this MPLS tag will tell you where exactly that entry is within your routing table. So, given this it is going to now make the task of routing very easy. So, you just look at the tag you figure out within your forwarding table the particular entry and send it out. Now, how are these tags what label should be given how are the labels distributed that is again a lot of detail there I am not going to get into those details except to mention that even though the original goal was increasing the speed of the routers right now MPLS is extensively used for traffic engineering. What do I mean by this in this datagram forwarding when you have a packet with a destination IP address all packets that have the same destination IP address more or less will take the same path. So, for example, if you have a router here and you have packets coming corresponding to a given destination IP address you forward it on the same interface more or less unless the routing protocol has changed the path. But as long as the path remains the same everything is going to change the take the same path whereas what you can do through the use of MPLS is you could give different labels to the different flows and thereby ensure that they are taking different paths. So, MPLS as such is now used extensively to do some kind of traffic engineering in the internet. So, I know again I am sure lot of questions, but this is just an introduction. So, MPLS you can view it at a high level to summarize tries to make use of virtual circuit switching in the internet through use of these labels and its main goal while originally was to increase the router lookup speed, but currently its main goal is to do traffic engineering. In other words ensure that you have more control over which paths your traffic will take because the internet service providers will love such a feature. You do not want for example, one prefix to follow the same path you may want to load share load balance that particular traffic along multiple paths and this is feasible through MPLS by the use of labels. So, that is with respect to the network layer. Now, coming to transport layer. So, in terms of again research there are the usual TCP based research. So, there is lot of even though TCP is so old even to this day people are always tinkering with TCP to make it more efficient. Nowadays we have a wide variety of devices, smartphones, laptops, huge big servers that are connected with extremely high speed links and you also have a variety of applications that make use of TCP starting from HTTP to even real time applications to file transfer emails so on. So, TCP is one single protocol for it to handle so many diverse devices as well as diverse applications in some cases it will do well in some cases it may not do well. So, how do you find tune TCP such that it does well in many of these settings. So, there is lot of research that is always going on with respect to TCP. Similarly, so let me talk about a few other protocols in this particular space these do not quite fall at the transport layer, but they are in between the application layer and the transport layer. So, one is this RTP protocol which stands for real time transport protocol and there is a companion protocol called RTCP that stands for real time control protocol. So, these are used for handling multimedia applications this uses UDP as the underlying transport that is why I said they happen between. So, this is the applications layer this is the transport layer. So, this RTP RTCP are somewhere in between that is they sit in between. So, what is the reason for RTP RTCP. So, there are lot of applications that make use of multimedia and within multimedia also there are lot of for example, if you are looking at video there is MP4, H.26, blah blah. So, there are lot of standards audio also has lot of compression techniques. So, whenever you are using these video as well as audio streams there is lot of information you need to convey to the other end like what is the compression scheme that you are using, what is the format type that you are using and also these media players need some time stamping information. So, that they can synchronize the playback time. Now, for all this each originally what happened was each application since there is no support had to do this on its own, but then many applications that handle multimedia were coming up with their own proprietary formats to handle this requirement of specifying what the compression techniques are, specifying what the time stamp are, specifying what the sequence numbers are. Then they felt that we should probably have one common standard. So, that different applications can interplay and coexist. So, that is when they came up with this RTP. So, RTP's role is basically to define a particular frame structure to convey this information that is needed for multimedia applications like as I mentioned the sequence numbers or what type of compression techniques that you are using. So, RTP defines that particular format. So, whatever application comes it specifies this RTP will create the required kind of packets based on the specifications and it will use UDP and send it out. Now, what is the role of RTCP? RTCP is a companion control protocol where often the receivers have to convey some information to the sender so that the sender can adapt to the receiver behavior. So, what do I mean by this? So, sometimes some receivers have fluctuating bandwidth, sometimes they may have good bandwidth, sometimes they may have poor bandwidth. Now, as the receiver's bandwidth varies you want the sender to change the compression. In other words in some cases you want it to send a low resolution video, sometimes you wanted to send a high resolution video for which the receivers have to convey some feedback to the sender and that feedback is handled by this companion RTCP. So, basically it carries some error statistic reports from the receiver back to the sender such that the sender can change the behavior, the audio stream or the video stream. So, that is the role of RTCP. So, going back let me also mention another protocol in this space. This is also in between application and the transport player called real-time streaming transport protocol. This is again a protocol that is intended for multimedia applications and this is used for this play pause type of. So, in other words sometimes the media you have to convey information that play the video, pause the video, fast forward the video, rewind the video. All this information is handled by this particular RSTP protocol. So, these are some of the protocols that evolved because a lot of applications were having to do this themselves and there were many such applications in just like how TCP handles many applications, lot of multimedia applications they was felt a need that you need some standard protocols. So, they have been defined to lie between the application and the transport layer. So, that is with respect to the transport layer. So, coming to the application layer, again application layer I mean there is not anything majorly networking concept about it it is a more function of defining clever applications. Sometime back which is sometime in the 2000s there was lot of focus on peer to peer applications before that most of the applications were client server based. Peer to peer applications is where people like you and me we have all these machines they are going to interact with each other and come up with a way of sharing information. Some examples of peer to peer will be Napster which is none of these are in existence anymore, Kaza something which probably you are very aware of which is still working currently is this BitTorrent. So, BitTorrent is a peer to peer application that is used for sharing files. BitTorrent is a very clever design in fact to get into it will involve lot of detail. So, again I am not going to talk about it. So, at a very high level one can view these type of peer to peer applications as making use of individual resources be it bandwidth or CPU cycles to achieve a community task. So, for example, I have some files I wish to share and you have some files that I want let us both put together a resources and get this particular information. So, many of these things had gone out of business because of lot of legal issues because all these were being used to share copyrighted information which is illegal. So, many of these things have gone out of business because of that, but BitTorrent is something which is which is does not just do that. In fact, it some of the illegal BitTorrent sides do that, but mostly BitTorrent is used even by this media houses to distribute content. For example, if there is a gaming new game application that has come up they do use BitTorrent to legally distribute their things to a bunch of clients because it makes very you do not have to provision lot of big servers your intern making use of the clients resources itself to distribute the content. So, it is a clever idea again I cannot give you to limitation of time I would not get into it, but something for you to look into definitely. So, some of the things that happen in this space is social networking. So, this is again with the advent of Facebook, Twitter, WhatsApp so on there is lot of social networking. So, there is lot of research that goes on how to push content, how to pull content, how to advertise in the space so on so forth. So, basically what kind of push pull architecture should you use you collect lot of logs information do some data mining to figure out what is the general behavior of the users you leverage that to behavior and do a design architecture that makes this kind of dissemination of information very efficient. So, that is more or less with the application space. So, there are two other things that I would like to mention these are more from the research angle. So, within the space of computer network off late which is the past two three years there is lot of focus on two areas of research. One is called data center networking you may have already heard of lot of this cloud. So, basically clouds are supported through this data center networking. So, there are lot of this cloud applications you may have heard of Dropbox. Basically this is a storage solution that is provided in the cloud there is Amazon's i3 or something sorry Apple's i3 there are lot of this cloud applications that are available you can also use a cloud to get virtual servers. So, for example, running something like Bodhi tree I would have preferred if it were running on a cloud because the kind of resources it needs it is better served through a cloud especially when it has to scale to thousands of users. Similarly you could also use cloud to do lot of computational intensive tasks. So, for example, you collected lot of data and you want to mine the data to be figure out some patterns again you may not have the enough resources to do it. So, again you make use of the cloud for this data crunching kind of solutions. You may also want to use the cloud for a data basis. In other words if you are managing huge data basis of users so on again you need a very efficient system that is going to maintain this data basis and again cloud provides these kind of services. So, Google, Facebook many of them have these cloud solutions Amazon so on so forth. So, what is this data center networking what happens within this cloud? So, let me get into a little bit more detail. So, this is what happens within a cloud. A typical cloud which is the data center can have anywhere from thousands of hosts to lakhs of hosts. So, these are the number of machines that are there as part of the cloud. So, for example, if cloud or this data center has 1 lakh hosts that is part of the data center the operational costs are mind boggling. I think this takes about 72 crores per month to operate I mean it is not operational cost this includes the infrastructure costs also in other words 45 percent cost of this goes in this 1 lakh host. So, how did time come into play because these hosts have a limited lifetime 3 years 4 years. So, you amortize the cost over those many years and then determine how much it costs per month. So, basically if you are thinking of running a data center with 1 lakh host you should be prepared to spend 72 crores per month. So, that is the kind of and they consume huge amount of electricity so on and so forth. So, let us look a little bit about how these data centers look. So, there are all these machines. So, these machines are put in the form of racks you have all these racks arranged in this particular fashion and at the top of the rack you have something called top of rack switch it is called Tor switch this is basically a switch and these are all the racks these are hosts basically they also go by the name of blades. So, there are many such racks as part of the data centers. So, there will be many such racks as part of data centers and these top of the rack switches are in turn connected to what are called tier 2 switches and these. So, you have such racks in this fashion they are connected to this tier 2 switches. These tier 2 switches in turn are connected to tier 1 switches and these tier 1 switches in turn are connected to routers and these routers they may be such multiple routers and this router is the border router which has the internet access which connects it to the internet. There may be multiple such border routers, but anyway. So, there is a router layer and then following this router layer are this tier 1 switches then they are tier 2 switches typically associated with the tier 1 switch is a load balancer ok. So, this is how a data center is organized. In other words so, the external requests come from outside through the internet to this border router then it is going to route this router in turn will pass to tier 1 switches, tier 1 switches in turn can pass to tier 2 switches and finally, through the top of rack switch the task can come to some host within this rack. Now, when you have some architecture like this there are lot of research issues. In fact, this one can view it as a network by itself. The internet also at the original days itself did not have these many hosts it had hardly a few hosts and there were lot of research challenges. So, here you are trying it is a huge network that you have involving lakh or thousands of hosts. So, there are lot of research challenges to handle within this one could be energy efficiency. How do you ensure that the energy consumption is minimized? One research issue is topology itself. How do you interconnect these hosts? I have shown you a hierarchical kind of topology, but this kind of hierarchical topology lot of these will become bottlenecks. So, for example, let me get into a little bit more detail. Suppose these hosts are connected by 1 g p p s links whereas, these are connected by 10 g p p s links, but there is lot of internal traffic going across the racks. For example, all these racks are talking all this hosts are talking with these other hosts and let us say there are 20 of them here talking with this. Since this 20 are sharing this you are only getting 0.5 g p p s per host whereas, internally they are able to communicate with a much better speed. So, how do you interconnect these switches such that you are not creating bottlenecks within the network? A related concept here is also you need to provide lot of fault tolerance. You people are paying huge amount of money to run their services in the cloud and if you say sorry the some machine failed and thereby could not run your service people are not going to be happy. So, you need to provide lot of fault tolerance. Fall tolerance will involve providing redundant links. So, even if one link failed there is always some other path to go from one place to other providing redundant switches. In other words if some switch failed there is always some other path through some other switch. So, there is lot of work that happens in how to interconnect these hosts. Some other area of research is load balancing. So, you get lot of requests and as I said a data center like this could serve multiple applications, it could serve email applications, it could serve storage applications, it could serve database applications so on so forth. So, you need to whenever you get these requests you have to distribute it across these different hosts. Some hosts may be idle, but their bandwidth requirements may be different, some hosts are very active. So, you need to kind of figure out where to send the traffic where by keeping into consideration the networking constraints. So, there is lot of research that happens on how to load balance the incoming traffic such that the utilization of the resources of the host is maximized. So, that is another area. So, there is also lot of work in the routing space, because as I said this itself is a big network involving lot of switches and routers. So, how do you route load balancing is a little bit at a higher level you are talking about load balancing in the application layer. Routers is how do you determine the paths when you have so much redundancy in the network while making better utilization of the network resources. So, there is lot of activity that happens in this data center networking space that is in fact, a very recent activity. So, if you want to pick some research topic there is a hot area, there is lot of papers that are coming up in the space. So, check this topic out. Another thing which is again which is a very what is it called an idea that is path breaking is something called software defined networks. There is lot of research when we will see them in action there is we do not really know, but there is currently lot of research in the space called software defined networks. What do I mean by this? This again has to do a little bit like virtualization. So, if you know of virtualization, the way virtualization is viewed is you have lot of these resources which are basically you use hardware. So, for example, you have your PC which is a hardware. Now, when you virtualize it you can run your windows operating system on it you could run your Ubuntu operating system on it or you could run any other operating system on it everything works in the virtualized space right. They are using the same hardware, but the software is going to be different. Before virtualization came into play the things were not like this the hardware came kind of custom built for a particular software. So, if you look at networks also the way things are currently is you have lot of these routers which is where there is no distinction between lot of the software functionality is implemented in hardware for efficiency speed purposes and often the configuration of these routers or switches is becoming a nightmare these days because you have to for example, the VLAN I did not get into the details, but configuration of a VLAN is a very difficult task. Routers also with the advent of quality of service support the kind of traffic engineering that MPLS throws in things are becoming extremely difficult to manage these particular networks and lot of the hardware has an inherent relation with the software. So, if anything you have to change it is not an easy task. So, the concept of software defined networks is where you are having this network of hardware and which we call the data plane and then you have a control plane where all the software involving the configuration runs. So, that way by appropriately changing your software you can quickly change the configuration of your routers or configuration of your switches. So, everything happens via software that is a paradigm shift in fact a big paradigm shift from how things are currently. So, there is a lot of activity that is happening on how to create such software defined networks. So, if you look at a router, router these days just does routing functionality, but if you view it as a hardware you could make it act as a router you could even make it act as a switch you can make it act as a firewall or you could make it act as a load balancer. So, it does not matter what you want to. So, at any given time you could make it act in different fashion. So, that is the idea of software defined networks. So, there is lot of work this is again one very hot topic in the area of computer networks lot of focus. Let me conclude more or less this is what I wanted to convey. Let me conclude the talk by specifying a few things if you are of a research oriented mind not only this typically if you want to keep up to date with the kind of research that happens in the space so that you could incorporate some of it as part of your teaching. I wanted to mention a bunch of conferences that are pretty good for you to check. So, in the networking space there is this conference called SICOM. This is a top tier conference in fact getting into this conference getting a paper published in conference is extremely difficult. It hardly has some 10 percent acceptance rate and many people do not even bother submitting. In fact, it is 10 percent among the top people. So, it is very difficult, but it has some very interesting ideas that come up as part of it. So, SICOM is a conference the papers may be difficult for you to read, but as you keep on reading the background material they may be accessible. NSDI is another conference in the space that again deals with systems. Connext is also another good conference in the space. So, there may be a typically a tendency to read papers that are what I would call tier 3 or tier 2 papers these are conferences in tier 1 which means these are the top conferences. It is important to read papers from some top tier conferences just so that you know the quality of research that happens out there the amount of effort people put as part of research. So, this is typically in the computer networks which is the wide space they do have some wireless papers, but if you are more interested in wireless papers there are a bunch of other conferences which are again top tier in the wireless space. By the way SICOM also carries some wireless papers, but its focus is not quite wireless. So, this is MOBICOM, MOBI-SIS, SENSIS, MOBI-Hawk. So, these are some of the good conferences in the wireless space. Apart from this there is let me tell you two other workshops this is called hot nets. Again this falls in this category and hot mobile that falls in this category. The distinction these are conferences these are workshops the distinction is these two workshops have lot of futuristic work. In other words they do not the conferences typically publish work that has been implemented evaluated and so on whereas these workshops talk about ideas and initial implementations or initial evaluation. So, they do not really get into lot of detail, but they come up with bold ideas. So, if you want to check out what are some of the bold ideas that are out there then you should check out these two workshops which is hot nets and hot mobile. So, these are some things for you to check out with that I am going to end the talk on future or current interesting trends in computer networks.