Okay, welcome to the second lecture on algorithms for Internet
applications.
Last week I showed you several things on introductory material.
I showed you this, you remember I showed you the app for cooperation,
so for hand-waving and so on.
So if you are interested in downloading that, if somebody is here who
would like to download that, you can do that from that QR diagram.
Somebody here who needs that at the moment?
Nobody?
Yes, you need that, then you can download it.
Do you have it?
Okay.
So I showed you or told you several things about this course.
I mentioned that you should register for the tutorials.
Somewhere I had that.
Here.
I hope you all did that because the deadline for registering for the
tutorials ended yesterday.
So if somebody is here who has not registered, then you should really
hurry up and send a message to Marc Mülthin or Fabian Rigolle.
Okay, that was the introductory chapter.
Then I showed you a little bit about motivation for why we actually
look at Internet and applications.
I made several remarks on the way we actually perceive the Internet as
in different facets.
We noticed the range of questions that one could ask with respect to
using the Internet in different ways.
And the final thing was that we have to look at appropriate algorithms
for using all the information that is available on the Internet.
And we will do that today at more depth.
And let me just briefly see what I have.
Yes, that's okay.
And what I would like to do today, just before we actually start the
course, I would like to briefly make a commercial on inviting you to a
student afternoon, just some event at the Research Center for
Information Technology next week, Wednesday afternoon.
There is an afternoon for students where you can look at what we are
actually doing in the Research Center for Information Technology, not
that far from here, just on the Heide-Neustraße, close to the
Technologiefabrik, technology production site or whatever, or
technology factory.
And here in the Research Center for Information Technology we have a
house of living labs where we work on or where we show certain things
that we are doing there in the Research Center for Information
Technology.
In particular, we are having there several living labs where we
demonstrate our current topics for research and development, which we
very often do in cooperation with companies.
And in particular, there are many possibilities for activities of
students, either as a research assistant or you can write your thesis
there and do other things, participate in the project that we have
there.
And the topics that we address there are service robotics, mobile IT,
satellite navigation, automotive, where the technology for the
automotive area, like technology for letting cars move, is in.
Then industrial automation, how can we actually improve the efficiency
of industry production sites.
And then we have the smart home with ambient assisted living and also
a smart home with respect to energy issues.
So we have a living lab energy management, which is looking at the
complete building, the energy system there, and developing energy
management facilities in order to prepare for a world where it's
necessary to have more flexible energy consumption.
And so far, there's also an office environment where we have certain
technologies in there for home automation.
So lots of things where you can actually do or perform certain tasks
that you are interested in, or just have a look at what we are doing
there and then you can decide whether you would like to get involved
there.
So that was just a short commercial, and now we come to the topic of
today's lecture, Internet History and Technology.
So I will make a brief, or give you a brief overview of how the
Internet actually evolved.
I always get some remarks by my assistants.
You should shorten that because it's, you can just read that.
I don't have to spend that much time on it.
So let me just briefly tell you what the Internet actually is.
We looked at that last week already, so you remember this definition.
The three different, or three major aspects that make up the Internet,
the globally unique aerospace, the protocols, the high-level services.
And now we, in a moment, we will look at the protocols and what's
behind them.
And just briefly, before we do that, I would like to just give you
some information or just look a bit more at the history of the
Internet and how it actually evolved.
Because this is quite interesting to see how actually events and
certain things influence technological developments.
So the real reason for why the Internet was established was that the
Russians started their first satellite, the Sputnik.
And at that moment, the United States got afraid of attacks from outer
space.
And so they established the Advanced Research Projects Agency because
they said they needed more sophisticated technology.
And in particular, they wanted to get a network infrastructure that
would allow them to actually survive an attack on some of the
essential communication nodes.
So that was the starting point for having packet-switching networks.
And so it took a few years before they actually came up with that.
And in 1968, so you see six years after they actually developed that
first...
well, the first ideas about this packet-switching network, they
decided to build a network on that.
It started with four universities being connected to that, mainly in
California, also University of Utah.
So it was a very small network.
And then it grew quite significantly over the following years.
So in 1972, there were already 23 hosts in that network.
It was actually the first email program 40 years ago.
72 BBN is a company which is doing most of its work in connection with
the Department of Defense of the States.
And so here, initially, they didn't use TCPIP because it wasn't there.
They used something which was called the Network Control Protocol.
And then a year later, Vinton Cerf, the current president of ACM, he
designed, together with Bob Kahn, the Network Protocol TCPIP, in order
to initially to communicate between different computer networks, so
different local computer networks.
Yes.
Backbones is the... like if you have here...
Oops, let me just draw something.
You have here some host and you have here a certain network where you
have lots of stations connected to a computer.
You might have another site where you would like to also have certain
computers.
You would like to connect those, and for that you need some powerful
backbone, some communication line, which has high bandwidth in order
to support the communication between different sites.
So it's not the communication, like not the local area communication
from the server to certain stations, but it is the communication
between regionally separated sites.
So it shows 50 kilobit per second was the backbone capacity at that
time.
High speed, high bandwidth at that time, and certainly we know that
nowadays we are quite far from that, much more bandwidth.
Okay, so then in 74, so 38 years ago, the term internet was used the
first time by Richard Burke and Bob Kahn in their paper on TCP.
So they actually started that name.
And then there were several other networks designed the following
years.
I will go through that quite quickly.
So in 76, you see, several years after it actually was designed, the
Department of Defense decided to actually use it in the ARPANET.
And then initially it was a network that was built or constructed,
established, because the Department of Defense of the United States
decided they needed such a network for military reasons.
And so then some other people, certainly like, this was designed by
people in academia, and they said, we need our own network.
So they set up a Usenet network, was a decentralized news group
network.
And they also set up a different network, a Bitnet, because it's time
network, has nothing to do with bits.
But it is, like, Bitnet was a network also just for sending messages
back and forth.
And the first list server, actually, that was on that, like,
distributing information to a lot of subscribers, the first of those
list servers was Theorynet.
That means the people in theoretical computer science were the first
to actually make extensive use of the capabilities of such a network.
And then in 81, the Computer Science Net was built, another backbone,
separate from the ARPANET, to connect computer science departments at
sites that had not so far an access to the ARPANET.
And they immediately also planned for having interconnection between
the CSNet and the ARPANET.
This was all in the United States.
In Europe, there was nothing like that.
They had 213 sites at that time.
In 83, the TCPIP became the standard protocol of ARPANET, 10 years
after they started to design that.
And at that year, in 83, they actually started the European Academic
and Research Network, the ERN network, which was established not
because the European academics were progressing very much and pushing
for that, but IBM needed the technology that they had in the States.
They wanted to have that in Europe to connect all their sites there.
And so they provided it for free to the academic institutions in
Europe.
And so in Europe, we got the European Academic and Research Network.
So this was something which we actually got at that time.
And so in 83, I was actually as a guest or as a visiting researcher, a
visiting professor in Canada, and there I followed discussions on how
to actually establish or how to create first-year or how to supply
first -year students with computers, what would be the best computer
equipment with respect to these things.
A discussion that was going on between all the computer science
departments in North America.
At the same time, in Europe, nobody would think about that.
I came back in 84 to Germany and talked to the computing center head
and asked for access to the networks.
And they said, why do you need access to the network?
I said, well, to send email, to follow news groups.
And he said, well, you can phone.
Why do you need such a network?
That's not really necessary.
And you don't use the computer for communication.
You use it for computation and for nothing else.
And so that was the attitude of typical computer science or computing
center directors at that time.
Although at Karlsruhe, at the same time, they received the first email
message and supported that quite strongly.
So there was a different attitude in different areas.
So that's 30 years ago or almost.
And so at that time, we actually got something which was similar in
Europe.
And then all these different things developed.
You see how the number of hosts actually increased quite
significantly.
Here in 87, already 28,000 hosts.
And they also had, at that time, stronger backbone lines of 1.5
megabit per second, not just these 50 kilobit per seconds.
And so all the technology improved, like the hardware, the
communication technology, and also the software for running these
things.
Then in... oh, by the way, here, there was one thing.
The Internet Engineering Task Force.
I told you that there was a definition of the internet made up by the
ITF.
So they are actually controlling the ARPANET.
They are the governing body of the internet.
But it's all originally designed because of some requirements stated
by the Department of Defense in the United States.
So that was the major reason for setting up the ARPANET.
So this developed on and on.
So then the NSFnet, there were a few remarks on NSFnet.
NSF is the National Science Foundation of the United States.
It actually replaced the original ARPANET.
And it was separated into a military network.
So when you talk about hosts here, I would assume that this is always
only the civil nodes and not the military nodes.
Because the number of military nodes will not be public, probably.
Then in the beginning of the 90s, we had actually here Tim Berners-Lee
all of a sudden in Europe, in Geneva.
And Tim Berners-Lee was a physicist, and he wanted to communicate with
the colleagues.
And so he designed a hypertext system for communication between
researchers in high-energy physics.
And so he designed hypertext, HTML, HTTP, and so on.
That was in the beginning of the 90s.
And in 92, actually, the World Wide Web was released as a service on
the Internet.
It was released by CERN.
So it's an initiative of people in nuclear physics, not something
coming from the military, not from computer scientists, but from
physicists.
And so this was the start of the World Wide Web.
And then this really got momentum and evolved into what we now all
know as the World Wide Web.
Winton Cerf also, no, Tim Berners-Lee designed also the first browser
for HTML pages.
But then there was also the, like in the States, the Mosaic browser
was developed.
And so there was a standard interface for looking at content in the
World Wide Web.
And you see at that time there were already 2 million hosts, so quite
a large number of hosts.
And then this actually developed quite fast.
So in 94, there was the first version of the Netscape browser.
There were the first commercial applications.
Pizza Hut was the first, or one of the first who used the World Wide
Web for ordering pizzas.
There was the first cyber bank.
And so certain commercial applications actually developed here.
And then when that was developing, countries got aware of, well,
something is going on there, and we have to be, or we have to look at
what's actually communicated there.
So in China, certain restrictions were enforced.
In Germany, certain, like access to certain use group was cut off.
Certainly, like we have certain information which we consider to be
unwanted on the Internet, like Nazi information and things like that,
usually is something which is discarded.
So it's not the case that we have just open information for everybody,
but we also restrict it, but in a different way, I would say, than
others do that.
Let us see several things that are happening here in different
countries with respect to the use of the Internet.
And here in 98, you actually hear the Internet was used to judge the
performance of world champion ice skaters as jurors there, so
something which was impossible before that.
The first electronic postal stamps were invented there by the U.S.
Postal Service.
We can do that now also in Germany.
And, well, the backbones for the Internet actually had been
transformed into private enterprises, so private companies actually
are operating the backbones, which initially were operated by
government institutions and not by private institutions.
Then more things happened here.
Viruses came up, like attacks on the network.
The year 2000 was something which was very interesting because all
people were concerned with respect to the time change or the date
change.
And it's really funny that in particular the U.S.
timekeeper, like an official institution responsible for actually
providing information on the correct time, they announced the new year
as 19-100, the year 2000, because they did not actually manage to
transform their system from just counting up.
And after 99, the next one is 100, and they just added the first two
digits, 19, so it was the year 19-100.
And something which happened to a few time services around the world,
but it didn't really come to all the problems that people were afraid
of before this date change.
But they had massive denial-of-service attacks.
You know that here also the computing centers and universities have to
do quite a bit to fight service attacks, like denial-of-service
attacks, which is something which is happening again and again.
In Europe, the European Commission actually decided to build up a very
powerful backbone network, GEON, is the gigabit research network, so
quite a change from the initial 50 kilobit per second to gigabit
networks, but now we have all that.
Then in 2001, certain other things happened, I don't want to go into
all the individual things here, like city at home, something which is
also interesting, using the computers that are connected to the
network in order to distribute computations just in a very self
-organized way.
So city search for extraterrestrial intelligence is just sending
information to computers, and then when the screensaver is running,
the screensaver actually is performing analysis on certain parts of
the communication, of the information that is recorded by certain
recorders who look for signals from outer space.
Okay, what else?
Here, there was all kinds of attacks on the internet.
This is here just a global network for advanced application
development.
This is really global between Chicago, Amsterdam, Moscow, like Russian
states, Russian and China.
In 2004, for the first time, there are more instances of domain name
servers outside the US, so this is something which, certainly as we
know, is now very widespread all over the world.
And what else?
New domains have been initiated there.
Certain things happened, I don't want to go into too many things
there.
Here, this is also interesting.
Twitter is asked by the US government to delay plant maintenance of
its service.
As a result of heavy use by Iranian users, you know that you had the
Arabian Spring events, which were heavily influenced by the
communication capabilities of the internet.
So you know all that, I guess, and I just wanted to briefly show you a
few diagrams on how the internet actually grew.
So the number of hosts, starting with four hosts, as I mentioned, and
then we have almost a doubling every year, and now we are somewhere
around, like almost at 900 million, so the last figure here was from
September 11.
This is an update of the slides that I have put on the server before,
so just a few years more in there.
It's just growing and growing and growing.
So it's really a very, very large number of hosts that are connected
to the internet.
And then if you look at the number of domains, that's also growing.
The number of websites, there you see strange jumps.
These jumps have to do with certain providers, like service providers,
offering websites going out of service or into service, and so here
sometimes things are counted or recounted, and then they notice that
there are certain changes in the number of sites that are actually
there.
The most important thing is that certainly there have been some minor
changes there, for example the number of websites, you don't see
actually the downturn or the drop in internet activities after the
year, like the early years of the 2000s, we had like the internet
bubble exploded and the activities went down, but you don't see it
here actually, and then we had the economic problems after the year
2008.
You see a little bit here, but not that much.
So with respect to the internet, with respect to communication, it's
just an increasing thing.
So regardless what you look at, even here if you look at the number of
Facebook accounts, the slide which I inserted last night, you also see
that it's just continually growing.
So Facebook accounts are almost 900 million Facebook accounts.
I think I recently read something that they have reached 1 billion
Facebook accounts meanwhile.
So it's an amazing number of people connected to internet and
definitely this has quite some influence on how society and industry
is developing.
What are the reasons for that?
Certainly one reason is that we have this tremendous growth of
bandwidth and wide area networks.
So we are now in the gigabit range and people are actually working on
terabit networks.
So we can communicate or we can transport all the information that is
necessary over those wide area networks.
And then we also have, like in the local area networks, on the
telephone exchange systems, we have also improved transmission
performance.
Initially people thought that, well, you can just communicate with
several thousand bits per second, but not really more.
We know that we have quite some development there.
So initially we had here, like the first step forward was the ISDN
network providing 64 kilobits per second in Germany with several
services on top of that.
It was an important reason for actually allowing more communication
over telephone lines.
And the major push was the asymmetric digital subscriber line
technology, which is just some breakthrough because it can be used on
the same lines that before had been considered to have a natural limit
of a few thousand bits per second.
And now with the ADSL technology, you could actually send millions of
bits per second as we know in DSL connections.
We are at about 10, 20, 30 megabit per second.
And this is just due to a different way of coding information over
those lines.
So it's a different way of coding information and this just allows to
increase the information that is broadcasted or that is sent over a
line so significantly.
One thing is that it is asymmetric, so we have like the downstream
connection is significantly larger than the upstream connection.
Upstream is just a few megabit per second while downstream can be in
the range of 100 megabit per second.
So this is quite a difference, but normally you are just receiving
information, you're not sending that much information.
So it's perfect for a network which is mainly distributing
information.
Okay, and now we have meanwhile also UMTS and LTE.
LTE for long-term evolution, the new standard that is just being
established in most countries of the world.
It's not available everywhere, so long-term evolution is a standard
that's called the 4G, fourth generation standard for mobile
communication.
And the bandwidth there is around 300 megabits per second, like the
downlink peak rate and the uplink peak rate around 75 megabit per
second.
So this is at the same range as you have for wired communication.
So it means that with mobile communication, with mobile devices, we
have the same communication bandwidth as we do with wired
communication.
And this is certainly very important for many services that are used
in communication and computation.
So all the cloud services and so on can be used much better if you
have such a technology available.
So this is really a major step, although the name is a bit strange,
LTE, long-term evolution.
Nobody would think about a connection to a communication standard, but
that's how things just developed.
Some people came up with that name, and it stands for this new, very
powerful technology for sending information in mobile communication.
And then, like this was the increased performance of our telephone
lines.
And then the other important part certainly is that we have
standardized platform-independent interfaces to the World Wide Web.
More or less platform-independent, we know that there are certain
differences between different browsers.
So this is annoying.
The original idea was to have just one standardized way of displaying
information, but companies have their own view on that and wanted to
have some competitive advantage, so do things different from others.
And so you have now, if you provide information, you have to check how
it is actually displayed on the different platforms.
You also have the programming language Java, which supports just
having all this way of providing information.
But you should always remember that there's the history of the
Internet, which is about 40 years, and there's also the history of the
World Wide Web, which is just 20 years.
So the World Wide Web is just a service on the Internet.
So if we talk about Internet, very often we mean the World Wide Web,
but we're actually talking about the World Wide Web, and so the
Internet is something which is independent of the World Wide Web.
Just a remark on what I showed you here very briefly, so you can read
it if you have time, just in more detail.
What I present to you here is information I got from the Internet,
from certain websites on history of the Internet, and it's mainly
showing the American view on the Internet, although it is something
which has been influenced heavily by the North Americans.
And so Europe has been more involved in the World Wide Web, and so the
World Wide Web Consortium, which is ruling, governing the World Wide
Web, is something which is located in Europe.
And it's interesting that the Internet and the World Wide Web evolved
in universities and research institutes, and it took very long before
the industry actually recognized the advantages and the economic
potential of the Internet.
So this is something which was not, as sometimes people say, industry
is just showing where technology needs to, this is something which was
designed actually in academia, and as I showed you, theoretical
physicists or nuclear physicists were very important there, and also
the theoretical computer scientists, they made use of those
technologies, and it's not always those who are, who should be
considered to be those who are in front of that development.
So here it also says that now we have, that we certainly have gigabit
networks, there are experiments with terabit networks, there are
strong groups in that area here at Karlsruhe, the KRT, like the groups
of Jörg Leuthold and Professor Coase, they just, they have won several
prizes for that, because they have designed very, very powerful high
-speed and very efficient communication networks.
So we are in the range of terabit networks in research, and certainly
it means that our computers have to be able to actually process the
information that you can move over those backbone lines.
You have to be able to process the information at the same speed, and
so you need very powerful computers for that.
And you know that one important topic meanwhile is, since we have that
much information, we are talking in several areas about a topic which
is abbreviated as big data.
And big data is coming from certainly experiments where you just
produce lots of data, terabits or petabits of data a day.
For example, in the Large Hadron Collider experiments at Geneva, or
here at Karlsruhe in the KRT, there are certain experiments where they
analyze the development of, or the evolution of zebrafishes, small
fishes, which show interesting developments, interesting evolutionary
steps.
And this is very similar to what's happening in Stamtzell.
I don't know the right word for Stamtzell in the moment, so it's the
basic, the core cells, the original stem cells.
It's just the stem cells.
And a lot of Stamtzell research is done here with zebrafishes, and
it's millions of zebrafishes.
They also have lots of information that has to be processed and has to
be made available for many different people.
And this can be made available using those networks.
Okay, that's some remarks on the general Internet history, and now a
few remarks on the German Internet history.
As I told you that we had, in 83, we got the European Academic
Research Network.
And so in the mid-80s, in Germany, we got the Deutsches
Forschungsnetz, the German Research Network.
And it was established to provide remote access to computers.
So it was only there for getting remote access to perform computations
at distant computers.
This was not for communication.
It was not supporting e-mail services and things like that.
It was only there for doing remote log-in and performing computations
at different computing centers.
Not for communication.
It was based on a protocol called X-25, just a telephone line
protocol.
And then later on, in the end of the 90s, this was transformed into
the Science Network, the Wissenschaftsnetz, and actually upgraded to
35 megabits per second in the backbones.
And then a few years later, we got the Gigabit Science Network.
And now we have a widely distributed network having around 10 gigabit
lines.
So now it's very powerful.
It's as powerful as in other countries.
So we have been behind the North American developments for many years.
But this changed at the end of the 90s because people got more aware
of the necessity of having that.
At those times, our research policy, our research funding was on
nuclear science, on large-scale research, not on small-scale research,
or small-scale with respect to microelectronics and things like that,
and not on communication infrastructure.
It was just a wrong focus on...
or a wrong strategic decision on what kind of research is necessary in
this country.
And a very interesting thing was that in the 90s, in the mid-90s, in
the States, there was Al Gore, Vice President, who had as his topic
the Information Superhighway Research Program, a very hot topic in the
United States.
And when that was at the same time discussed in the German government,
the Chancellor at that time, the mid-90s, said, okay, this should be
sent to the traffic...
or to the committee for traffic, because it's on highways.
And that was the way this topic was dealt with.
So they did not see, actually, the importance of that infrastructure
for the development of society, and in particular, for industry.
And so this is...
this changed in the end of the 90s, but in the mid of the 90s, when
the World Wide Web came up, the politicians were afraid of threat of
sex and crime on the Internet.
They made suggestions like, well, it might be okay if content like
this content is available after 11 p.m.
at night.
It may be okay, but not before that, because then it may be dangerous
for kids who look at that.
They did not actually see that on the Internet you don't talk about
time.
It's just there, or not there.
And it is independent of at what time in one country it is available
or visible.
So this was strange.
This was something which was just the same all over the different
political parties.
And this changed in the end of the 90s, and nowadays we know we are
aware of what's necessary there.
At least to some extent.
Just one more remark on that.
There is a traditional area of research, like energy-related research
in Germany.
It has a long tradition.
People talk about energy efficiency and things like that.
And we all know that due to the changes in the way we generate power,
electrical power, from renewable sources, we need to change the
management systems.
But that means that we need information and communication technology
in energy research.
And this is not really seen by those in the government who are
responsible for energy research.
They deny the need for research on information and communication
technologies.
It's other areas, other parts of the government who are related to
information and communication technologies which say we have to do
something in that area.
So they design their own programs on ICT for energy, but those who are
responsible for energy research so far deny that necessity.
So this is something which has some tradition in Germany, that
information and communication technology is not really seen as what it
really is in the moment, mainly the major driver and enabler of new
technologies, of innovation.
And so I see I should speed up a bit.
But I think it's also necessary to tell you these things that are
going on apart from the research topics that we have here.
So, now we come to more content.
I said that the Internet is made up of addresses, protocols, and
services.
What are the standard services that we have?
For example, the first one is a virtual terminal for remote log-in.
That was the initial thing.
You would like to log into another computer over a network.
Then email, also one of the first services to actually provide
communication, to send messages in a very simple way.
The simple mail transfer protocol was designed in the early days of
the Internet.
File transfer protocol, also an important thing.
News groups were also among the initial services.
And then the World Wide Web, as you know, made up of several different
architectures, or several different protocols and languages, the HTML,
markup language, the hypertext transfer protocol, and the way we
actually address the different resources in the World Wide Web, the
URL concept was designed at those times.
And all these together actually created the World Wide Web.
And we have all kinds of Internet technologies, like company-wide
networks based on the Internet technology.
For a long time there were very proprietary networks, network
protocols in different companies.
And so you had internal protocols, you had external protocols, and the
fact that they are now built on the same technology certainly
facilitates the way we can actually manage those systems.
So, now we come to Internet technology.
First some small view on what actually is the structure.
So the backbone here is the high bandwidth Internet kernel, several
strong lines connecting the major sites and transporting information
between different larger sites in the network, having high capacity
and high speed cables.
Although certainly, like the latency to send information over a long
distance is still there, but the number of bits you can send in
parallel has increased, so that way we can also increase the bandwidth
of those communication lines.
But you always have to be aware of the fact that it takes some time to
actually send information between different locations.
You know that there is one technology which is very promising, or at
least that is very interesting.
It is the quantum communication or quantum computing.
But quantum communication is very promising because there you would
have communication in zero time, because if you change something here
at the same time it is changed there, and so you can have
instantaneous communication between different sites.
This is something which researchers mainly in physics are working on,
and progress in that area certainly will be very important for future
communication systems.
Okay, then we have the wide area networks, we have metropolitan area
networks, for example, in larger municipal areas, larger urban areas,
and we have the local area networks, and then certainly all these
networks have to be connected, so we have network access points for
the different computers that are connected in some way to different
technologies.
Here you have the Ethernet technology, there I indicated the token
ring or the token bus technologies.
Nowadays most people or most LANs are based on the Ethernet.
I will not talk about token ring and Ethernet in this course.
I will talk more about the technology that is above that, so above the
network access points.
Then we have routers between the different locations in the network,
and we have gateways between different regions so that you can address
a certain region and then refine that and go to certain locations in
that.
So if you have a different view of the Internet, we have certain
autonomous systems which are connected in some way using gateways.
We have the local area networks and we have routers in between, and so
when we communicate, we can communicate either inside those networks,
those autonomous systems, or go to some using some communication
facility, go to different autonomous systems.
Meanwhile we have hundreds of thousands of autonomous systems which
are making up the complete Internet.
One important point also is that the Internet is a network which is
more or less self-organizing.
There are certain specific protocols which have been designed and
approved by the governing authorities, but a major point of that is
that all the nodes in the network actually can carry out those
protocols and can in some way control the network flow.
This is nothing which is centrally organized, but it is distributed
and so we have here essentially the Internet is a very large self
-organized system.
And how it is actually operating is we will look at that in a moment,
looking at the different protocols in the communication that we have
in the Internet.
So we have different layers.
There is the so-called open system interconnection network layer model
of the International Standard Organization.
It's a seven layer network.
In the Internet we are only looking at five different layers
essentially.
And here I show only four of them.
So we have the application layer where all the services are running.
We have TCPIP.
That's the protocol suite that I mentioned.
There are some more protocols in there which usually are not mentioned
explicitly.
But later on, here's a question.
Oops.
Are the internal gateways the same as the routers on the previous
slide?
Like the routers and gateways are sometimes used almost in a
synonymous way.
There are some differences between gateways that are addressed if you
go from one autonomous network to the next autonomous network.
So there you have certain gateways.
So gateways are special routers running certain special other
protocols which we will briefly look at in a moment.
So they are not exactly the same but they are very similar just having
a few more tasks to do.
Okay.
Another question.
That's the same question again.
Okay.
So we have these different layers and the question then is how that
actually works.
So we have here these protocols on different layers.
So it's a separation of concerns of the different protocols and so we
have a certain application for example Telnet or FTP or SMTP, HTTP,
whatever you like an application which would like to send certain
data.
Now if you have, if you would like to send certain data then it may be
a long stream of data.
Now you cannot send just a stream of data.
You have to organize the sending of data.
I mentioned that the major part of the internet is that it is a packet
switched network.
So data has to be put into packets and the question is what kind of
packet size do we actually need?
Packet size will be determined by the capabilities of the actual nodes
that are in the network and so you have to communicate information on
what an appropriate packet size actually would be.
And the first thing that is done is that the transmission control
protocol is actually looking at that data.
It is separating the data stream into segments and it is building up
communication to the receiver between the sender and the receiver.
So we have one communication line.
Now the network, like here, if that is the sender and that is the
receiver, there will be many nodes in between here.
And having many different connections, so there might be many
different possibilities to actually send information from one node to
the other.
The question is if we have here one line, what does that mean?
This is just a logical connection.
This is a communication that is sent between the sender and receiver.
A few packets send back and forth and then they decide on being
connected.
This is just a logical connection and they know how they will actually
treat the follow-up packets.
So this is a logical connection, not a physical connection.
That means that different packets may run over different lines.
And then we have to provide certain information for the receiving
side.
That means when data is sent down here, like over this link on the
other side, this information has to be looked at again.
So every protocol, TCP, IP and then some protocol on the physical data
link layer, they have to provide some information which is necessary
for those on the other side actually to know what to do with this data
item.
And so the next hop there will look at the last header, gets
information on what has to be done with that.
And then it may provide the information to the next layer of that
protocol stack, maybe to IP.
IP looks at the header that has been moved, that has been appended
there by the sending side.
And then you get information on what is actually the destination of
that packet, how should I treat that packet, certain information.
We will look at that in a moment.
And if it's actually the receiving side and not just some intermediate
side where you always go up to the IP layer, if it's the receiving
side, then IP will forward this datagram to the next layer to the TCP
protocol.
And then TCP here will look at the header that has been provided there
by the sender and knows what to do with the data, how to assemble the
data into the data for the application.
So the data items here are merged into the data stream for the
application on the receiving side.
And the important points are that this is the separation of concerns.
Different aspects are treated by or are considered by the different
protocols and so you can have a systematic way of actually providing
the communication between different sites.
Okay, we will look at the different protocols in particular at IP and
TCP later on, certainly also on the applications in the next lectures.
So let's start with IP, the Internet protocol which is located on the
network layer and so what does IP actually do?
It defines first of all the addressing format in the Internet.
So we know that we have a global addressing scheme in the Internet.
And the task of the IP protocol is to actually let a node decide what
to do with messages that are received from different locations and
which would like to go to different destinations.
And the question is what is the most appropriate link or the most
appropriate next node where such information has to be sent to.
So this is the major task that has to be looked at.
The routers like this is a router has to know what to do with the
datagram and so it gets some information and has to decide what is the
most appropriate next hop on the path from the source to the
destination.
And it does that in an unreliable and connectionless way.
Now why do we say unreliable?
We always need reliability.
What I state here is just that IP is not concerned with the
reliability.
It just decides on what to do with the packet which it receives, how
to forward it to the next hop.
It's not concerned with the question whether that datagram will
actually be received sometime later by the destination host.
And so in this way it is unreliable because it doesn't care about the
fact whether the datagram is received by the supposed destination.
And it's also connectionless.
That means if you get a sequence of datagrams from maybe the same
site, the same source directed to the same destination it may be that
the messages are sent over different links.
If certain things have changed in between certain traffic jams on some
link, that means a delay in communication may lead to choosing a
different connection for this sequence of messages, sequence of
datagrams.
So it's connectionless just a logical connection, not a physical
connection.
And the next layer above, the transport layer with the TCP protocol is
then responsible for reliability but IP is just responsible for
deciding on the next hop.
That's it.
And certainly also looking at certain faults that can occur there and
this is another part there but we'll just look at this capability to
decide on the routing of messages.
The first thing we need for that is a standard for addresses.
So IP, when it was designed initially, was designed with 32-bit
addresses that means 4 bytes 4 bytes means 4 numbers between 0 and
255.
Not all the numbers are available, certain are used for different
purposes.
So you have always these numbers and these are the addresses of hosts,
as you know and this is not just the address of a computer, a specific
computer, but it is split up into an address of a network and the
address of a specific host in that network.
And then there are different classes of addresses in the initial
version, meanwhile we are beyond that and have a more general way of
stating that but just for information.
The different classes were A, B, C, D and E classes so the differences
were that you had different split ups between network address and host
address.
So in the A class networks you had only very few networks, just 7 bits
for specifying the network and then the remaining 24 bits here for
specifying the host.
And this went down to the C class where you had many different
networks that you could address but only here 8 bits for specifying
the host.
Fixed separations between network address and host address.
Then you had a special class, so called multicast addresses where
messages were indicated that they should be sent to all the nodes, not
just to a specific host but to all the nodes and there was another
class for so called future use.
Meanwhile we definitely use all these in a different way.
Actually we use it in a way, meanwhile that we have two 32 bit
addresses and the second is just some kind of pattern of zeros and
ones indicating it's some kind of filtering indicating the locations
where the network is specified and the locations where the host is
specified.
So you have some very general way of actually specifying the way you
address a certain computer.
But this is the original scheme and the classes are indicated by the
prefix of the number of ones here in the prefix of the addresses.
That was the original scheme and you can immediately imagine if you
look at that, it means that there are at most 2 to the 32 bit
different addresses available and if you look at the number of
computers that we have, the number of hosts well it's not that much so
it's just 2 to the 32 is something like billions of computers we are
beyond that meanwhile and so somehow this cannot be sufficient and so
there is an upgrade of that.
This is actually the so called IP version 4 addressing scheme.
Meanwhile we have available the IP version 6 network addresses.
I will come to that a bit later in the next time probably where I show
you something about IP version 6.
There we have 128 bit addresses.
So much larger repository for addresses.
So this is just mentioning again different characteristics of the
networks and then what's happening locally if you look like this
address is or has to be transformed into a physical address of a
computer into an Ethernet address and this is then a physical address
which is
retrieved by transforming the IP address into a physical address that
is recorded locally, done locally by the address resolution protocol.
And then we have the physical address, how the host actually is
addressed in the local area network.
So now we have the classless inter-domain routing scheme, which is the
generalization of those five different classes.
And we also have the IP addressing scheme in IP version six, which is
more and more now putting into practice or putting into real life.
It has been around for more than 10 years now, but the process of
establishing that was very, very, very slow.
Okay, now if you have just these numbers as addresses, you cannot
really memorize them.
I cannot.
I never know the number of my computer, but I certainly know the name
of my computer.
So we have the domain name system.
And in that domain name system, as you know, we have certain naming
conventions.
So here, if I look at aifb.kit, oops, dot not D-E, what is that?
E-D-U.
Well, now it's visible, E-D-U.
So corresponds to a certain URL, a certain IP address.
And to know that aifb is the local, the most local part of that
domain, kit.edu is a bit larger.
E-D-U certainly is a larger network of education sites.
So we have different domains that are established there initially.
It was just the educational institutions, commercial institutions,
government institutions, and some organizations.
We have the country-specific domain names, and we have now all kinds
of other domain names which are around, which have been established in
recent years.
And it certainly is important to be able to use those specific names
and not have to use always the numbers.
The only problem is in order to be able to communicate, you need those
numbers.
And so in order to actually send information from one location to the
other, you have to contact the name server, which is providing you
with the original IP address corresponding to that domain name.
And if the domain name server is not working, then you cannot
communicate.
But if you still know the number, you can communicate.
So it's quite often there are problems in communication between, or
because domain name servers are out of service, but if you know the
numbers, you can still communicate.
Okay, so this is just looking at the domain name system, very
important for ease of use of those addresses.
Initially, when the networks were established, there were several
different naming schemes and it was very complicated to actually send
information from one location to another because it needed sequences
of addresses which had to be arranged in an appropriate way.
And yeah, what you know is that you can purchase domain names and then
you have your own domain for your company or your personal use.
Okay, those were the addresses, the domains, the domain name system.
And now we come to what I indicated as the header that has to be
provided by a certain protocol in order to provide the information for
the receiving side that it knows what to do with that datagram.
You have a question?
There will be more domain, so the number of domain or the domain names
will always be extended by new names.
As I indicated here, there are some names down there and they are
managed by those organizations like InterNIC and other organizations
also in Germany.
I don't actually understand your question.
Well, if...
Yes, so the question was about the different or new developments were
proprietary domain, like top-level domain names actually were or can
be registered.
This certainly makes the management of the systems more complex, but I
think we have sufficiently powerful systems in the world to deal with
that.
It is something which is providing more convenience for the users.
It makes it like you can have your own domain and then this still has
to be mapped appropriately to the actual numbers.
But it's a requirement on the domain name service that they actually
can build up those large repositories of domain names and actually
translate the domain names into the numbering systems, either in IP
version 4 numbers or now in the IP version 6 numbers with 128 bits.
So this is just making the task of managing the domain names a bit
more complex, but since our computers are getting more powerful, it is
feasible to do that.
Yeah?
So what kind of information is actually necessary if we look at the IP
protocol?
Like what does it have to do?
I said we have a certain datagram where actually there is already a
header there from TCP.
And then we have here certain data.
And now we put something in front, which is the IP header.
The IP header is a sequence of, certainly a sequence of 0s and 1s, a
sequence of bytes.
This is organized into 32-bit words.
So 32-bit, we know that for a long time we had 32-bit computers.
So 32-bit is the word size built from, and it's also the address size
of the IP version 4.
So we have 32 bits here.
That means that we have here, as you can see, actually 1, 2, 3, 4, 5
essential words that have to be in every IP header.
After that, we have certain optional parts.
And so the IP header has 20 to 60 bytes.
So it has at least 20, it may have 60 bytes.
And now you see all kinds of information on that.
Version, length, service type, total length, and so on.
And on, well, here's some more text which I animated in the wrong
sequence.
So that's what I just told you.
That is the structure of the IP datagram.
And I would like to... Here's the datagram again.
And I will give you more information on the individual things, why
they are in there.
The first thing is that since there are different versions of the IP
protocol, you have to indicate the version number of the protocol so
that the receiving side knows how to process that datagram.
Then you need information on the length.
I said that the number of words in the header can vary between...
or the number of bytes between 20 and 60.
And so you have to specify the length of the header.
Because then the receiving side knows how much information actually
has to be looked at and what is the next level information.
Certainly like 60 bytes is not that much.
The option part has maximally 40 bytes.
That is not very much information.
And there are many things that have to be recorded there.
For example, different locations that are passed through on the path
from source to destination.
There's not that much room for specifying a lot of information there.
So this is a restriction that was completely sufficient in the early
days of the Internet, but not nowadays.
Then the service type.
This is something which was designed originally, in the original
version of the IP protocol.
So it desired quality of service.
But actually it was never used.
So the original idea was to look at, for example, priority,
reliability, throughput, delay.
You could specify different aspects that should be looked at if you
decide on how to forward the packet.
As I said, we have a certain node.
It gets some message.
And then there are different possibilities to forward it to next hops.
Now if you know something about the reliability of those different
next hops, or next routers, you can decide on the most reliable one.
Maybe it's not the fastest.
But if reliability is the major point, then you will use the most
reliable one.
You may have some other priority, or you may have throughput, or
delay.
So these can be used essentially in the...
or can be specified in the IP protocol.
But the protocol usually is not actually taking notice of that.
So this is something which was there, but not really put into
practice.
And then you need more information.
You need information about the length of the datagram.
How many bytes are there in the datagram in total?
Because you have to know how much information you have to look at.
How much information you have to move on to the next hop, or move on
to the next layer, to the TCP layer.
The maximum here is since this is like the length, the total length is
16 bits.
So you have 2 to the 16 different bytes.
And this is the maximum size of the datagram.
You can have... like I stated here, but this is not really sufficient
for gigabit networks.
Why not for gigabit networks?
Because there you have a lot of information that is sent, and you
always should have...
or you should try to reduce the administrative overhead that you have
to spend for sending information.
And if you have gigabit networks, then you have to really operate very
often on those administrative data.
And it would be more efficient to have larger jumbo datagrams, which
are larger than those 64 kilobytes.
So this is large datagrams.
The normal size of datagrams is rather in the range of 1,500 bytes, or
just a few thousand bytes.
Then we have a field which is called identification.
Why do we need the identification?
It puts a nice name to the datagram.
Now this is important, because sometimes you have...
like maybe that you would like to send data over a certain number of
hosts, and all of a sudden you notice, well, the next link is not
capable of accepting large datagrams.
You have to split the datagram.
Like we have here one datagram having here all these headers in front.
Now you have to split that into fragments.
Let's say three fragments.
Now fragments means you just chop that datagram into three pieces and
provide them with different IP headers and send them off.
Only the first one has the TCP header on it.
The next ones are just data.
Now you have to know at the receiving site that you have to reassemble
those fragments into one original datagram.
And for that you need the identification.
So for that you need a name for the datagram, so all the fragments
have the same name, and then you know how to reassemble the fragments
into one datagram.
So that's the identification.
Certainly you also have to know something about the position of the
fragments in the datagram because the sequence at which you actually
receive datagrams or fragments may be different from the sequence at
which they have been sent out.
And so several things have to be looked at.
There's one bit that can be specified here, one flag that can indicate
that you should not fragment the datagram.
Things like that might be necessary sometimes.
So if you have this flag, if this is set, then the IP router must not
actually continue.
So you can specify that you don't want to fragment a datagram.
You also have to indicate whether there will be more fragments.
So only the last fragment will not have that flag set.
Because it's the last one, so in this way you can find out what is the
last fragment actually, at what point in time you actually finished
with your datagram.
So the first two here in this example would have this M field set.
The last one would not have it set.
Like the headers for those fragments.
And then there is the fragment offset, which indicates the position of
the fragment in the datagram in multiples of 8 bytes.
And so this is just certainly important because you have to know what
are the positions where a specific datagram has to be put, or where a
fragment has to be put in order to reconstruct the original datagram.
So this is fragmentation and how you can deal with fragmentation.
You need this information in order to be able to actually deal
appropriately with such a fragmented system.
And then another point is, another information which is necessary,
which has to be provided, is the time-to-live indication.
Time-to-live means that we don't want a situation occurring where a
datagram is actually moving around in cycles in the network because
that would lead to an overflow of packets in the network.
So we have to make sure that a datagram will be discarded after a
number of hops.
So this could be in time in seconds, but usually that counts the
number of hops.
Usually it's just set to an initial value in the beginning, and then
it's decremented at every hop.
And so as soon as it is down to zero, that packet is discarded and not
forwarded further.
So it shows that this is a way of automatic garbage collection.
So old packets just get discarded automatically because their time-to
-live field will be set to zero at some point.
And so this is necessary for that purpose for garbage collection.
Then we have another thing.
We have the protocol.
So we have to specify which type or which protocol should be used on
the next layer.
So if you are at the destination, it has to be indicated whether the
next layer protocol, the transport layer, is TCP or UDP.
UDP is the user datagram protocol which treats the datagrams
differently from the transport or from the transmission control
protocol.
And so this has to be indicated by the next entry there, the protocol.
Then we have the header checksum.
This is just providing information on whether some bit errors have
occurred, for example, on the transport, like while it was moved
somewhere.
And so you just look at the sum of all the 16-bit half words in the
header without this field, and then you use the ones complement of
that sum.
And so if you add all the 16-bit fields of the header, the result
should be zero because the ones complement of the sum of all the other
fields, if that is added to the sum of all the fields, then you get
zero upon arrival, or there should be zero upon arrival.
If you don't get zero as the result of adding up all the 16-bit
fields, then some error has occurred and you have to discard that
datagram.
So this is the header checksum.
Then there are the addresses.
You have to know, well, where this datagram actually comes from.
That's the source address and also the destination address.
The source address is necessary because some information also may have
to be communicated back to the source but this is dealt with a
different protocol, the message control protocol, which will indicate
the occurrence of certain failures to the source host.
Then certainly you need the destination address because you have to
know where to send your datagram to.
These are the mandatory fields of the header.
Then you have certain optional parts which may be there but need not
be there.
And these are for different purposes.
For example, for security, you can specify the security level of the
datagram.
You cannot really use their encryption or like security is not
supported in a way that we would nowadays think it's necessary.
So in the IP version 6, this has changed and security is supported to
a much larger extent.
And then an important point is to specify the routing of the datagram.
Strict routing means it specifies completely the path to follow.
So it does not leave any options to the routers to decide what the
next hop should be.
But here you have strict routing.
It indicates what is actually the sequence of nodes that have to be
used there.
You can also have some loose routing, specify just some routers on the
path.
Another thing would be to record the route of your packet, so then you
can look at the trace later on and notice where your packet actually
has been.
This certainly is important for error analysis, for fault analysis.
You may put in some timestamps, then you know at what time the
datagram has been at certain locations.
But all this has to fit into the 40 extra bytes that are available in
those option paths.
So the length of the option field is always a multiple of four bytes.
And so if the options are ending somewhere before that, you have to
fill up those with additional bits.
And then this is the end of the header.
And after that, the data is coming.
The data may be original data of some fragment of the datagram, or it
may be just the next header for the TCP protocol.
Okay.
So this is all the different fields.
And as soon as you would remove one of those fields, certain
functionality could not be provided by the IP protocol.
So they are all necessary to provide security, like a header checksum
or fault detection.
Provide connectivity.
You need the addresses.
You need information on the size.
You need information on whether you can fragment the datagram.
And you have to make sure that you can get garbage collection.
The garbage collection is dealt with in a very elegant way by just
counting down to zero, and then you have...
or you just discard such a message.
Okay.
And now we have to look at how we actually use the information that we
have in the IP header for routing.
So this is our node, or router, gets a certain datagram and has to
decide where to forward or what is the next hop, actually.
So what the router actually does is it performs a certain router
algorithm which here is indicated in a very abstract way.
It's certainly not exactly the routing algorithm that is used, but
similar to that.
So what you need is...
you look at a datagram.
And then you have to look at the destination address.
You have to extract the destination address from the datagram from the
header, from the IP header.
Then you have the destination address From the destination address,
you first of all get the network address.
I told you that we have the part specifying the network address and
the host address.
First of all, you have to know to which network you have to send it
to.
And then, if that network address is in the list of direct network
addresses of that host, so if this router here is in some way
connected to some local area network and you have a direct network
address there, then you send the datagram to the physical address of
that host that is specified there.
So that is the destination address.
This destination address is transformed into the physical address.
For example, an Ethernet address.
And this is then sent locally to the host.
If it's not in the direct network addresses, then it's some other kind
of address.
And then you look at whether the option field has some strict routing
information.
If it's strict routing, then you have to send the datagram to the next
hop that is specified in the strict routing option that's indicated
here as datagram.option.myroute.
Some next hop that has to be used there.
If this is not the case, then you just look it up in your routing
table.
You have all kinds of different destinations.
And you have next links.
So if the destination is certain, is here some location A, then you
get to the next link L, next hop.
And this somehow has to be specified in this routing table.
And if this network address is not in the routing table, then still
you have to do something.
So then you just send the datagram to some default router, and that
default router has to take care of the further processing of the
datagram.
So this is just to make it complete.
And if all this does not work, then you have to report an error.
So this is just showing an abstract view of such a routing algorithm.
And the essential part in there is this routing table.
And next week we will look at the way we actually set up those routing
tables by different algorithms.
Okay, that's it for today.
Thank you.