WEBVTT

00:01.720 --> 00:05.260
Okay, welcome to the second lecture on algorithms for Internet

00:05.260 --> 00:05.800
applications.

00:06.080 --> 00:10.680
Last week I showed you several things on introductory material.

00:11.220 --> 00:17.140
I showed you this, you remember I showed you the app for cooperation,

00:17.600 --> 00:20.740
so for hand-waving and so on.

00:20.860 --> 00:24.260
So if you are interested in downloading that, if somebody is here who

00:24.260 --> 00:29.900
would like to download that, you can do that from that QR diagram.

00:30.380 --> 00:32.340
Somebody here who needs that at the moment?

00:32.920 --> 00:33.140
Nobody?

00:33.880 --> 00:37.800
Yes, you need that, then you can download it.

00:38.680 --> 00:39.680
Do you have it?

00:40.520 --> 00:40.740
Okay.

00:41.620 --> 00:47.380
So I showed you or told you several things about this course.

00:47.380 --> 01:01.000
I mentioned that you should register for the tutorials.

01:01.440 --> 01:02.500
Somewhere I had that.

01:03.180 --> 01:03.520
Here.

01:04.140 --> 01:09.560
I hope you all did that because the deadline for registering for the

01:09.560 --> 01:10.960
tutorials ended yesterday.

01:11.860 --> 01:15.180
So if somebody is here who has not registered, then you should really

01:15.180 --> 01:19.020
hurry up and send a message to Marc Mülthin or Fabian Rigolle.

01:19.880 --> 01:22.580
Okay, that was the introductory chapter.

01:22.720 --> 01:31.680
Then I showed you a little bit about motivation for why we actually

01:31.680 --> 01:34.140
look at Internet and applications.

01:34.720 --> 01:39.960
I made several remarks on the way we actually perceive the Internet as

01:39.960 --> 01:41.240
in different facets.

01:42.740 --> 01:46.820
We noticed the range of questions that one could ask with respect to

01:46.820 --> 01:49.440
using the Internet in different ways.

01:50.060 --> 01:57.100
And the final thing was that we have to look at appropriate algorithms

01:57.100 --> 02:00.160
for using all the information that is available on the Internet.

02:00.560 --> 02:03.180
And we will do that today at more depth.

02:04.520 --> 02:05.920
And let me just briefly see what I have.

02:06.080 --> 02:07.000
Yes, that's okay.

02:07.820 --> 02:12.900
And what I would like to do today, just before we actually start the

02:12.900 --> 02:21.680
course, I would like to briefly make a commercial on inviting you to a

02:21.680 --> 02:28.000
student afternoon, just some event at the Research Center for

02:28.000 --> 02:31.100
Information Technology next week, Wednesday afternoon.

02:31.100 --> 02:37.020
There is an afternoon for students where you can look at what we are

02:37.020 --> 02:39.980
actually doing in the Research Center for Information Technology, not

02:39.980 --> 02:44.300
that far from here, just on the Heide-Neustraße, close to the

02:44.300 --> 02:51.860
Technologiefabrik, technology production site or whatever, or

02:51.860 --> 02:53.260
technology factory.

02:54.020 --> 02:57.840
And here in the Research Center for Information Technology we have a

02:57.840 --> 03:02.940
house of living labs where we work on or where we show certain things

03:02.940 --> 03:05.140
that we are doing there in the Research Center for Information

03:05.140 --> 03:05.560
Technology.

03:06.040 --> 03:09.040
In particular, we are having there several living labs where we

03:09.040 --> 03:15.540
demonstrate our current topics for research and development, which we

03:15.540 --> 03:17.340
very often do in cooperation with companies.

03:17.880 --> 03:21.980
And in particular, there are many possibilities for activities of

03:21.980 --> 03:30.860
students, either as a research assistant or you can write your thesis

03:30.860 --> 03:37.060
there and do other things, participate in the project that we have

03:37.060 --> 03:37.320
there.

03:37.720 --> 03:42.720
And the topics that we address there are service robotics, mobile IT,

03:43.740 --> 03:52.000
satellite navigation, automotive, where the technology for the

03:52.000 --> 03:57.180
automotive area, like technology for letting cars move, is in.

03:57.780 --> 04:01.540
Then industrial automation, how can we actually improve the efficiency

04:01.540 --> 04:07.000
of industry production sites.

04:07.340 --> 04:11.900
And then we have the smart home with ambient assisted living and also

04:11.900 --> 04:14.180
a smart home with respect to energy issues.

04:14.180 --> 04:19.440
So we have a living lab energy management, which is looking at the

04:19.440 --> 04:23.880
complete building, the energy system there, and developing energy

04:23.880 --> 04:27.460
management facilities in order to prepare for a world where it's

04:27.460 --> 04:31.780
necessary to have more flexible energy consumption.

04:32.600 --> 04:36.000
And so far, there's also an office environment where we have certain

04:36.000 --> 04:37.780
technologies in there for home automation.

04:37.780 --> 04:42.940
So lots of things where you can actually do or perform certain tasks

04:42.940 --> 04:45.500
that you are interested in, or just have a look at what we are doing

04:45.500 --> 04:51.440
there and then you can decide whether you would like to get involved

04:51.440 --> 04:51.780
there.

04:51.960 --> 04:58.440
So that was just a short commercial, and now we come to the topic of

04:58.440 --> 05:03.480
today's lecture, Internet History and Technology.

05:03.480 --> 05:08.780
So I will make a brief, or give you a brief overview of how the

05:08.780 --> 05:10.080
Internet actually evolved.

05:11.780 --> 05:15.520
I always get some remarks by my assistants.

05:15.980 --> 05:20.640
You should shorten that because it's, you can just read that.

05:20.700 --> 05:22.700
I don't have to spend that much time on it.

05:22.920 --> 05:28.060
So let me just briefly tell you what the Internet actually is.

05:28.060 --> 05:32.340
We looked at that last week already, so you remember this definition.

05:32.960 --> 05:37.000
The three different, or three major aspects that make up the Internet,

05:37.260 --> 05:41.440
the globally unique aerospace, the protocols, the high-level services.

05:42.020 --> 05:46.400
And now we, in a moment, we will look at the protocols and what's

05:46.400 --> 05:46.980
behind them.

05:46.980 --> 05:51.140
And just briefly, before we do that, I would like to just give you

05:51.140 --> 05:59.500
some information or just look a bit more at the history of the

05:59.500 --> 06:00.680
Internet and how it actually evolved.

06:00.780 --> 06:04.260
Because this is quite interesting to see how actually events and

06:04.260 --> 06:07.980
certain things influence technological developments.

06:07.980 --> 06:14.720
So the real reason for why the Internet was established was that the

06:14.720 --> 06:17.620
Russians started their first satellite, the Sputnik.

06:19.280 --> 06:24.740
And at that moment, the United States got afraid of attacks from outer

06:24.740 --> 06:25.200
space.

06:25.660 --> 06:29.720
And so they established the Advanced Research Projects Agency because

06:29.720 --> 06:34.340
they said they needed more sophisticated technology.

06:34.340 --> 06:41.200
And in particular, they wanted to get a network infrastructure that

06:41.200 --> 06:46.320
would allow them to actually survive an attack on some of the

06:46.320 --> 06:47.940
essential communication nodes.

06:48.120 --> 06:52.760
So that was the starting point for having packet-switching networks.

06:53.780 --> 06:57.420
And so it took a few years before they actually came up with that.

06:57.420 --> 07:03.260
And in 1968, so you see six years after they actually developed that

07:03.260 --> 07:05.200
first...

07:05.200 --> 07:09.520
well, the first ideas about this packet-switching network, they

07:09.520 --> 07:11.740
decided to build a network on that.

07:11.900 --> 07:16.980
It started with four universities being connected to that, mainly in

07:16.980 --> 07:20.320
California, also University of Utah.

07:20.320 --> 07:22.300
So it was a very small network.

07:22.760 --> 07:30.720
And then it grew quite significantly over the following years.

07:31.120 --> 07:35.420
So in 1972, there were already 23 hosts in that network.

07:35.620 --> 07:38.820
It was actually the first email program 40 years ago.

07:39.260 --> 07:45.100
72 BBN is a company which is doing most of its work in connection with

07:45.100 --> 07:47.600
the Department of Defense of the States.

07:49.580 --> 07:54.200
And so here, initially, they didn't use TCPIP because it wasn't there.

07:54.540 --> 07:57.380
They used something which was called the Network Control Protocol.

07:58.200 --> 08:04.200
And then a year later, Vinton Cerf, the current president of ACM, he

08:04.200 --> 08:10.940
designed, together with Bob Kahn, the Network Protocol TCPIP, in order

08:10.940 --> 08:14.440
to initially to communicate between different computer networks, so

08:14.440 --> 08:15.700
different local computer networks.

08:15.700 --> 08:16.080
Yes.

08:16.640 --> 08:17.200
Yes.

08:18.920 --> 08:23.120
Backbones is the... like if you have here...

08:23.120 --> 08:24.760
Oops, let me just draw something.

08:25.800 --> 08:31.000
You have here some host and you have here a certain network where you

08:31.000 --> 08:37.500
have lots of stations connected to a computer.

08:37.880 --> 08:42.060
You might have another site where you would like to also have certain

08:42.060 --> 08:42.640
computers.

08:42.640 --> 08:47.940
You would like to connect those, and for that you need some powerful

08:47.940 --> 08:53.040
backbone, some communication line, which has high bandwidth in order

08:53.040 --> 08:55.820
to support the communication between different sites.

08:55.900 --> 08:59.000
So it's not the communication, like not the local area communication

08:59.000 --> 09:03.320
from the server to certain stations, but it is the communication

09:03.320 --> 09:07.940
between regionally separated sites.

09:08.980 --> 09:13.980
So it shows 50 kilobit per second was the backbone capacity at that

09:13.980 --> 09:14.360
time.

09:14.840 --> 09:18.600
High speed, high bandwidth at that time, and certainly we know that

09:18.600 --> 09:25.100
nowadays we are quite far from that, much more bandwidth.

09:25.100 --> 09:32.720
Okay, so then in 74, so 38 years ago, the term internet was used the

09:32.720 --> 09:38.060
first time by Richard Burke and Bob Kahn in their paper on TCP.

09:38.760 --> 09:41.560
So they actually started that name.

09:42.520 --> 09:47.640
And then there were several other networks designed the following

09:47.640 --> 09:48.200
years.

09:48.680 --> 09:50.600
I will go through that quite quickly.

09:51.360 --> 09:57.580
So in 76, you see, several years after it actually was designed, the

09:57.580 --> 10:02.340
Department of Defense decided to actually use it in the ARPANET.

10:03.320 --> 10:10.300
And then initially it was a network that was built or constructed,

10:10.680 --> 10:14.260
established, because the Department of Defense of the United States

10:14.260 --> 10:17.360
decided they needed such a network for military reasons.

10:17.360 --> 10:24.020
And so then some other people, certainly like, this was designed by

10:24.020 --> 10:27.280
people in academia, and they said, we need our own network.

10:27.500 --> 10:32.460
So they set up a Usenet network, was a decentralized news group

10:32.460 --> 10:32.860
network.

10:33.420 --> 10:38.180
And they also set up a different network, a Bitnet, because it's time

10:38.180 --> 10:40.060
network, has nothing to do with bits.

10:40.060 --> 10:46.940
But it is, like, Bitnet was a network also just for sending messages

10:46.940 --> 10:47.920
back and forth.

10:48.620 --> 10:52.300
And the first list server, actually, that was on that, like,

10:52.320 --> 10:57.600
distributing information to a lot of subscribers, the first of those

10:57.600 --> 10:59.240
list servers was Theorynet.

10:59.500 --> 11:02.680
That means the people in theoretical computer science were the first

11:02.680 --> 11:06.080
to actually make extensive use of the capabilities of such a network.

11:06.740 --> 11:15.140
And then in 81, the Computer Science Net was built, another backbone,

11:15.740 --> 11:23.900
separate from the ARPANET, to connect computer science departments at

11:23.900 --> 11:28.560
sites that had not so far an access to the ARPANET.

11:28.560 --> 11:34.620
And they immediately also planned for having interconnection between

11:34.620 --> 11:36.060
the CSNet and the ARPANET.

11:36.940 --> 11:38.960
This was all in the United States.

11:39.120 --> 11:41.340
In Europe, there was nothing like that.

11:41.640 --> 11:44.980
They had 213 sites at that time.

11:45.540 --> 11:52.440
In 83, the TCPIP became the standard protocol of ARPANET, 10 years

11:52.440 --> 11:53.940
after they started to design that.

11:53.940 --> 11:59.060
And at that year, in 83, they actually started the European Academic

11:59.060 --> 12:03.120
and Research Network, the ERN network, which was established not

12:03.120 --> 12:08.000
because the European academics were progressing very much and pushing

12:08.000 --> 12:12.600
for that, but IBM needed the technology that they had in the States.

12:12.960 --> 12:16.740
They wanted to have that in Europe to connect all their sites there.

12:17.040 --> 12:22.440
And so they provided it for free to the academic institutions in

12:22.440 --> 12:22.680
Europe.

12:22.680 --> 12:26.680
And so in Europe, we got the European Academic and Research Network.

12:27.360 --> 12:30.820
So this was something which we actually got at that time.

12:31.800 --> 12:39.040
And so in 83, I was actually as a guest or as a visiting researcher, a

12:39.040 --> 12:44.080
visiting professor in Canada, and there I followed discussions on how

12:44.080 --> 12:49.940
to actually establish or how to create first-year or how to supply

12:49.940 --> 12:52.540
first -year students with computers, what would be the best computer

12:52.540 --> 12:54.460
equipment with respect to these things.

12:56.060 --> 12:59.840
A discussion that was going on between all the computer science

12:59.840 --> 13:01.220
departments in North America.

13:01.860 --> 13:04.980
At the same time, in Europe, nobody would think about that.

13:05.060 --> 13:10.500
I came back in 84 to Germany and talked to the computing center head

13:10.500 --> 13:13.280
and asked for access to the networks.

13:13.360 --> 13:15.140
And they said, why do you need access to the network?

13:15.140 --> 13:19.260
I said, well, to send email, to follow news groups.

13:19.800 --> 13:21.020
And he said, well, you can phone.

13:21.400 --> 13:22.740
Why do you need such a network?

13:23.100 --> 13:24.460
That's not really necessary.

13:25.100 --> 13:27.360
And you don't use the computer for communication.

13:27.500 --> 13:29.680
You use it for computation and for nothing else.

13:30.320 --> 13:36.220
And so that was the attitude of typical computer science or computing

13:36.220 --> 13:38.400
center directors at that time.

13:38.400 --> 13:43.880
Although at Karlsruhe, at the same time, they received the first email

13:43.880 --> 13:46.660
message and supported that quite strongly.

13:46.860 --> 13:49.520
So there was a different attitude in different areas.

13:49.920 --> 13:54.400
So that's 30 years ago or almost.

13:55.340 --> 14:00.880
And so at that time, we actually got something which was similar in

14:00.880 --> 14:01.600
Europe.

14:02.480 --> 14:05.040
And then all these different things developed.

14:05.040 --> 14:08.380
You see how the number of hosts actually increased quite

14:08.380 --> 14:08.980
significantly.

14:09.020 --> 14:11.580
Here in 87, already 28,000 hosts.

14:12.280 --> 14:16.920
And they also had, at that time, stronger backbone lines of 1.5

14:16.920 --> 14:20.200
megabit per second, not just these 50 kilobit per seconds.

14:20.800 --> 14:27.220
And so all the technology improved, like the hardware, the

14:27.220 --> 14:32.860
communication technology, and also the software for running these

14:32.860 --> 14:33.280
things.

14:36.400 --> 14:38.880
Then in... oh, by the way, here, there was one thing.

14:38.960 --> 14:40.620
The Internet Engineering Task Force.

14:40.780 --> 14:43.960
I told you that there was a definition of the internet made up by the

14:43.960 --> 14:45.440
ITF.

14:45.720 --> 14:49.560
So they are actually controlling the ARPANET.

14:49.700 --> 14:52.000
They are the governing body of the internet.

14:52.860 --> 15:01.760
But it's all originally designed because of some requirements stated

15:01.760 --> 15:03.980
by the Department of Defense in the United States.

15:04.080 --> 15:06.320
So that was the major reason for setting up the ARPANET.

15:06.980 --> 15:10.040
So this developed on and on.

15:10.040 --> 15:18.420
So then the NSFnet, there were a few remarks on NSFnet.

15:18.720 --> 15:21.740
NSF is the National Science Foundation of the United States.

15:22.340 --> 15:27.040
It actually replaced the original ARPANET.

15:28.660 --> 15:34.020
And it was separated into a military network.

15:34.020 --> 15:38.840
So when you talk about hosts here, I would assume that this is always

15:38.840 --> 15:41.580
only the civil nodes and not the military nodes.

15:41.680 --> 15:45.740
Because the number of military nodes will not be public, probably.

15:47.620 --> 15:54.480
Then in the beginning of the 90s, we had actually here Tim Berners-Lee

15:54.480 --> 15:57.140
all of a sudden in Europe, in Geneva.

15:57.440 --> 16:01.900
And Tim Berners-Lee was a physicist, and he wanted to communicate with

16:01.900 --> 16:02.420
the colleagues.

16:02.420 --> 16:07.300
And so he designed a hypertext system for communication between

16:07.300 --> 16:10.060
researchers in high-energy physics.

16:10.600 --> 16:16.700
And so he designed hypertext, HTML, HTTP, and so on.

16:17.060 --> 16:19.620
That was in the beginning of the 90s.

16:20.160 --> 16:26.280
And in 92, actually, the World Wide Web was released as a service on

16:26.280 --> 16:26.900
the Internet.

16:26.920 --> 16:28.880
It was released by CERN.

16:28.880 --> 16:34.680
So it's an initiative of people in nuclear physics, not something

16:34.680 --> 16:40.320
coming from the military, not from computer scientists, but from

16:40.320 --> 16:40.720
physicists.

16:41.560 --> 16:44.780
And so this was the start of the World Wide Web.

16:45.080 --> 16:54.080
And then this really got momentum and evolved into what we now all

16:54.080 --> 16:55.840
know as the World Wide Web.

16:57.540 --> 17:06.280
Winton Cerf also, no, Tim Berners-Lee designed also the first browser

17:06.280 --> 17:08.000
for HTML pages.

17:09.040 --> 17:13.280
But then there was also the, like in the States, the Mosaic browser

17:13.280 --> 17:14.840
was developed.

17:15.660 --> 17:20.820
And so there was a standard interface for looking at content in the

17:20.820 --> 17:21.420
World Wide Web.

17:21.420 --> 17:26.600
And you see at that time there were already 2 million hosts, so quite

17:26.600 --> 17:27.580
a large number of hosts.

17:27.800 --> 17:33.900
And then this actually developed quite fast.

17:34.260 --> 17:40.320
So in 94, there was the first version of the Netscape browser.

17:41.560 --> 17:43.460
There were the first commercial applications.

17:44.740 --> 17:50.040
Pizza Hut was the first, or one of the first who used the World Wide

17:50.040 --> 17:51.960
Web for ordering pizzas.

17:52.480 --> 17:53.900
There was the first cyber bank.

17:54.760 --> 18:01.480
And so certain commercial applications actually developed here.

18:01.480 --> 18:08.900
And then when that was developing, countries got aware of, well,

18:08.960 --> 18:13.840
something is going on there, and we have to be, or we have to look at

18:13.840 --> 18:15.620
what's actually communicated there.

18:16.020 --> 18:19.740
So in China, certain restrictions were enforced.

18:19.920 --> 18:25.580
In Germany, certain, like access to certain use group was cut off.

18:25.580 --> 18:31.240
Certainly, like we have certain information which we consider to be

18:31.240 --> 18:36.420
unwanted on the Internet, like Nazi information and things like that,

18:36.600 --> 18:39.140
usually is something which is discarded.

18:40.120 --> 18:44.320
So it's not the case that we have just open information for everybody,

18:44.440 --> 18:48.000
but we also restrict it, but in a different way, I would say, than

18:48.000 --> 18:49.360
others do that.

18:49.360 --> 18:52.800
Let us see several things that are happening here in different

18:52.800 --> 18:55.320
countries with respect to the use of the Internet.

18:56.200 --> 19:04.220
And here in 98, you actually hear the Internet was used to judge the

19:04.220 --> 19:09.600
performance of world champion ice skaters as jurors there, so

19:09.600 --> 19:14.860
something which was impossible before that.

19:14.860 --> 19:19.840
The first electronic postal stamps were invented there by the U.S.

19:19.960 --> 19:20.540
Postal Service.

19:20.620 --> 19:22.100
We can do that now also in Germany.

19:23.920 --> 19:27.560
And, well, the backbones for the Internet actually had been

19:27.560 --> 19:32.620
transformed into private enterprises, so private companies actually

19:32.620 --> 19:36.500
are operating the backbones, which initially were operated by

19:36.500 --> 19:39.780
government institutions and not by private institutions.

19:42.140 --> 19:45.060
Then more things happened here.

19:45.600 --> 19:52.060
Viruses came up, like attacks on the network.

19:52.880 --> 19:56.160
The year 2000 was something which was very interesting because all

19:56.160 --> 20:00.940
people were concerned with respect to the time change or the date

20:00.940 --> 20:01.560
change.

20:02.080 --> 20:05.120
And it's really funny that in particular the U.S.

20:05.300 --> 20:10.140
timekeeper, like an official institution responsible for actually

20:10.140 --> 20:15.080
providing information on the correct time, they announced the new year

20:15.080 --> 20:20.960
as 19-100, the year 2000, because they did not actually manage to

20:20.960 --> 20:23.600
transform their system from just counting up.

20:24.340 --> 20:28.840
And after 99, the next one is 100, and they just added the first two

20:28.840 --> 20:32.220
digits, 19, so it was the year 19-100.

20:32.220 --> 20:37.520
And something which happened to a few time services around the world,

20:37.860 --> 20:45.420
but it didn't really come to all the problems that people were afraid

20:45.420 --> 20:48.040
of before this date change.

20:49.240 --> 20:52.360
But they had massive denial-of-service attacks.

20:52.360 --> 20:58.060
You know that here also the computing centers and universities have to

20:58.060 --> 21:04.400
do quite a bit to fight service attacks, like denial-of-service

21:04.400 --> 21:07.580
attacks, which is something which is happening again and again.

21:08.580 --> 21:13.740
In Europe, the European Commission actually decided to build up a very

21:13.740 --> 21:20.720
powerful backbone network, GEON, is the gigabit research network, so

21:20.720 --> 21:24.880
quite a change from the initial 50 kilobit per second to gigabit

21:24.880 --> 21:30.100
networks, but now we have all that.

21:31.400 --> 21:36.240
Then in 2001, certain other things happened, I don't want to go into

21:36.240 --> 21:41.520
all the individual things here, like city at home, something which is

21:41.520 --> 21:45.840
also interesting, using the computers that are connected to the

21:45.840 --> 21:51.300
network in order to distribute computations just in a very self

21:51.300 --> 21:52.020
-organized way.

21:52.140 --> 21:56.680
So city search for extraterrestrial intelligence is just sending

21:56.680 --> 22:06.800
information to computers, and then when the screensaver is running,

22:08.060 --> 22:21.000
the screensaver actually is performing analysis on certain parts of

22:21.000 --> 22:26.160
the communication, of the information that is recorded by certain

22:26.160 --> 22:29.920
recorders who look for signals from outer space.

22:31.260 --> 22:32.780
Okay, what else?

22:34.480 --> 22:43.660
Here, there was all kinds of attacks on the internet.

22:43.660 --> 22:49.540
This is here just a global network for advanced application

22:49.540 --> 22:50.960
development.

22:51.500 --> 22:56.480
This is really global between Chicago, Amsterdam, Moscow, like Russian

22:56.480 --> 22:58.540
states, Russian and China.

23:01.080 --> 23:05.500
In 2004, for the first time, there are more instances of domain name

23:05.500 --> 23:10.480
servers outside the US, so this is something which, certainly as we

23:10.480 --> 23:14.080
know, is now very widespread all over the world.

23:15.220 --> 23:17.520
And what else?

23:17.640 --> 23:23.180
New domains have been initiated there.

23:25.900 --> 23:31.800
Certain things happened, I don't want to go into too many things

23:31.800 --> 23:32.080
there.

23:32.080 --> 23:33.640
Here, this is also interesting.

23:33.840 --> 23:36.900
Twitter is asked by the US government to delay plant maintenance of

23:36.900 --> 23:37.460
its service.

23:38.520 --> 23:41.880
As a result of heavy use by Iranian users, you know that you had the

23:41.880 --> 23:47.780
Arabian Spring events, which were heavily influenced by the

23:47.780 --> 23:49.560
communication capabilities of the internet.

23:50.020 --> 23:54.460
So you know all that, I guess, and I just wanted to briefly show you a

23:54.460 --> 23:57.080
few diagrams on how the internet actually grew.

23:57.080 --> 24:01.580
So the number of hosts, starting with four hosts, as I mentioned, and

24:01.580 --> 24:06.460
then we have almost a doubling every year, and now we are somewhere

24:06.460 --> 24:11.340
around, like almost at 900 million, so the last figure here was from

24:11.340 --> 24:12.920
September 11.

24:13.460 --> 24:17.740
This is an update of the slides that I have put on the server before,

24:18.300 --> 24:20.560
so just a few years more in there.

24:20.560 --> 24:22.460
It's just growing and growing and growing.

24:23.680 --> 24:28.920
So it's really a very, very large number of hosts that are connected

24:28.920 --> 24:29.500
to the internet.

24:30.540 --> 24:34.520
And then if you look at the number of domains, that's also growing.

24:34.520 --> 24:40.020
The number of websites, there you see strange jumps.

24:40.300 --> 24:45.560
These jumps have to do with certain providers, like service providers,

24:47.660 --> 24:54.620
offering websites going out of service or into service, and so here

24:54.620 --> 24:59.900
sometimes things are counted or recounted, and then they notice that

24:59.900 --> 25:06.900
there are certain changes in the number of sites that are actually

25:06.900 --> 25:07.240
there.

25:07.460 --> 25:12.860
The most important thing is that certainly there have been some minor

25:12.860 --> 25:16.640
changes there, for example the number of websites, you don't see

25:16.640 --> 25:25.160
actually the downturn or the drop in internet activities after the

25:25.160 --> 25:32.600
year, like the early years of the 2000s, we had like the internet

25:32.600 --> 25:38.480
bubble exploded and the activities went down, but you don't see it

25:38.480 --> 25:43.980
here actually, and then we had the economic problems after the year

25:43.980 --> 25:44.740
2008.

25:45.180 --> 25:47.540
You see a little bit here, but not that much.

25:47.860 --> 25:51.080
So with respect to the internet, with respect to communication, it's

25:51.080 --> 25:54.800
just an increasing thing.

25:55.520 --> 26:00.100
So regardless what you look at, even here if you look at the number of

26:00.100 --> 26:05.580
Facebook accounts, the slide which I inserted last night, you also see

26:05.580 --> 26:07.880
that it's just continually growing.

26:08.080 --> 26:13.140
So Facebook accounts are almost 900 million Facebook accounts.

26:13.340 --> 26:17.840
I think I recently read something that they have reached 1 billion

26:17.840 --> 26:20.080
Facebook accounts meanwhile.

26:20.080 --> 26:25.700
So it's an amazing number of people connected to internet and

26:25.700 --> 26:35.060
definitely this has quite some influence on how society and industry

26:35.060 --> 26:35.760
is developing.

26:36.340 --> 26:37.540
What are the reasons for that?

26:37.540 --> 26:41.700
Certainly one reason is that we have this tremendous growth of

26:41.700 --> 26:43.280
bandwidth and wide area networks.

26:44.120 --> 26:50.200
So we are now in the gigabit range and people are actually working on

26:50.200 --> 26:51.400
terabit networks.

26:52.580 --> 26:56.420
So we can communicate or we can transport all the information that is

26:56.420 --> 26:59.900
necessary over those wide area networks.

26:59.900 --> 27:06.400
And then we also have, like in the local area networks, on the

27:06.400 --> 27:10.040
telephone exchange systems, we have also improved transmission

27:10.040 --> 27:10.600
performance.

27:10.820 --> 27:14.280
Initially people thought that, well, you can just communicate with

27:14.280 --> 27:18.100
several thousand bits per second, but not really more.

27:18.420 --> 27:20.760
We know that we have quite some development there.

27:20.760 --> 27:25.160
So initially we had here, like the first step forward was the ISDN

27:25.160 --> 27:29.720
network providing 64 kilobits per second in Germany with several

27:29.720 --> 27:30.960
services on top of that.

27:31.300 --> 27:37.460
It was an important reason for actually allowing more communication

27:37.460 --> 27:38.640
over telephone lines.

27:38.640 --> 27:43.500
And the major push was the asymmetric digital subscriber line

27:43.500 --> 27:48.640
technology, which is just some breakthrough because it can be used on

27:48.640 --> 27:54.000
the same lines that before had been considered to have a natural limit

27:54.000 --> 27:55.880
of a few thousand bits per second.

27:56.420 --> 28:02.280
And now with the ADSL technology, you could actually send millions of

28:02.280 --> 28:04.840
bits per second as we know in DSL connections.

28:04.840 --> 28:10.080
We are at about 10, 20, 30 megabit per second.

28:10.420 --> 28:17.780
And this is just due to a different way of coding information over

28:17.780 --> 28:20.740
those lines.

28:20.820 --> 28:24.860
So it's a different way of coding information and this just allows to

28:24.860 --> 28:29.580
increase the information that is broadcasted or that is sent over a

28:29.580 --> 28:30.620
line so significantly.

28:31.220 --> 28:36.200
One thing is that it is asymmetric, so we have like the downstream

28:36.200 --> 28:41.400
connection is significantly larger than the upstream connection.

28:41.600 --> 28:46.640
Upstream is just a few megabit per second while downstream can be in

28:46.640 --> 28:48.240
the range of 100 megabit per second.

28:48.760 --> 28:51.460
So this is quite a difference, but normally you are just receiving

28:51.460 --> 28:53.940
information, you're not sending that much information.

28:54.280 --> 28:57.480
So it's perfect for a network which is mainly distributing

28:57.480 --> 28:57.980
information.

28:58.960 --> 29:03.580
Okay, and now we have meanwhile also UMTS and LTE.

29:03.740 --> 29:07.840
LTE for long-term evolution, the new standard that is just being

29:07.840 --> 29:10.620
established in most countries of the world.

29:10.800 --> 29:14.560
It's not available everywhere, so long-term evolution is a standard

29:14.560 --> 29:17.680
that's called the 4G, fourth generation standard for mobile

29:17.680 --> 29:18.260
communication.

29:18.260 --> 29:26.560
And the bandwidth there is around 300 megabits per second, like the

29:26.560 --> 29:31.020
downlink peak rate and the uplink peak rate around 75 megabit per

29:31.020 --> 29:31.280
second.

29:31.580 --> 29:36.640
So this is at the same range as you have for wired communication.

29:36.640 --> 29:41.920
So it means that with mobile communication, with mobile devices, we

29:41.920 --> 29:45.040
have the same communication bandwidth as we do with wired

29:45.040 --> 29:45.660
communication.

29:46.040 --> 29:51.040
And this is certainly very important for many services that are used

29:51.040 --> 29:54.220
in communication and computation.

29:54.840 --> 29:59.000
So all the cloud services and so on can be used much better if you

29:59.000 --> 30:00.320
have such a technology available.

30:00.320 --> 30:04.840
So this is really a major step, although the name is a bit strange,

30:05.160 --> 30:06.560
LTE, long-term evolution.

30:06.700 --> 30:11.280
Nobody would think about a connection to a communication standard, but

30:11.280 --> 30:13.000
that's how things just developed.

30:13.360 --> 30:19.380
Some people came up with that name, and it stands for this new, very

30:19.380 --> 30:24.320
powerful technology for sending information in mobile communication.

30:25.110 --> 30:28.200
And then, like this was the increased performance of our telephone

30:28.200 --> 30:28.660
lines.

30:28.940 --> 30:33.300
And then the other important part certainly is that we have

30:33.300 --> 30:36.720
standardized platform-independent interfaces to the World Wide Web.

30:37.160 --> 30:39.600
More or less platform-independent, we know that there are certain

30:39.600 --> 30:41.100
differences between different browsers.

30:42.780 --> 30:44.500
So this is annoying.

30:44.500 --> 30:49.560
The original idea was to have just one standardized way of displaying

30:49.560 --> 30:56.020
information, but companies have their own view on that and wanted to

30:56.020 --> 31:00.040
have some competitive advantage, so do things different from others.

31:00.660 --> 31:04.660
And so you have now, if you provide information, you have to check how

31:04.660 --> 31:07.000
it is actually displayed on the different platforms.

31:07.000 --> 31:10.600
You also have the programming language Java, which supports just

31:10.600 --> 31:15.800
having all this way of providing information.

31:16.320 --> 31:21.300
But you should always remember that there's the history of the

31:21.300 --> 31:27.440
Internet, which is about 40 years, and there's also the history of the

31:27.440 --> 31:29.180
World Wide Web, which is just 20 years.

31:29.840 --> 31:32.400
So the World Wide Web is just a service on the Internet.

31:32.400 --> 31:37.040
So if we talk about Internet, very often we mean the World Wide Web,

31:37.640 --> 31:40.860
but we're actually talking about the World Wide Web, and so the

31:40.860 --> 31:43.740
Internet is something which is independent of the World Wide Web.

31:45.700 --> 31:49.780
Just a remark on what I showed you here very briefly, so you can read

31:49.780 --> 31:53.240
it if you have time, just in more detail.

31:54.520 --> 31:58.840
What I present to you here is information I got from the Internet,

31:59.040 --> 32:02.300
from certain websites on history of the Internet, and it's mainly

32:02.300 --> 32:06.180
showing the American view on the Internet, although it is something

32:06.180 --> 32:09.740
which has been influenced heavily by the North Americans.

32:10.480 --> 32:14.920
And so Europe has been more involved in the World Wide Web, and so the

32:14.920 --> 32:19.740
World Wide Web Consortium, which is ruling, governing the World Wide

32:19.740 --> 32:22.280
Web, is something which is located in Europe.

32:24.500 --> 32:27.720
And it's interesting that the Internet and the World Wide Web evolved

32:27.720 --> 32:31.620
in universities and research institutes, and it took very long before

32:31.620 --> 32:36.080
the industry actually recognized the advantages and the economic

32:36.080 --> 32:37.180
potential of the Internet.

32:37.380 --> 32:41.600
So this is something which was not, as sometimes people say, industry

32:41.600 --> 32:45.920
is just showing where technology needs to, this is something which was

32:45.920 --> 32:51.580
designed actually in academia, and as I showed you, theoretical

32:51.580 --> 32:56.880
physicists or nuclear physicists were very important there, and also

32:56.880 --> 32:59.740
the theoretical computer scientists, they made use of those

32:59.740 --> 33:03.940
technologies, and it's not always those who are, who should be

33:03.940 --> 33:07.240
considered to be those who are in front of that development.

33:07.780 --> 33:12.780
So here it also says that now we have, that we certainly have gigabit

33:12.780 --> 33:16.260
networks, there are experiments with terabit networks, there are

33:16.260 --> 33:19.420
strong groups in that area here at Karlsruhe, the KRT, like the groups

33:19.420 --> 33:27.700
of Jörg Leuthold and Professor Coase, they just, they have won several

33:27.700 --> 33:34.400
prizes for that, because they have designed very, very powerful high

33:34.400 --> 33:37.200
-speed and very efficient communication networks.

33:37.820 --> 33:41.560
So we are in the range of terabit networks in research, and certainly

33:41.560 --> 33:47.960
it means that our computers have to be able to actually process the

33:47.960 --> 33:52.220
information that you can move over those backbone lines.

33:52.460 --> 33:57.060
You have to be able to process the information at the same speed, and

33:57.060 --> 34:00.120
so you need very powerful computers for that.

34:00.800 --> 34:04.720
And you know that one important topic meanwhile is, since we have that

34:04.720 --> 34:10.540
much information, we are talking in several areas about a topic which

34:10.540 --> 34:12.160
is abbreviated as big data.

34:12.160 --> 34:17.380
And big data is coming from certainly experiments where you just

34:17.380 --> 34:22.900
produce lots of data, terabits or petabits of data a day.

34:23.260 --> 34:29.020
For example, in the Large Hadron Collider experiments at Geneva, or

34:29.020 --> 34:33.080
here at Karlsruhe in the KRT, there are certain experiments where they

34:33.080 --> 34:39.240
analyze the development of, or the evolution of zebrafishes, small

34:39.240 --> 34:44.760
fishes, which show interesting developments, interesting evolutionary

34:44.760 --> 34:45.180
steps.

34:45.820 --> 34:53.240
And this is very similar to what's happening in Stamtzell.

34:53.600 --> 34:57.460
I don't know the right word for Stamtzell in the moment, so it's the

34:57.460 --> 35:00.960
basic, the core cells, the original stem cells.

35:01.260 --> 35:04.100
It's just the stem cells.

35:04.100 --> 35:07.460
And a lot of Stamtzell research is done here with zebrafishes, and

35:07.460 --> 35:08.780
it's millions of zebrafishes.

35:08.940 --> 35:14.260
They also have lots of information that has to be processed and has to

35:14.260 --> 35:15.980
be made available for many different people.

35:16.340 --> 35:18.740
And this can be made available using those networks.

35:19.280 --> 35:26.720
Okay, that's some remarks on the general Internet history, and now a

35:26.720 --> 35:28.420
few remarks on the German Internet history.

35:28.420 --> 35:33.680
As I told you that we had, in 83, we got the European Academic

35:33.680 --> 35:34.480
Research Network.

35:35.400 --> 35:39.480
And so in the mid-80s, in Germany, we got the Deutsches

35:39.480 --> 35:41.800
Forschungsnetz, the German Research Network.

35:42.400 --> 35:47.420
And it was established to provide remote access to computers.

35:47.680 --> 35:51.560
So it was only there for getting remote access to perform computations

35:52.640 --> 35:55.560
at distant computers.

35:55.560 --> 35:57.140
This was not for communication.

35:57.660 --> 36:00.780
It was not supporting e-mail services and things like that.

36:00.820 --> 36:04.900
It was only there for doing remote log-in and performing computations

36:04.900 --> 36:08.340
at different computing centers.

36:08.620 --> 36:09.740
Not for communication.

36:10.340 --> 36:15.500
It was based on a protocol called X-25, just a telephone line

36:15.500 --> 36:15.820
protocol.

36:16.740 --> 36:21.180
And then later on, in the end of the 90s, this was transformed into

36:21.180 --> 36:25.500
the Science Network, the Wissenschaftsnetz, and actually upgraded to

36:25.500 --> 36:27.580
35 megabits per second in the backbones.

36:27.840 --> 36:34.060
And then a few years later, we got the Gigabit Science Network.

36:34.860 --> 36:41.600
And now we have a widely distributed network having around 10 gigabit

36:41.600 --> 36:41.920
lines.

36:42.020 --> 36:43.060
So now it's very powerful.

36:43.220 --> 36:44.860
It's as powerful as in other countries.

36:45.400 --> 36:50.640
So we have been behind the North American developments for many years.

36:50.640 --> 36:55.900
But this changed at the end of the 90s because people got more aware

36:55.900 --> 36:58.400
of the necessity of having that.

36:58.520 --> 37:03.240
At those times, our research policy, our research funding was on

37:03.240 --> 37:09.560
nuclear science, on large-scale research, not on small-scale research,

37:09.940 --> 37:13.820
or small-scale with respect to microelectronics and things like that,

37:13.960 --> 37:15.260
and not on communication infrastructure.

37:15.260 --> 37:21.340
It was just a wrong focus on...

37:21.340 --> 37:26.020
or a wrong strategic decision on what kind of research is necessary in

37:26.020 --> 37:26.540
this country.

37:27.500 --> 37:34.120
And a very interesting thing was that in the 90s, in the mid-90s, in

37:34.120 --> 37:38.960
the States, there was Al Gore, Vice President, who had as his topic

37:38.960 --> 37:42.700
the Information Superhighway Research Program, a very hot topic in the

37:42.700 --> 37:43.220
United States.

37:43.220 --> 37:48.240
And when that was at the same time discussed in the German government,

37:49.800 --> 37:53.860
the Chancellor at that time, the mid-90s, said, okay, this should be

37:53.860 --> 37:55.460
sent to the traffic...

37:55.460 --> 37:58.580
or to the committee for traffic, because it's on highways.

37:59.540 --> 38:03.000
And that was the way this topic was dealt with.

38:03.200 --> 38:06.960
So they did not see, actually, the importance of that infrastructure

38:06.960 --> 38:10.600
for the development of society, and in particular, for industry.

38:11.400 --> 38:13.360
And so this is...

38:13.360 --> 38:20.020
this changed in the end of the 90s, but in the mid of the 90s, when

38:20.020 --> 38:24.880
the World Wide Web came up, the politicians were afraid of threat of

38:24.880 --> 38:26.160
sex and crime on the Internet.

38:26.480 --> 38:31.540
They made suggestions like, well, it might be okay if content like

38:31.540 --> 38:37.500
this content is available after 11 p.m.

38:37.540 --> 38:38.140
at night.

38:38.140 --> 38:44.080
It may be okay, but not before that, because then it may be dangerous

38:44.080 --> 38:45.800
for kids who look at that.

38:46.320 --> 38:49.160
They did not actually see that on the Internet you don't talk about

38:49.160 --> 38:49.480
time.

38:49.900 --> 38:51.900
It's just there, or not there.

38:52.480 --> 38:56.200
And it is independent of at what time in one country it is available

38:56.200 --> 38:56.700
or visible.

38:57.380 --> 38:58.980
So this was strange.

38:59.260 --> 39:02.840
This was something which was just the same all over the different

39:02.840 --> 39:03.660
political parties.

39:04.540 --> 39:08.700
And this changed in the end of the 90s, and nowadays we know we are

39:08.700 --> 39:11.740
aware of what's necessary there.

39:12.260 --> 39:13.400
At least to some extent.

39:13.620 --> 39:15.340
Just one more remark on that.

39:15.860 --> 39:20.420
There is a traditional area of research, like energy-related research

39:20.420 --> 39:21.060
in Germany.

39:23.060 --> 39:25.060
It has a long tradition.

39:25.700 --> 39:28.180
People talk about energy efficiency and things like that.

39:29.000 --> 39:35.800
And we all know that due to the changes in the way we generate power,

39:35.800 --> 39:41.140
electrical power, from renewable sources, we need to change the

39:41.140 --> 39:42.020
management systems.

39:42.840 --> 39:47.020
But that means that we need information and communication technology

39:47.020 --> 39:48.220
in energy research.

39:48.740 --> 39:52.660
And this is not really seen by those in the government who are

39:52.660 --> 39:55.020
responsible for energy research.

39:55.260 --> 39:59.120
They deny the need for research on information and communication

39:59.120 --> 39:59.680
technologies.

39:59.980 --> 40:04.000
It's other areas, other parts of the government who are related to

40:04.000 --> 40:07.680
information and communication technologies which say we have to do

40:07.680 --> 40:08.680
something in that area.

40:08.840 --> 40:13.320
So they design their own programs on ICT for energy, but those who are

40:13.320 --> 40:17.980
responsible for energy research so far deny that necessity.

40:18.780 --> 40:21.760
So this is something which has some tradition in Germany, that

40:21.760 --> 40:27.220
information and communication technology is not really seen as what it

40:27.220 --> 40:32.640
really is in the moment, mainly the major driver and enabler of new

40:32.640 --> 40:35.880
technologies, of innovation.

40:36.680 --> 40:40.260
And so I see I should speed up a bit.

40:41.380 --> 40:46.040
But I think it's also necessary to tell you these things that are

40:46.040 --> 40:52.280
going on apart from the research topics that we have here.

40:53.280 --> 40:56.800
So, now we come to more content.

40:56.800 --> 41:02.040
I said that the Internet is made up of addresses, protocols, and

41:02.040 --> 41:02.500
services.

41:02.960 --> 41:04.840
What are the standard services that we have?

41:05.420 --> 41:09.480
For example, the first one is a virtual terminal for remote log-in.

41:10.340 --> 41:11.640
That was the initial thing.

41:11.700 --> 41:15.180
You would like to log into another computer over a network.

41:15.640 --> 41:19.720
Then email, also one of the first services to actually provide

41:19.720 --> 41:22.540
communication, to send messages in a very simple way.

41:22.540 --> 41:26.580
The simple mail transfer protocol was designed in the early days of

41:26.580 --> 41:27.000
the Internet.

41:27.600 --> 41:30.060
File transfer protocol, also an important thing.

41:30.480 --> 41:33.620
News groups were also among the initial services.

41:33.920 --> 41:37.220
And then the World Wide Web, as you know, made up of several different

41:37.220 --> 41:42.500
architectures, or several different protocols and languages, the HTML,

41:43.960 --> 41:48.920
markup language, the hypertext transfer protocol, and the way we

41:48.920 --> 41:54.300
actually address the different resources in the World Wide Web, the

41:54.300 --> 41:57.680
URL concept was designed at those times.

41:58.000 --> 42:01.460
And all these together actually created the World Wide Web.

42:02.040 --> 42:06.720
And we have all kinds of Internet technologies, like company-wide

42:06.720 --> 42:08.840
networks based on the Internet technology.

42:09.340 --> 42:13.620
For a long time there were very proprietary networks, network

42:13.620 --> 42:15.200
protocols in different companies.

42:15.440 --> 42:19.860
And so you had internal protocols, you had external protocols, and the

42:19.860 --> 42:23.780
fact that they are now built on the same technology certainly

42:23.780 --> 42:27.160
facilitates the way we can actually manage those systems.

42:28.140 --> 42:30.480
So, now we come to Internet technology.

42:30.780 --> 42:36.440
First some small view on what actually is the structure.

42:36.620 --> 42:40.740
So the backbone here is the high bandwidth Internet kernel, several

42:40.740 --> 42:44.820
strong lines connecting the major sites and transporting information

42:44.820 --> 42:50.760
between different larger sites in the network, having high capacity

42:50.760 --> 42:51.900
and high speed cables.

42:52.520 --> 42:57.120
Although certainly, like the latency to send information over a long

42:57.120 --> 43:01.380
distance is still there, but the number of bits you can send in

43:01.380 --> 43:05.120
parallel has increased, so that way we can also increase the bandwidth

43:05.120 --> 43:07.720
of those communication lines.

43:08.020 --> 43:11.180
But you always have to be aware of the fact that it takes some time to

43:11.180 --> 43:14.520
actually send information between different locations.

43:15.180 --> 43:19.360
You know that there is one technology which is very promising, or at

43:19.360 --> 43:23.240
least that is very interesting.

43:23.600 --> 43:27.680
It is the quantum communication or quantum computing.

43:28.680 --> 43:33.380
But quantum communication is very promising because there you would

43:33.380 --> 43:40.000
have communication in zero time, because if you change something here

43:40.000 --> 43:42.840
at the same time it is changed there, and so you can have

43:42.840 --> 43:45.440
instantaneous communication between different sites.

43:45.780 --> 43:50.100
This is something which researchers mainly in physics are working on,

43:50.660 --> 43:57.140
and progress in that area certainly will be very important for future

43:57.140 --> 43:58.320
communication systems.

43:58.760 --> 44:02.220
Okay, then we have the wide area networks, we have metropolitan area

44:02.220 --> 44:07.240
networks, for example, in larger municipal areas, larger urban areas,

44:07.820 --> 44:16.940
and we have the local area networks, and then certainly all these

44:16.940 --> 44:21.520
networks have to be connected, so we have network access points for

44:21.520 --> 44:28.460
the different computers that are connected in some way to different

44:28.460 --> 44:29.080
technologies.

44:29.300 --> 44:32.820
Here you have the Ethernet technology, there I indicated the token

44:32.820 --> 44:36.020
ring or the token bus technologies.

44:36.580 --> 44:40.000
Nowadays most people or most LANs are based on the Ethernet.

44:40.700 --> 44:44.200
I will not talk about token ring and Ethernet in this course.

44:44.660 --> 44:50.780
I will talk more about the technology that is above that, so above the

44:50.780 --> 44:51.680
network access points.

44:52.180 --> 44:56.080
Then we have routers between the different locations in the network,

44:56.560 --> 45:03.320
and we have gateways between different regions so that you can address

45:03.320 --> 45:08.740
a certain region and then refine that and go to certain locations in

45:08.740 --> 45:08.980
that.

45:09.140 --> 45:11.920
So if you have a different view of the Internet, we have certain

45:11.920 --> 45:16.660
autonomous systems which are connected in some way using gateways.

45:17.000 --> 45:21.160
We have the local area networks and we have routers in between, and so

45:21.700 --> 45:26.740
when we communicate, we can communicate either inside those networks,

45:26.860 --> 45:32.540
those autonomous systems, or go to some using some communication

45:34.240 --> 45:37.640
facility, go to different autonomous systems.

45:37.980 --> 45:43.980
Meanwhile we have hundreds of thousands of autonomous systems which

45:43.980 --> 45:48.360
are making up the complete Internet.

45:49.600 --> 45:54.580
One important point also is that the Internet is a network which is

45:54.580 --> 45:56.360
more or less self-organizing.

45:56.840 --> 46:02.460
There are certain specific protocols which have been designed and

46:02.460 --> 46:07.140
approved by the governing authorities, but a major point of that is

46:07.140 --> 46:11.900
that all the nodes in the network actually can carry out those

46:12.510 --> 46:16.760
protocols and can in some way control the network flow.

46:16.900 --> 46:21.300
This is nothing which is centrally organized, but it is distributed

46:22.040 --> 46:26.520
and so we have here essentially the Internet is a very large self

46:26.520 --> 46:27.340
-organized system.

46:27.960 --> 46:35.200
And how it is actually operating is we will look at that in a moment,

46:35.300 --> 46:40.780
looking at the different protocols in the communication that we have

46:40.780 --> 46:41.260
in the Internet.

46:41.640 --> 46:42.940
So we have different layers.

46:43.160 --> 46:49.260
There is the so-called open system interconnection network layer model

46:49.260 --> 46:51.160
of the International Standard Organization.

46:51.360 --> 46:53.080
It's a seven layer network.

46:53.540 --> 46:56.620
In the Internet we are only looking at five different layers

46:56.620 --> 46:57.280
essentially.

46:59.080 --> 47:01.020
And here I show only four of them.

47:01.120 --> 47:03.620
So we have the application layer where all the services are running.

47:04.080 --> 47:05.340
We have TCPIP.

47:05.720 --> 47:07.340
That's the protocol suite that I mentioned.

47:08.120 --> 47:11.420
There are some more protocols in there which usually are not mentioned

47:11.420 --> 47:11.940
explicitly.

47:11.940 --> 47:14.520
But later on, here's a question.

47:15.100 --> 47:15.260
Oops.

47:17.800 --> 47:21.900
Are the internal gateways the same as the routers on the previous

47:21.900 --> 47:22.360
slide?

47:22.920 --> 47:30.080
Like the routers and gateways are sometimes used almost in a

47:30.080 --> 47:30.940
synonymous way.

47:34.020 --> 47:41.960
There are some differences between gateways that are addressed if you

47:43.440 --> 47:46.980
go from one autonomous network to the next autonomous network.

47:47.220 --> 47:50.060
So there you have certain gateways.

47:50.180 --> 47:54.060
So gateways are special routers running certain special other

47:54.060 --> 47:57.080
protocols which we will briefly look at in a moment.

47:57.220 --> 48:01.840
So they are not exactly the same but they are very similar just having

48:01.840 --> 48:05.360
a few more tasks to do.

48:06.380 --> 48:06.580
Okay.

48:07.060 --> 48:08.320
Another question.

48:09.200 --> 48:11.260
That's the same question again.

48:12.300 --> 48:12.560
Okay.

48:13.440 --> 48:19.720
So we have these different layers and the question then is how that

48:19.720 --> 48:20.680
actually works.

48:20.960 --> 48:25.980
So we have here these protocols on different layers.

48:26.180 --> 48:32.840
So it's a separation of concerns of the different protocols and so we

48:32.840 --> 48:38.240
have a certain application for example Telnet or FTP or SMTP, HTTP,

48:38.720 --> 48:42.460
whatever you like an application which would like to send certain

48:42.460 --> 48:42.840
data.

48:43.320 --> 48:48.540
Now if you have, if you would like to send certain data then it may be

48:48.540 --> 48:50.280
a long stream of data.

48:50.900 --> 48:53.780
Now you cannot send just a stream of data.

48:53.920 --> 48:55.900
You have to organize the sending of data.

48:56.040 --> 48:59.820
I mentioned that the major part of the internet is that it is a packet

48:59.820 --> 49:01.280
switched network.

49:01.900 --> 49:06.760
So data has to be put into packets and the question is what kind of

49:06.760 --> 49:08.460
packet size do we actually need?

49:09.540 --> 49:16.500
Packet size will be determined by the capabilities of the actual nodes

49:16.500 --> 49:21.540
that are in the network and so you have to communicate information on

49:21.540 --> 49:23.720
what an appropriate packet size actually would be.

49:24.780 --> 49:28.320
And the first thing that is done is that the transmission control

49:28.320 --> 49:31.780
protocol is actually looking at that data.

49:32.180 --> 49:39.540
It is separating the data stream into segments and it is building up

49:39.540 --> 49:44.960
communication to the receiver between the sender and the receiver.

49:45.600 --> 49:47.520
So we have one communication line.

49:48.160 --> 49:52.740
Now the network, like here, if that is the sender and that is the

49:52.740 --> 49:55.680
receiver, there will be many nodes in between here.

49:56.160 --> 50:01.380
And having many different connections, so there might be many

50:01.380 --> 50:07.420
different possibilities to actually send information from one node to

50:07.420 --> 50:07.820
the other.

50:08.740 --> 50:12.020
The question is if we have here one line, what does that mean?

50:12.120 --> 50:13.640
This is just a logical connection.

50:13.860 --> 50:17.660
This is a communication that is sent between the sender and receiver.

50:18.120 --> 50:21.500
A few packets send back and forth and then they decide on being

50:21.500 --> 50:22.020
connected.

50:22.460 --> 50:26.260
This is just a logical connection and they know how they will actually

50:26.260 --> 50:27.720
treat the follow-up packets.

50:28.420 --> 50:30.980
So this is a logical connection, not a physical connection.

50:31.460 --> 50:34.720
That means that different packets may run over different lines.

50:35.720 --> 50:42.680
And then we have to provide certain information for the receiving

50:42.680 --> 50:43.140
side.

50:43.260 --> 50:50.380
That means when data is sent down here, like over this link on the

50:50.380 --> 50:54.400
other side, this information has to be looked at again.

50:55.260 --> 51:01.320
So every protocol, TCP, IP and then some protocol on the physical data

51:01.320 --> 51:05.680
link layer, they have to provide some information which is necessary

51:05.680 --> 51:10.280
for those on the other side actually to know what to do with this data

51:10.280 --> 51:10.600
item.

51:11.480 --> 51:18.420
And so the next hop there will look at the last header, gets

51:18.420 --> 51:20.420
information on what has to be done with that.

51:21.280 --> 51:26.760
And then it may provide the information to the next layer of that

51:26.760 --> 51:28.960
protocol stack, maybe to IP.

51:29.480 --> 51:33.800
IP looks at the header that has been moved, that has been appended

51:33.800 --> 51:35.480
there by the sending side.

51:36.120 --> 51:41.340
And then you get information on what is actually the destination of

51:41.340 --> 51:44.460
that packet, how should I treat that packet, certain information.

51:44.660 --> 51:46.060
We will look at that in a moment.

51:47.140 --> 51:52.300
And if it's actually the receiving side and not just some intermediate

51:52.300 --> 51:57.020
side where you always go up to the IP layer, if it's the receiving

51:57.020 --> 52:02.500
side, then IP will forward this datagram to the next layer to the TCP

52:02.500 --> 52:03.040
protocol.

52:03.920 --> 52:08.880
And then TCP here will look at the header that has been provided there

52:08.880 --> 52:13.560
by the sender and knows what to do with the data, how to assemble the

52:13.560 --> 52:17.560
data into the data for the application.

52:17.940 --> 52:23.400
So the data items here are merged into the data stream for the

52:23.400 --> 52:24.800
application on the receiving side.

52:26.180 --> 52:29.620
And the important points are that this is the separation of concerns.

52:29.860 --> 52:35.420
Different aspects are treated by or are considered by the different

52:35.420 --> 52:41.100
protocols and so you can have a systematic way of actually providing

52:41.100 --> 52:43.500
the communication between different sites.

52:44.260 --> 52:48.860
Okay, we will look at the different protocols in particular at IP and

52:48.860 --> 52:54.560
TCP later on, certainly also on the applications in the next lectures.

52:55.000 --> 53:00.460
So let's start with IP, the Internet protocol which is located on the

53:00.460 --> 53:05.040
network layer and so what does IP actually do?

53:05.720 --> 53:08.420
It defines first of all the addressing format in the Internet.

53:08.960 --> 53:13.800
So we know that we have a global addressing scheme in the Internet.

53:15.100 --> 53:22.060
And the task of the IP protocol is to actually let a node decide what

53:22.060 --> 53:27.060
to do with messages that are received from different locations and

53:27.060 --> 53:30.920
which would like to go to different destinations.

53:31.640 --> 53:36.620
And the question is what is the most appropriate link or the most

53:36.620 --> 53:41.160
appropriate next node where such information has to be sent to.

53:41.460 --> 53:44.760
So this is the major task that has to be looked at.

53:45.800 --> 53:51.180
The routers like this is a router has to know what to do with the

53:51.180 --> 53:55.360
datagram and so it gets some information and has to decide what is the

53:55.360 --> 53:59.400
most appropriate next hop on the path from the source to the

53:59.400 --> 53:59.940
destination.

54:01.160 --> 54:06.180
And it does that in an unreliable and connectionless way.

54:06.600 --> 54:08.420
Now why do we say unreliable?

54:08.500 --> 54:10.000
We always need reliability.

54:11.060 --> 54:16.140
What I state here is just that IP is not concerned with the

54:16.140 --> 54:16.560
reliability.

54:17.340 --> 54:21.840
It just decides on what to do with the packet which it receives, how

54:21.840 --> 54:24.020
to forward it to the next hop.

54:24.580 --> 54:28.140
It's not concerned with the question whether that datagram will

54:28.140 --> 54:33.360
actually be received sometime later by the destination host.

54:34.360 --> 54:40.680
And so in this way it is unreliable because it doesn't care about the

54:40.680 --> 54:46.340
fact whether the datagram is received by the supposed destination.

54:47.120 --> 54:48.560
And it's also connectionless.

54:48.560 --> 54:53.760
That means if you get a sequence of datagrams from maybe the same

54:53.760 --> 54:59.180
site, the same source directed to the same destination it may be that

54:59.180 --> 55:01.660
the messages are sent over different links.

55:02.060 --> 55:08.080
If certain things have changed in between certain traffic jams on some

55:08.080 --> 55:13.220
link, that means a delay in communication may lead to choosing a

55:13.220 --> 55:18.880
different connection for this sequence of messages, sequence of

55:18.880 --> 55:19.480
datagrams.

55:19.800 --> 55:24.040
So it's connectionless just a logical connection, not a physical

55:24.040 --> 55:24.580
connection.

55:25.900 --> 55:30.480
And the next layer above, the transport layer with the TCP protocol is

55:30.480 --> 55:35.180
then responsible for reliability but IP is just responsible for

55:35.180 --> 55:37.680
deciding on the next hop.

55:38.020 --> 55:38.500
That's it.

55:38.820 --> 55:42.820
And certainly also looking at certain faults that can occur there and

55:42.820 --> 55:48.640
this is another part there but we'll just look at this capability to

55:48.640 --> 55:51.140
decide on the routing of messages.

55:51.980 --> 55:55.420
The first thing we need for that is a standard for addresses.

55:55.940 --> 56:01.160
So IP, when it was designed initially, was designed with 32-bit

56:01.160 --> 56:09.320
addresses that means 4 bytes 4 bytes means 4 numbers between 0 and

56:09.320 --> 56:10.320
255.

56:10.960 --> 56:15.620
Not all the numbers are available, certain are used for different

56:15.620 --> 56:16.080
purposes.

56:16.860 --> 56:22.200
So you have always these numbers and these are the addresses of hosts,

56:22.220 --> 56:27.900
as you know and this is not just the address of a computer, a specific

56:27.900 --> 56:33.280
computer, but it is split up into an address of a network and the

56:33.280 --> 56:36.380
address of a specific host in that network.

56:36.920 --> 56:39.560
And then there are different classes of addresses in the initial

56:39.560 --> 56:44.460
version, meanwhile we are beyond that and have a more general way of

56:44.460 --> 56:46.860
stating that but just for information.

56:47.640 --> 56:53.560
The different classes were A, B, C, D and E classes so the differences

56:53.560 --> 57:00.760
were that you had different split ups between network address and host

57:00.760 --> 57:01.260
address.

57:01.860 --> 57:08.200
So in the A class networks you had only very few networks, just 7 bits

57:08.200 --> 57:16.780
for specifying the network and then the remaining 24 bits here for

57:16.780 --> 57:17.800
specifying the host.

57:18.340 --> 57:22.420
And this went down to the C class where you had many different

57:22.420 --> 57:28.140
networks that you could address but only here 8 bits for specifying

57:28.140 --> 57:28.660
the host.

57:29.920 --> 57:34.700
Fixed separations between network address and host address.

57:35.460 --> 57:40.360
Then you had a special class, so called multicast addresses where

57:40.360 --> 57:47.000
messages were indicated that they should be sent to all the nodes, not

57:47.000 --> 57:51.140
just to a specific host but to all the nodes and there was another

57:51.140 --> 57:53.120
class for so called future use.

57:53.620 --> 57:58.100
Meanwhile we definitely use all these in a different way.

57:58.180 --> 58:03.020
Actually we use it in a way, meanwhile that we have two 32 bit

58:03.020 --> 58:10.760
addresses and the second is just some kind of pattern of zeros and

58:10.760 --> 58:17.060
ones indicating it's some kind of filtering indicating the locations

58:17.060 --> 58:20.060
where the network is specified and the locations where the host is

58:20.060 --> 58:20.440
specified.

58:21.140 --> 58:28.040
So you have some very general way of actually specifying the way you

58:28.040 --> 58:29.400
address a certain computer.

58:30.540 --> 58:35.500
But this is the original scheme and the classes are indicated by the

58:35.500 --> 58:40.480
prefix of the number of ones here in the prefix of the addresses.

58:40.900 --> 58:46.380
That was the original scheme and you can immediately imagine if you

58:46.380 --> 58:51.160
look at that, it means that there are at most 2 to the 32 bit

58:51.160 --> 58:58.100
different addresses available and if you look at the number of

58:58.100 --> 59:02.720
computers that we have, the number of hosts well it's not that much so

59:02.720 --> 59:11.200
it's just 2 to the 32 is something like billions of computers we are

59:11.200 --> 59:16.200
beyond that meanwhile and so somehow this cannot be sufficient and so

59:16.200 --> 59:17.980
there is an upgrade of that.

59:18.180 --> 59:25.420
This is actually the so called IP version 4 addressing scheme.

59:25.640 --> 59:31.800
Meanwhile we have available the IP version 6 network addresses.

59:32.320 --> 59:37.040
I will come to that a bit later in the next time probably where I show

59:37.040 --> 59:38.740
you something about IP version 6.

59:38.960 --> 59:40.900
There we have 128 bit addresses.

59:41.220 --> 59:44.580
So much larger repository for addresses.

59:45.420 --> 59:50.080
So this is just mentioning again different characteristics of the

59:50.080 --> 59:56.580
networks and then what's happening locally if you look like this

59:56.580 --> 01:00:01.760
address is or has to be transformed into a physical address of a

01:00:01.760 --> 01:00:06.880
computer into an Ethernet address and this is then a physical address

01:00:06.880 --> 01:00:08.300
which is

01:00:13.080 --> 01:00:16.880
retrieved by transforming the IP address into a physical address that

01:00:16.880 --> 01:00:21.780
is recorded locally, done locally by the address resolution protocol.

01:00:22.240 --> 01:00:26.100
And then we have the physical address, how the host actually is

01:00:26.100 --> 01:00:31.060
addressed in the local area network.

01:00:32.160 --> 01:00:38.280
So now we have the classless inter-domain routing scheme, which is the

01:00:38.280 --> 01:00:41.080
generalization of those five different classes.

01:00:41.800 --> 01:00:46.500
And we also have the IP addressing scheme in IP version six, which is

01:00:46.500 --> 01:00:53.360
more and more now putting into practice or putting into real life.

01:00:53.600 --> 01:00:59.120
It has been around for more than 10 years now, but the process of

01:00:59.120 --> 01:01:01.700
establishing that was very, very, very slow.

01:01:03.260 --> 01:01:08.040
Okay, now if you have just these numbers as addresses, you cannot

01:01:08.040 --> 01:01:09.440
really memorize them.

01:01:09.460 --> 01:01:09.880
I cannot.

01:01:09.880 --> 01:01:14.760
I never know the number of my computer, but I certainly know the name

01:01:14.760 --> 01:01:15.560
of my computer.

01:01:15.840 --> 01:01:19.000
So we have the domain name system.

01:01:19.700 --> 01:01:23.660
And in that domain name system, as you know, we have certain naming

01:01:23.660 --> 01:01:24.280
conventions.

01:01:25.020 --> 01:01:31.220
So here, if I look at aifb.kit, oops, dot not D-E, what is that?

01:01:32.380 --> 01:01:33.360
E-D-U.

01:01:37.880 --> 01:01:39.460
E-D-U.

01:01:41.420 --> 01:01:45.360
Well, now it's visible, E-D-U.

01:01:45.700 --> 01:01:50.620
So corresponds to a certain URL, a certain IP address.

01:01:51.240 --> 01:01:57.060
And to know that aifb is the local, the most local part of that

01:01:57.060 --> 01:01:59.300
domain, kit.edu is a bit larger.

01:01:59.640 --> 01:02:03.980
E-D-U certainly is a larger network of education sites.

01:02:04.620 --> 01:02:12.060
So we have different domains that are established there initially.

01:02:12.660 --> 01:02:16.640
It was just the educational institutions, commercial institutions,

01:02:17.000 --> 01:02:19.520
government institutions, and some organizations.

01:02:20.020 --> 01:02:25.640
We have the country-specific domain names, and we have now all kinds

01:02:25.640 --> 01:02:29.060
of other domain names which are around, which have been established in

01:02:29.060 --> 01:02:29.760
recent years.

01:02:31.240 --> 01:02:37.960
And it certainly is important to be able to use those specific names

01:02:40.770 --> 01:02:43.200
and not have to use always the numbers.

01:02:43.500 --> 01:02:50.780
The only problem is in order to be able to communicate, you need those

01:02:50.780 --> 01:02:51.240
numbers.

01:02:52.200 --> 01:02:56.360
And so in order to actually send information from one location to the

01:02:56.360 --> 01:03:01.880
other, you have to contact the name server, which is providing you

01:03:01.880 --> 01:03:07.060
with the original IP address corresponding to that domain name.

01:03:07.860 --> 01:03:12.020
And if the domain name server is not working, then you cannot

01:03:12.020 --> 01:03:12.480
communicate.

01:03:13.040 --> 01:03:16.380
But if you still know the number, you can communicate.

01:03:16.600 --> 01:03:20.020
So it's quite often there are problems in communication between, or

01:03:20.020 --> 01:03:23.680
because domain name servers are out of service, but if you know the

01:03:23.680 --> 01:03:24.820
numbers, you can still communicate.

01:03:24.820 --> 01:03:29.460
Okay, so this is just looking at the domain name system, very

01:03:29.460 --> 01:03:33.480
important for ease of use of those addresses.

01:03:34.120 --> 01:03:37.880
Initially, when the networks were established, there were several

01:03:37.880 --> 01:03:41.380
different naming schemes and it was very complicated to actually send

01:03:41.380 --> 01:03:44.320
information from one location to another because it needed sequences

01:03:44.320 --> 01:03:48.720
of addresses which had to be arranged in an appropriate way.

01:03:49.960 --> 01:03:57.320
And yeah, what you know is that you can purchase domain names and then

01:03:57.320 --> 01:04:02.440
you have your own domain for your company or your personal use.

01:04:03.220 --> 01:04:07.420
Okay, those were the addresses, the domains, the domain name system.

01:04:07.820 --> 01:04:13.060
And now we come to what I indicated as the header that has to be

01:04:13.060 --> 01:04:19.000
provided by a certain protocol in order to provide the information for

01:04:19.000 --> 01:04:22.180
the receiving side that it knows what to do with that datagram.

01:04:22.420 --> 01:04:22.960
You have a question?

01:04:30.420 --> 01:04:35.520
There will be more domain, so the number of domain or the domain names

01:04:35.520 --> 01:04:40.360
will always be extended by new names.

01:04:40.420 --> 01:04:45.200
As I indicated here, there are some names down there and they are

01:04:45.200 --> 01:04:56.140
managed by those organizations like InterNIC and other organizations

01:04:56.140 --> 01:04:57.160
also in Germany.

01:04:59.680 --> 01:05:02.960
I don't actually understand your question.

01:05:36.590 --> 01:05:37.090
Well, if...

01:05:41.290 --> 01:05:47.270
Yes, so the question was about the different or new developments were

01:05:47.270 --> 01:05:53.230
proprietary domain, like top-level domain names actually were or can

01:05:53.230 --> 01:05:53.810
be registered.

01:05:54.650 --> 01:05:59.430
This certainly makes the management of the systems more complex, but I

01:05:59.430 --> 01:06:02.810
think we have sufficiently powerful systems in the world to deal with

01:06:02.810 --> 01:06:03.090
that.

01:06:04.150 --> 01:06:10.210
It is something which is providing more convenience for the users.

01:06:10.490 --> 01:06:15.990
It makes it like you can have your own domain and then this still has

01:06:15.990 --> 01:06:22.010
to be mapped appropriately to the actual numbers.

01:06:22.810 --> 01:06:27.290
But it's a requirement on the domain name service that they actually

01:06:27.290 --> 01:06:34.890
can build up those large repositories of domain names and actually

01:06:34.890 --> 01:06:42.390
translate the domain names into the numbering systems, either in IP

01:06:42.390 --> 01:06:48.510
version 4 numbers or now in the IP version 6 numbers with 128 bits.

01:06:49.190 --> 01:06:54.590
So this is just making the task of managing the domain names a bit

01:06:54.590 --> 01:07:02.550
more complex, but since our computers are getting more powerful, it is

01:07:02.550 --> 01:07:03.550
feasible to do that.

01:07:03.850 --> 01:07:04.130
Yeah?

01:07:07.240 --> 01:07:11.920
So what kind of information is actually necessary if we look at the IP

01:07:11.920 --> 01:07:12.640
protocol?

01:07:12.860 --> 01:07:15.080
Like what does it have to do?

01:07:15.600 --> 01:07:22.020
I said we have a certain datagram where actually there is already a

01:07:22.020 --> 01:07:24.160
header there from TCP.

01:07:26.460 --> 01:07:28.300
And then we have here certain data.

01:07:29.900 --> 01:07:34.680
And now we put something in front, which is the IP header.

01:07:35.260 --> 01:07:41.300
The IP header is a sequence of, certainly a sequence of 0s and 1s, a

01:07:41.300 --> 01:07:42.000
sequence of bytes.

01:07:42.480 --> 01:07:44.860
This is organized into 32-bit words.

01:07:45.160 --> 01:07:49.220
So 32-bit, we know that for a long time we had 32-bit computers.

01:07:49.900 --> 01:07:54.920
So 32-bit is the word size built from, and it's also the address size

01:07:54.920 --> 01:07:58.180
of the IP version 4.

01:07:58.800 --> 01:08:00.440
So we have 32 bits here.

01:08:00.940 --> 01:08:10.360
That means that we have here, as you can see, actually 1, 2, 3, 4, 5

01:08:10.360 --> 01:08:15.380
essential words that have to be in every IP header.

01:08:16.380 --> 01:08:19.000
After that, we have certain optional parts.

01:08:19.000 --> 01:08:23.460
And so the IP header has 20 to 60 bytes.

01:08:25.140 --> 01:08:27.920
So it has at least 20, it may have 60 bytes.

01:08:28.480 --> 01:08:31.200
And now you see all kinds of information on that.

01:08:31.460 --> 01:08:34.240
Version, length, service type, total length, and so on.

01:08:34.860 --> 01:08:42.080
And on, well, here's some more text which I animated in the wrong

01:08:42.080 --> 01:08:42.460
sequence.

01:08:42.800 --> 01:08:45.000
So that's what I just told you.

01:08:45.300 --> 01:08:46.900
That is the structure of the IP datagram.

01:08:47.280 --> 01:08:49.940
And I would like to... Here's the datagram again.

01:08:50.400 --> 01:08:53.640
And I will give you more information on the individual things, why

01:08:53.640 --> 01:08:54.440
they are in there.

01:08:55.140 --> 01:08:58.580
The first thing is that since there are different versions of the IP

01:08:58.580 --> 01:09:03.240
protocol, you have to indicate the version number of the protocol so

01:09:03.240 --> 01:09:07.340
that the receiving side knows how to process that datagram.

01:09:09.300 --> 01:09:11.980
Then you need information on the length.

01:09:11.980 --> 01:09:21.080
I said that the number of words in the header can vary between...

01:09:21.080 --> 01:09:23.980
or the number of bytes between 20 and 60.

01:09:24.520 --> 01:09:28.560
And so you have to specify the length of the header.

01:09:29.700 --> 01:09:34.660
Because then the receiving side knows how much information actually

01:09:34.660 --> 01:09:39.540
has to be looked at and what is the next level information.

01:09:43.040 --> 01:09:45.720
Certainly like 60 bytes is not that much.

01:09:46.140 --> 01:09:48.880
The option part has maximally 40 bytes.

01:09:49.460 --> 01:09:51.080
That is not very much information.

01:09:51.260 --> 01:09:53.360
And there are many things that have to be recorded there.

01:09:53.460 --> 01:09:58.080
For example, different locations that are passed through on the path

01:09:58.080 --> 01:09:59.440
from source to destination.

01:10:00.200 --> 01:10:03.040
There's not that much room for specifying a lot of information there.

01:10:03.180 --> 01:10:07.400
So this is a restriction that was completely sufficient in the early

01:10:07.400 --> 01:10:09.440
days of the Internet, but not nowadays.

01:10:10.200 --> 01:10:11.880
Then the service type.

01:10:12.160 --> 01:10:15.720
This is something which was designed originally, in the original

01:10:15.720 --> 01:10:18.040
version of the IP protocol.

01:10:18.580 --> 01:10:20.820
So it desired quality of service.

01:10:21.340 --> 01:10:23.820
But actually it was never used.

01:10:24.120 --> 01:10:28.920
So the original idea was to look at, for example, priority,

01:10:29.120 --> 01:10:31.700
reliability, throughput, delay.

01:10:32.420 --> 01:10:37.620
You could specify different aspects that should be looked at if you

01:10:37.620 --> 01:10:42.500
decide on how to forward the packet.

01:10:42.700 --> 01:10:44.680
As I said, we have a certain node.

01:10:44.900 --> 01:10:46.460
It gets some message.

01:10:46.920 --> 01:10:50.460
And then there are different possibilities to forward it to next hops.

01:10:51.080 --> 01:10:54.780
Now if you know something about the reliability of those different

01:10:54.780 --> 01:11:02.920
next hops, or next routers, you can decide on the most reliable one.

01:11:03.560 --> 01:11:04.840
Maybe it's not the fastest.

01:11:04.840 --> 01:11:09.620
But if reliability is the major point, then you will use the most

01:11:09.620 --> 01:11:10.380
reliable one.

01:11:11.320 --> 01:11:15.360
You may have some other priority, or you may have throughput, or

01:11:15.360 --> 01:11:15.820
delay.

01:11:16.240 --> 01:11:22.420
So these can be used essentially in the...

01:11:22.420 --> 01:11:24.180
or can be specified in the IP protocol.

01:11:24.680 --> 01:11:33.360
But the protocol usually is not actually taking notice of that.

01:11:33.360 --> 01:11:36.160
So this is something which was there, but not really put into

01:11:36.160 --> 01:11:36.660
practice.

01:11:37.600 --> 01:11:39.080
And then you need more information.

01:11:39.200 --> 01:11:41.580
You need information about the length of the datagram.

01:11:41.900 --> 01:11:48.780
How many bytes are there in the datagram in total?

01:11:49.700 --> 01:11:53.220
Because you have to know how much information you have to look at.

01:11:53.480 --> 01:11:58.220
How much information you have to move on to the next hop, or move on

01:11:58.220 --> 01:11:59.940
to the next layer, to the TCP layer.

01:12:00.820 --> 01:12:05.940
The maximum here is since this is like the length, the total length is

01:12:05.940 --> 01:12:07.960
16 bits.

01:12:08.420 --> 01:12:11.840
So you have 2 to the 16 different bytes.

01:12:13.260 --> 01:12:16.380
And this is the maximum size of the datagram.

01:12:18.000 --> 01:12:22.760
You can have... like I stated here, but this is not really sufficient

01:12:22.760 --> 01:12:23.840
for gigabit networks.

01:12:24.040 --> 01:12:25.440
Why not for gigabit networks?

01:12:25.440 --> 01:12:32.300
Because there you have a lot of information that is sent, and you

01:12:32.300 --> 01:12:33.440
always should have...

01:12:34.460 --> 01:12:39.980
or you should try to reduce the administrative overhead that you have

01:12:39.980 --> 01:12:41.900
to spend for sending information.

01:12:42.600 --> 01:12:49.600
And if you have gigabit networks, then you have to really operate very

01:12:49.600 --> 01:12:52.020
often on those administrative data.

01:12:52.020 --> 01:13:03.500
And it would be more efficient to have larger jumbo datagrams, which

01:13:03.500 --> 01:13:05.600
are larger than those 64 kilobytes.

01:13:06.200 --> 01:13:08.740
So this is large datagrams.

01:13:09.200 --> 01:13:15.020
The normal size of datagrams is rather in the range of 1,500 bytes, or

01:13:15.020 --> 01:13:18.120
just a few thousand bytes.

01:13:19.860 --> 01:13:23.160
Then we have a field which is called identification.

01:13:23.740 --> 01:13:25.000
Why do we need the identification?

01:13:25.820 --> 01:13:27.780
It puts a nice name to the datagram.

01:13:28.100 --> 01:13:32.120
Now this is important, because sometimes you have...

01:13:32.940 --> 01:13:36.880
like maybe that you would like to send data over a certain number of

01:13:36.880 --> 01:13:41.580
hosts, and all of a sudden you notice, well, the next link is not

01:13:41.580 --> 01:13:44.040
capable of accepting large datagrams.

01:13:44.060 --> 01:13:45.400
You have to split the datagram.

01:13:45.880 --> 01:13:49.480
Like we have here one datagram having here all these headers in front.

01:13:50.040 --> 01:13:53.000
Now you have to split that into fragments.

01:13:53.360 --> 01:13:54.540
Let's say three fragments.

01:13:56.120 --> 01:14:01.560
Now fragments means you just chop that datagram into three pieces and

01:14:01.560 --> 01:14:05.620
provide them with different IP headers and send them off.

01:14:06.060 --> 01:14:09.600
Only the first one has the TCP header on it.

01:14:09.840 --> 01:14:10.980
The next ones are just data.

01:14:12.740 --> 01:14:17.320
Now you have to know at the receiving site that you have to reassemble

01:14:17.320 --> 01:14:20.100
those fragments into one original datagram.

01:14:21.060 --> 01:14:22.860
And for that you need the identification.

01:14:23.420 --> 01:14:28.960
So for that you need a name for the datagram, so all the fragments

01:14:28.960 --> 01:14:32.940
have the same name, and then you know how to reassemble the fragments

01:14:32.940 --> 01:14:34.980
into one datagram.

01:14:36.520 --> 01:14:37.820
So that's the identification.

01:14:38.780 --> 01:14:47.800
Certainly you also have to know something about the position of the

01:14:47.800 --> 01:14:53.920
fragments in the datagram because the sequence at which you actually

01:14:53.920 --> 01:14:58.860
receive datagrams or fragments may be different from the sequence at

01:14:58.860 --> 01:14:59.980
which they have been sent out.

01:15:01.500 --> 01:15:04.420
And so several things have to be looked at.

01:15:04.840 --> 01:15:09.080
There's one bit that can be specified here, one flag that can indicate

01:15:09.080 --> 01:15:12.900
that you should not fragment the datagram.

01:15:13.320 --> 01:15:15.760
Things like that might be necessary sometimes.

01:15:16.460 --> 01:15:23.420
So if you have this flag, if this is set, then the IP router must not

01:15:23.420 --> 01:15:37.790
actually continue.

01:15:39.050 --> 01:15:42.290
So you can specify that you don't want to fragment a datagram.

01:15:42.510 --> 01:15:46.710
You also have to indicate whether there will be more fragments.

01:15:47.450 --> 01:15:52.050
So only the last fragment will not have that flag set.

01:15:52.050 --> 01:15:55.710
Because it's the last one, so in this way you can find out what is the

01:15:55.710 --> 01:15:59.810
last fragment actually, at what point in time you actually finished

01:15:59.810 --> 01:16:00.630
with your datagram.

01:16:01.030 --> 01:16:06.630
So the first two here in this example would have this M field set.

01:16:06.990 --> 01:16:09.010
The last one would not have it set.

01:16:09.610 --> 01:16:11.910
Like the headers for those fragments.

01:16:12.910 --> 01:16:16.910
And then there is the fragment offset, which indicates the position of

01:16:16.910 --> 01:16:22.450
the fragment in the datagram in multiples of 8 bytes.

01:16:23.650 --> 01:16:30.830
And so this is just certainly important because you have to know what

01:16:30.830 --> 01:16:36.670
are the positions where a specific datagram has to be put, or where a

01:16:36.670 --> 01:16:40.230
fragment has to be put in order to reconstruct the original datagram.

01:16:40.690 --> 01:16:44.110
So this is fragmentation and how you can deal with fragmentation.

01:16:44.770 --> 01:16:48.930
You need this information in order to be able to actually deal

01:16:48.930 --> 01:16:51.990
appropriately with such a fragmented system.

01:16:53.370 --> 01:16:57.230
And then another point is, another information which is necessary,

01:16:57.430 --> 01:17:01.190
which has to be provided, is the time-to-live indication.

01:17:01.430 --> 01:17:07.170
Time-to-live means that we don't want a situation occurring where a

01:17:07.170 --> 01:17:11.490
datagram is actually moving around in cycles in the network because

01:17:11.490 --> 01:17:14.850
that would lead to an overflow of packets in the network.

01:17:14.850 --> 01:17:19.270
So we have to make sure that a datagram will be discarded after a

01:17:19.270 --> 01:17:19.990
number of hops.

01:17:22.250 --> 01:17:27.590
So this could be in time in seconds, but usually that counts the

01:17:27.590 --> 01:17:28.210
number of hops.

01:17:28.630 --> 01:17:34.930
Usually it's just set to an initial value in the beginning, and then

01:17:34.930 --> 01:17:37.250
it's decremented at every hop.

01:17:37.750 --> 01:17:42.650
And so as soon as it is down to zero, that packet is discarded and not

01:17:42.650 --> 01:17:43.370
forwarded further.

01:17:43.370 --> 01:17:48.870
So it shows that this is a way of automatic garbage collection.

01:17:49.950 --> 01:17:54.890
So old packets just get discarded automatically because their time-to

01:17:54.890 --> 01:17:57.890
-live field will be set to zero at some point.

01:17:58.870 --> 01:18:04.610
And so this is necessary for that purpose for garbage collection.

01:18:05.330 --> 01:18:07.010
Then we have another thing.

01:18:07.070 --> 01:18:07.830
We have the protocol.

01:18:08.830 --> 01:18:14.930
So we have to specify which type or which protocol should be used on

01:18:14.930 --> 01:18:16.190
the next layer.

01:18:16.370 --> 01:18:21.230
So if you are at the destination, it has to be indicated whether the

01:18:21.230 --> 01:18:24.730
next layer protocol, the transport layer, is TCP or UDP.

01:18:25.970 --> 01:18:30.030
UDP is the user datagram protocol which treats the datagrams

01:18:30.030 --> 01:18:33.550
differently from the transport or from the transmission control

01:18:33.550 --> 01:18:33.970
protocol.

01:18:33.970 --> 01:18:40.590
And so this has to be indicated by the next entry there, the protocol.

01:18:41.450 --> 01:18:44.130
Then we have the header checksum.

01:18:44.670 --> 01:18:50.950
This is just providing information on whether some bit errors have

01:18:50.950 --> 01:18:58.290
occurred, for example, on the transport, like while it was moved

01:18:58.290 --> 01:18:58.650
somewhere.

01:18:58.650 --> 01:19:07.110
And so you just look at the sum of all the 16-bit half words in the

01:19:07.110 --> 01:19:12.650
header without this field, and then you use the ones complement of

01:19:12.650 --> 01:19:13.230
that sum.

01:19:13.510 --> 01:19:18.690
And so if you add all the 16-bit fields of the header, the result

01:19:18.690 --> 01:19:25.270
should be zero because the ones complement of the sum of all the other

01:19:25.270 --> 01:19:31.130
fields, if that is added to the sum of all the fields, then you get

01:19:31.130 --> 01:19:37.090
zero upon arrival, or there should be zero upon arrival.

01:19:37.250 --> 01:19:41.010
If you don't get zero as the result of adding up all the 16-bit

01:19:41.010 --> 01:19:45.170
fields, then some error has occurred and you have to discard that

01:19:45.170 --> 01:19:45.510
datagram.

01:19:46.850 --> 01:19:48.370
So this is the header checksum.

01:19:48.970 --> 01:19:50.810
Then there are the addresses.

01:19:51.130 --> 01:19:56.490
You have to know, well, where this datagram actually comes from.

01:19:56.590 --> 01:19:59.490
That's the source address and also the destination address.

01:20:00.630 --> 01:20:04.550
The source address is necessary because some information also may have

01:20:04.550 --> 01:20:12.230
to be communicated back to the source but this is dealt with a

01:20:12.230 --> 01:20:17.910
different protocol, the message control protocol, which will indicate

01:20:17.910 --> 01:20:25.890
the occurrence of certain failures to the source host.

01:20:26.530 --> 01:20:31.730
Then certainly you need the destination address because you have to

01:20:31.730 --> 01:20:35.650
know where to send your datagram to.

01:20:37.470 --> 01:20:42.410
These are the mandatory fields of the header.

01:20:43.130 --> 01:20:48.170
Then you have certain optional parts which may be there but need not

01:20:48.170 --> 01:20:48.730
be there.

01:20:48.730 --> 01:20:51.070
And these are for different purposes.

01:20:51.370 --> 01:20:55.010
For example, for security, you can specify the security level of the

01:20:55.010 --> 01:20:55.390
datagram.

01:20:56.630 --> 01:21:02.530
You cannot really use their encryption or like security is not

01:21:02.530 --> 01:21:06.150
supported in a way that we would nowadays think it's necessary.

01:21:06.410 --> 01:21:11.770
So in the IP version 6, this has changed and security is supported to

01:21:11.770 --> 01:21:13.830
a much larger extent.

01:21:14.510 --> 01:21:20.710
And then an important point is to specify the routing of the datagram.

01:21:21.250 --> 01:21:25.170
Strict routing means it specifies completely the path to follow.

01:21:25.610 --> 01:21:30.370
So it does not leave any options to the routers to decide what the

01:21:30.370 --> 01:21:31.530
next hop should be.

01:21:31.850 --> 01:21:33.350
But here you have strict routing.

01:21:33.490 --> 01:21:37.850
It indicates what is actually the sequence of nodes that have to be

01:21:37.850 --> 01:21:38.690
used there.

01:21:39.310 --> 01:21:42.970
You can also have some loose routing, specify just some routers on the

01:21:42.970 --> 01:21:43.330
path.

01:21:43.990 --> 01:21:48.470
Another thing would be to record the route of your packet, so then you

01:21:48.470 --> 01:21:54.310
can look at the trace later on and notice where your packet actually

01:21:54.310 --> 01:21:54.810
has been.

01:21:55.410 --> 01:22:01.690
This certainly is important for error analysis, for fault analysis.

01:22:02.770 --> 01:22:06.830
You may put in some timestamps, then you know at what time the

01:22:06.830 --> 01:22:08.970
datagram has been at certain locations.

01:22:09.510 --> 01:22:16.450
But all this has to fit into the 40 extra bytes that are available in

01:22:16.450 --> 01:22:17.310
those option paths.

01:22:19.810 --> 01:22:25.670
So the length of the option field is always a multiple of four bytes.

01:22:27.050 --> 01:22:33.190
And so if the options are ending somewhere before that, you have to

01:22:33.190 --> 01:22:36.130
fill up those with additional bits.

01:22:36.930 --> 01:22:39.010
And then this is the end of the header.

01:22:39.290 --> 01:22:41.330
And after that, the data is coming.

01:22:41.330 --> 01:22:47.650
The data may be original data of some fragment of the datagram, or it

01:22:47.650 --> 01:22:52.850
may be just the next header for the TCP protocol.

01:22:54.150 --> 01:22:54.270
Okay.

01:22:55.470 --> 01:22:58.530
So this is all the different fields.

01:22:58.830 --> 01:23:02.050
And as soon as you would remove one of those fields, certain

01:23:02.050 --> 01:23:04.750
functionality could not be provided by the IP protocol.

01:23:05.470 --> 01:23:11.490
So they are all necessary to provide security, like a header checksum

01:23:11.490 --> 01:23:13.510
or fault detection.

01:23:14.150 --> 01:23:15.430
Provide connectivity.

01:23:15.850 --> 01:23:16.650
You need the addresses.

01:23:17.450 --> 01:23:19.130
You need information on the size.

01:23:19.330 --> 01:23:22.450
You need information on whether you can fragment the datagram.

01:23:23.210 --> 01:23:28.310
And you have to make sure that you can get garbage collection.

01:23:28.430 --> 01:23:31.870
The garbage collection is dealt with in a very elegant way by just

01:23:31.870 --> 01:23:35.130
counting down to zero, and then you have...

01:23:35.130 --> 01:23:38.430
or you just discard such a message.

01:23:39.290 --> 01:23:39.970
Okay.

01:23:40.670 --> 01:23:44.950
And now we have to look at how we actually use the information that we

01:23:44.950 --> 01:23:49.150
have in the IP header for routing.

01:23:49.850 --> 01:23:56.830
So this is our node, or router, gets a certain datagram and has to

01:23:56.830 --> 01:24:01.250
decide where to forward or what is the next hop, actually.

01:24:02.130 --> 01:24:07.370
So what the router actually does is it performs a certain router

01:24:07.370 --> 01:24:11.470
algorithm which here is indicated in a very abstract way.

01:24:12.090 --> 01:24:15.250
It's certainly not exactly the routing algorithm that is used, but

01:24:15.250 --> 01:24:16.070
similar to that.

01:24:16.670 --> 01:24:18.730
So what you need is...

01:24:18.730 --> 01:24:20.030
you look at a datagram.

01:24:20.790 --> 01:24:23.690
And then you have to look at the destination address.

01:24:23.910 --> 01:24:27.390
You have to extract the destination address from the datagram from the

01:24:27.390 --> 01:24:29.330
header, from the IP header.

01:24:31.350 --> 01:24:37.630
Then you have the destination address From the destination address,

01:24:38.090 --> 01:24:41.450
you first of all get the network address.

01:24:41.790 --> 01:24:45.710
I told you that we have the part specifying the network address and

01:24:45.710 --> 01:24:46.510
the host address.

01:24:46.870 --> 01:24:49.950
First of all, you have to know to which network you have to send it

01:24:49.950 --> 01:24:50.090
to.

01:24:51.330 --> 01:24:57.410
And then, if that network address is in the list of direct network

01:24:57.410 --> 01:25:02.690
addresses of that host, so if this router here is in some way

01:25:02.690 --> 01:25:08.010
connected to some local area network and you have a direct network

01:25:08.010 --> 01:25:13.790
address there, then you send the datagram to the physical address of

01:25:13.790 --> 01:25:16.530
that host that is specified there.

01:25:16.770 --> 01:25:18.370
So that is the destination address.

01:25:18.930 --> 01:25:22.130
This destination address is transformed into the physical address.

01:25:22.670 --> 01:25:24.170
For example, an Ethernet address.

01:25:24.970 --> 01:25:29.030
And this is then sent locally to the host.

01:25:29.630 --> 01:25:33.950
If it's not in the direct network addresses, then it's some other kind

01:25:33.950 --> 01:25:34.470
of address.

01:25:35.370 --> 01:25:42.030
And then you look at whether the option field has some strict routing

01:25:42.030 --> 01:25:43.190
information.

01:25:43.330 --> 01:25:49.870
If it's strict routing, then you have to send the datagram to the next

01:25:49.870 --> 01:25:55.730
hop that is specified in the strict routing option that's indicated

01:25:55.730 --> 01:25:58.710
here as datagram.option.myroute.

01:25:59.650 --> 01:26:03.050
Some next hop that has to be used there.

01:26:03.810 --> 01:26:07.510
If this is not the case, then you just look it up in your routing

01:26:07.510 --> 01:26:08.030
table.

01:26:08.330 --> 01:26:11.790
You have all kinds of different destinations.

01:26:12.650 --> 01:26:13.710
And you have next links.

01:26:13.810 --> 01:26:18.710
So if the destination is certain, is here some location A, then you

01:26:18.710 --> 01:26:21.370
get to the next link L, next hop.

01:26:21.910 --> 01:26:25.550
And this somehow has to be specified in this routing table.

01:26:26.750 --> 01:26:33.470
And if this network address is not in the routing table, then still

01:26:33.470 --> 01:26:34.550
you have to do something.

01:26:35.010 --> 01:26:38.450
So then you just send the datagram to some default router, and that

01:26:38.450 --> 01:26:42.190
default router has to take care of the further processing of the

01:26:42.190 --> 01:26:42.490
datagram.

01:26:42.670 --> 01:26:44.130
So this is just to make it complete.

01:26:44.850 --> 01:26:47.570
And if all this does not work, then you have to report an error.

01:26:47.930 --> 01:26:51.490
So this is just showing an abstract view of such a routing algorithm.

01:26:51.970 --> 01:26:55.590
And the essential part in there is this routing table.

01:26:56.110 --> 01:27:00.650
And next week we will look at the way we actually set up those routing

01:27:00.650 --> 01:27:02.750
tables by different algorithms.

01:27:03.530 --> 01:27:04.790
Okay, that's it for today.

01:27:04.990 --> 01:27:05.310
Thank you.

