4.3 The Internet Protocol, part 2 — Transcript
Full transcript
- 0:00[Music]
- 0:10in the last section we spent quite a bit
- 0:13of time talking about ipv4 addressing
- 0:16and the limitations of a 32-bit ipv4
- 0:20address space in this section the two
- 0:22topics were going to cover network
- 0:24address translation and ipv6 have their
- 0:28origins in the late mid to late 1990s
- 0:30when the networking community really
- 0:32began to understand that the exhaustion
- 0:34of the ipv4 address space was going to
- 0:37be an important concern as we'll see
- 0:40both network address translation and
- 0:42ipv6 have a number of other important
- 0:45advantages as well and are seeing
- 0:47increasingly widespread deployment so
- 0:50let's take a look well let's start with
- 0:53network address translation known as net
- 0:55and here's how that works the idea is
- 0:58pretty simple within a local area
- 1:00network a home network and institutional
- 1:02network and internet cafe all of the
- 1:04devices within that network have an IP
- 1:06address from a special range of
- 1:08addresses known as private IP addresses
- 1:1210.0.0.0 slash 8 is an example of such
- 1:16an address range now data grams that are
- 1:19exchanged between hosts within this
- 1:21network use these addresses as always
- 1:23there is no net involved but what about
- 1:26communication outside of this local area
- 1:28network that's where NAT comes into play
- 1:30in particular all data grams from any of
- 1:34the hosts inside this network and there
- 1:36could be tens hundreds or thousands of
- 1:38such devices that are sent to hosts
- 1:40outside of the network will all use the
- 1:43same single 32 bit IP address so for
- 1:47this example here although all hosts
- 1:50have IP addresses of the form 1000 / 24
- 1:54when their data grams emerge from the
- 1:56router here into the larger Internet
- 1:59they'll all have they'll all use the
- 2:02same single source IP address of 138
- 2:05about 76 29.7 the source port numbers of
- 2:10these outgoing data grams will be
- 2:12remapped
- 2:13as we'll see the implementation and
- 2:16of this translation is performed by this
- 2:18router here which is referred to as an
- 2:21added router and that router or
- 2:22sometimes just as an app box so Frenette
- 2:26all devices in the local network have a
- 2:2932-bit address that comes from one of
- 2:31three what are called private IP address
- 2:34ranges that you see here if you've
- 2:37looked at the IP address on your laptop
- 2:39tablet or computer when you're attached
- 2:41to a home network and institutional
- 2:43network or a cellular network you've
- 2:45maybe seen it has an address in one of
- 2:47these ranges take a look and that has a
- 2:49number of advantages there will only be
- 2:52a single same 32-bit source IP address
- 2:55that will be used for all data grams
- 2:58coming from all hosts behind the net
- 3:00router one can change the addresses of
- 3:03hosts within the local network without
- 3:05having to notify the outside world since
- 3:07they're all drawn from this private
- 3:09address range the network can change
- 3:11ISPs without having to change addresses
- 3:13of devices in the local area network and
- 3:16there are security benefits as well
- 3:18devices inside the local network are not
- 3:21directly addressable by or visible to
- 3:24the outside world so let's see how NAT
- 3:27is implemented well there's three things
- 3:30an added router will need to do first
- 3:33for the outgoing data grams then added
- 3:35router will need to replace the source
- 3:37IP address and port number for every
- 3:39outgoing data Graham with the NAT IP
- 3:42address and a new source port number
- 3:44it's important to know that NAT is
- 3:46transparent both to the local hosts and
- 3:49to the remote hosts all the remote host
- 3:52is going to see is an arriving data
- 3:53Graham it's got an IP address and a port
- 3:55number as usual and the remote host is
- 3:58going to respond using that IP address
- 4:00and port number as usual second the NAT
- 4:04router is going to need to remember
- 4:06every translation pair mapping the local
- 4:09source IP address and local source port
- 4:11number to the NAT IP address and a new
- 4:14source port number this translation will
- 4:16be stored in that translation table in
- 4:19third when data grams arrived from the
- 4:21external internet and are destined for a
- 4:24hosts within the local network the NAT
- 4:26router will need to replace the
- 4:28destination IP address and port number
- 4:30every incoming data gram with the
- 4:33corresponding IP address and source port
- 4:35number stored in the NAT table this will
- 4:38all become clear if we take a look at
- 4:40net in action
- 4:42in this example the local network
- 4:45addresses are in the range 1000 / 24 and
- 4:50the net address used by the router is
- 4:52138 dot 76 that 29.7 we see the net
- 4:58translation table here which is
- 5:00initially empty in step 1 host 1000 dot
- 5:051 sends a Datagram with source port 3 3
- 5:084 5 to destination IP address 128 119
- 5:12dot 4186
- 5:14port 80 it's a web server the data gram
- 5:17reaches the net router which then
- 5:19changes the data gram source IP address
- 5:22from 1000 1 and source port 3 3 4 5 to
- 5:28IP address 138 dot 76 29.7 and source
- 5:33port number 5001 and updates the NAT
- 5:36table accordingly as we see here note
- 5:39that the destination address and port
- 5:40number are both unchanged in the
- 5:42outgoing data Graham in step 3 the
- 5:46remote host is replied note that the
- 5:48reply arrives with a destination address
- 5:51of 138 dot 76 dot 29.7 that's the NAT IP
- 5:56address and destination port 5000 and 1
- 5:59so then that router is now going to have
- 6:02to perform the inverse mapping when the
- 6:04data Graham arrives the router indexes
- 6:06into the NAT table using the destination
- 6:09IP address and destination port number
- 6:11to obtain the local IP address 1000 dot
- 6:15one in the local destination port number
- 6:183 3 4 5 4 the host and the process on
- 6:22that host in the home network the router
- 6:24then rewrites the data Graham's
- 6:26destination address and destination port
- 6:29number and in step 4 forwards the data
- 6:32Graham into the home network well let's
- 6:35wrap up our study of NAT by just noting
- 6:38that at least initially net was pretty
- 6:40controversial we have a network layer
- 6:42device mucking around with port numbers
- 6:44which are really an end host issue and a
- 6:48purist might say well you know if you
- 6:50really want to solve the ipv4 address
- 6:52space deletion problem then let's do it
- 6:54with IP
- 6:55six after all that's why IP six was even
- 6:58developed in the first place and there
- 7:00are complications created by net what if
- 7:03an external host wants to initiate
- 7:04contact to a host behind an added router
- 7:07this problem is known as nat traversal
- 7:09it can be done but honestly it's a
- 7:12pretty ugly hack so while net does have
- 7:16advantages it has disadvantages as well
- 7:18however network operators have really
- 7:21voted with their feet that's widely
- 7:23deployed and very much here to stay for
- 7:25quite a while well next we're going to
- 7:28take a look at IP version 6 and as we've
- 7:32noted the primary motivation for ipv6
- 7:34was the much larger 128-bit address
- 7:37space but there are a number of other
- 7:40important innovations in ipv6 as well
- 7:42and we'll encounter one really new
- 7:45important idea here known as tunneling
- 7:47when we study IP version 6 so let's get
- 7:50started so yes absolutely the main
- 7:54motivation for ipv6 was the need for a
- 7:57much larger address space but there were
- 7:59some other motivations as well first IP
- 8:03headers need to be processed at
- 8:04nanosecond speeds this absolutely wasn't
- 8:06true back in 1981 when ipv4 was
- 8:10standardized but has been true for a
- 8:12while given link line rates ipv6 as
- 8:16we'll see enables fast IP forwarding by
- 8:19simplifying some of the more complicated
- 8:21aspects of ipv4 router processing those
- 8:25arising from variable length headers for
- 8:27example data gram fragmentation and
- 8:29reassembly and the need to recompute the
- 8:31checksum at every hop and secondly until
- 8:35the 1990s the internet was really
- 8:36conceived of as more of a Datagram
- 8:39oriented network the data gram was the
- 8:42primary abstraction however more
- 8:44recently the notion of a flow or we
- 8:47might say a connection between endpoints
- 8:49has become an increasingly important
- 8:52abstraction there's been a desire as
- 8:54we've seen to provide services on a per
- 8:56flow basis not just on a per data gram
- 8:59basis ipv6 raises this notion of a flow
- 9:03to a first-class object by introducing
- 9:06the notion of a flow label into the
- 9:08P header as we'll see next so let's take
- 9:11a quick look at the ipv6 data gram
- 9:13format we see here the hundred and
- 9:16twenty eight bit ipv6 source and
- 9:18destination addresses that we've been
- 9:20discussing we also see the 16 bit flow
- 9:23label field that we just mentioned and
- 9:25it's important to realize that this
- 9:27fields a mechanism for labeling flows
- 9:30but that ipv6 doesn't mandate how it
- 9:33flows defined or how this fields to be
- 9:35used these are really policy issues that
- 9:38are up to the ISP ipv6 provides
- 9:41mechanisms but not policy for flow
- 9:44handling the 8-bit traffic class field
- 9:47is like the type of service field in
- 9:49ipv4 it can be used to give priority to
- 9:52certain data grams within flow or to a
- 9:55particular class of traffic and like the
- 9:57flow label this field is really about
- 9:59mechanism not policy the version payload
- 10:02length hop limit next header or upper
- 10:05layer fields and payload or just as we
- 10:07saw in ipv4 so all of this hopefully
- 10:10looks pretty familiar to you and given
- 10:12that this is pretty familiar then
- 10:14perhaps the more interesting issue then
- 10:16is what fields were in ipv4 but are not
- 10:20in ipv6 in particular there's no
- 10:23checksum fragmentation reassembly or
- 10:26options fields and as we mentioned
- 10:28earlier this makes the header a fixed
- 10:31length and allows for faster processing
- 10:33fragmentation and reassembly needs to be
- 10:35done at the endpoints and options can be
- 10:38accomplished by passing an ipv6 Datagram
- 10:41payload up to an upper layer protocol at
- 10:43the router let's wrap up our discussion
- 10:47of ipv6 by considering the following
- 10:50question if we currently have an ipv4
- 10:53network but eventually want to
- 10:55transition to an ipv6 network how do we
- 10:58actually accomplish that transmission
- 11:00we've seen that ipv4 and ipv6 are very
- 11:04different protocols well do we have a
- 11:07flag day say where everyone transitions
- 11:09from ipv4 to ipv6 globally turn off all
- 11:13of their ipv4 equipment and turn on all
- 11:16their ipv6 equipment well that's
- 11:19difficult for a lot of reasons that
- 11:21you might want to think about instead we
- 11:24really want I P v4 and v6 to coexist to
- 11:28interoperate as routers and host
- 11:30continue to migrate to ipv6 as new
- 11:33equipment is introduced so what we'll
- 11:36have what we do have today is an
- 11:38internet that has some routers that are
- 11:40ipv4 and some routers that are ipv6 and
- 11:44some routers that are both ipv4 and v6
- 11:48but how do we provide this coexistence
- 11:51while keeping the internet running it
- 11:54sort of seems like trying to change the
- 11:56engines on an airplane while that
- 11:57airplane is flying well fortunately it's
- 12:00not that hard
- 12:01and the key technique that's used to
- 12:03allow ipv4 and ipv6 networks to
- 12:07interoperate is known as tunneling and
- 12:10we're going to take a look at that here
- 12:11and the key to tunneling as we'll see is
- 12:13for a data gram say an ipv4 Datagram to
- 12:17contain as its payload an ipv6 Datagram
- 12:22a Datagram inside a Datagram but an ipv6
- 12:25Datagram inside an ipv4 Datagram what's
- 12:29that about that just somehow doesn't
- 12:31sound right well it's actually not as
- 12:34quite as odd as it might sound let's see
- 12:38and here's the way to think about
- 12:39tunneling remember what we learned
- 12:41earlier when we were looking at layering
- 12:43and encapsulation way back in our
- 12:45introduction to networking in this
- 12:47figure here we see two ipv6 routers
- 12:50physically connected by Ethernet the
- 12:53link layer Ethernet frame between these
- 12:55two routers carries an ipv6 Datagram as
- 12:59its payload as we see here this is 100%
- 13:02business as usual nothing new here well
- 13:05now let's take a look at two ipv6
- 13:07routers again but assume that in
- 13:09addition to knowing how to do ipv6 they
- 13:12also know how to do ipv4 just like they
- 13:15know how to do Ethernet and now rather
- 13:18than being connected by Ethernet these
- 13:21two routers are connected to each other
- 13:23these two ipv6 routers are connected to
- 13:26each other by a network of ipv4 routers
- 13:29how do these two ipv6 routers forward an
- 13:32IP Datagram to each other well the
- 13:35answer of course is by using the ipv4
- 13:38network that connects them in this case
- 13:41instead of sending their ipv6 Datagram
- 13:44to each other in an Ethernet frame they
- 13:47simply put their ipv6 Datagram into an
- 13:50ipv4 data gram and address and send that
- 13:55ipv4 Datagram to the other this is the
- 13:58process that's known as tunneling let's
- 14:01take a look at an example well in this
- 14:04example routers a and F are ipv6 only
- 14:08routers C and D are ipv4 only and
- 14:12routers B and E can do both ipv6 and
- 14:15ipv4 let's suppose that ipv6 router a
- 14:19over here on the left needs to send a
- 14:21Datagram an ipv6 Datagram to ipv6 router
- 14:25F let's walk through what happens well
- 14:28ace forwarding table says that ipv6
- 14:31router B is the next hop and so the ipv6
- 14:35Datagram here is forwarded to B and no
- 14:38carefully that this is an ipv6 Datagram
- 14:41the source address is a the destination
- 14:44address is F those are both ipv6
- 14:47addresses and there's also a flow ID
- 14:49field here which
- 14:51only exists in ipv6 so there's nothing
- 14:53new here in getting from A to B but now
- 14:57let's take a look at what happens at
- 14:58router B and this is where it gets
- 15:00interesting
- 15:00it receives the ipv6 Datagram from a
- 15:04sees that the destination is F and that
- 15:08the next hop router in the ipv6 network
- 15:11is router e so that's critical the next
- 15:14hop router in the ipv6 network is e so B
- 15:18needs to say well how do I forward this
- 15:21ipv6 Datagram to e well remember now B
- 15:26and E are connected by an ipv4 network
- 15:29and that's good because B and E both
- 15:32speak ipv4 and ipv6 and are connected by
- 15:36an ipv4 Tunnel and in fact in B's
- 15:39forwarding table there will be an entry
- 15:41that says to get to F forward this
- 15:44through the outgoing interface that's an
- 15:46ipv4 tunnel to eat so B creates an ipv4
- 15:51Datagram addresses that data gram to
- 15:54ease ipv4 address and that's critical
- 15:58puts the ipv6 Datagram as the payload
- 16:01into the ipv4 Datagram and forwards that
- 16:05data gram into the tunnel and let's take
- 16:08a careful look at this ipv4 Datagram
- 16:11that's being forwarded from B to C into
- 16:15the tunnel note that for the ipv4 data
- 16:18gram the source is router B and the
- 16:21destination address is router E that's
- 16:24for the ipv4 Datagram and of course
- 16:26inside that ipv4 Datagram is the ipv6
- 16:30Datagram the original data gram that
- 16:33started from a and that's got a source
- 16:35of a and a destination of F but that's
- 16:38just the payload inside this outermost
- 16:42ipv4 read data gram shown here the ipv4
- 16:47Datagram is then forwarded through the
- 16:49ipv4 network and arrives at E using the
- 16:53mechanisms that we already know really
- 16:54well within the ipv4 network this is
- 16:57really just another ipv4 Datagram and
- 17:01it's addressed to e there's nothing new
- 17:03here at ipv4 destination e e says okay
- 17:07I'm the destination for this ipv4
- 17:10Datagram the read data gram and so it
- 17:13looks inside and finds an ipv6 Datagram
- 17:16it then extracts the ipv6 Datagram looks
- 17:19at the ipv6 destination address F looks
- 17:23up F in its forwarding table and
- 17:25forwards the ipv6 Datagram on the link
- 17:29towards F so in this example we've seen
- 17:32that ipv4 is really sort of considered
- 17:35almost as a link layer technology that
- 17:38directly connects to ipv6 routers the
- 17:41path through the ipv4 network can be
- 17:43thought of abstractly as a tunnel that
- 17:45directly connects the two ipv6 routers
- 17:48and in this way through the use of
- 17:50tunneling both ipv4 and ipv6 can
- 17:54co-exist to forward datagrams end-to-end
- 17:57along a path of mixed ipv4 and ipv6
- 18:01routers the key thing as we've seen here
- 18:04is that at the boundaries between the
- 18:06two types of technologies ipv4 ipv6 we
- 18:10have routers that can do both ipv4 and
- 18:13ipv6 and this is true of all modern
- 18:16routers we'll see later that tunneling
- 18:19is used extensively and cellular
- 18:21networks to support mobility so it's a
- 18:23general and therefore an important
- 18:25concept but you know I found that
- 18:27sometimes it's a difficult concept for
- 18:29students to get their arms around it
- 18:31first so you might want to think about
- 18:33it some or listen to this section again
- 18:35as it's an important technique that
- 18:37transcends just ipv4 ipv6 interoperation
- 18:42well we've seen that ipv6 was
- 18:45standardized in the late 1990s how
- 18:48widely is it deployed today say 25 years
- 18:50later well google reports that almost 30
- 18:53percent of the clients that access it
- 18:55services do so using ipv6 and in the US
- 18:59the National Institute of Standards
- 19:01reports that about a third of all US
- 19:04government domains are ipv6 capable so
- 19:07that's some progress but ipv4 25 years
- 19:11later is still by far the more
- 19:14dominantly use technology and you might
- 19:16think well why is that the case well
- 19:19certainly the widespread deployment of
- 19:21NAT has eased the pressure on the ipv4
- 19:23address space and made the adoption of
- 19:26ipv6 less critical but it's also
- 19:29interesting to think as a contrast about
- 19:31what's changed at the application layer
- 19:33in the last 25 years the emergence of
- 19:36the web social media media streaming
- 19:38gaming telepresence and more that's an
- 19:41amazing amount of change at the
- 19:43application layer and it just shows how
- 19:45easy it is to build to innovate and to
- 19:47deploy at the application layer while
- 19:50building innovating and deploying new
- 19:52well plumbing at the network layer takes
- 19:55a lot longer in this section in the last
- 19:59we've taken a deep dive into the
- 20:00Internet Protocol IP which lies at the
- 20:03heart of the Internet's network layer
- 20:05and we've we've covered a huge amount of
- 20:08ground we looked at the ipv4 data graham
- 20:10format we looked at ipv4 addressing we
- 20:13looked at network address translation
- 20:15and we looked at IP version 6 and so
- 20:17maybe you're feeling almost a little
- 20:19exhausted now but hopefully you've
- 20:21learned a lot coming up next we're going
- 20:23to take a look at generalized forwarding
- 20:26which will really set the foundation
- 20:27nicely for looking at software-defined
- 20:30networking when we take a look at the
- 20:32control plane
- 20:34[Music]
- 20:47[Music]
About this transcript
This page contains the full transcript of 4.3 The Internet Protocol, part 2 by JimKurose, generated from the public captions YouTube serves with the video. The transcript has 3,125 words across 451 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.