Internet Measurements: a Hands-on Introduction

Brought by: France Université Numerique

Overview

Résumé en français

Ce cours en anglais est une introduction pratique aux mesures de l'internet (métrologie), basée sur des expérimentations réelles sur la plateforme PlanetLab Europe. Y sont abordés différents concepts tels que la topologie des réseaux et le routage, les pertes, la latence, la géolocalisation, la bande passante et les mesures de trafic.

Les vidéos de ce MOOC sont également sous-titrées en français

About This Course

This course is a hands-on introduction to internet measurements. You will learn about measuring the structure of the internet and the routes through that structure, about delays, losses and connectivity, about bandwidth, and about traffic.

You will see how to make these measurements, and you will understand what you can and cannot learn from them. We teach you how to run measurements from any computer. This course provides you with the ability to launch measurements on PlanetLab Europe, a platform consisting of internet connected servers at over 150 locations around the continent.

This course is structured in 5 weeks. Each week, around 6 course sequences will be available with video lectures, supplementary ressources, associated quiz and applicative exercises.

Syllabus

Course Syllabus

  • Week 1: Introduction
  • Week 2: Topology and routes
  • Week 3: Connectivity, losses, latency, and geolocation
  • Week 4: Bandwidth
  • Week 5: Traffic Measurements
Internet Measurements: a Hands-on Introduction
Go to course

Internet Measurements: a Hands-on Introduction

Brought by: France Université Numerique

  • France Université Numerique
  • Free
  • English
  • Certificate Available
  • Certain days
  • All
  • N/A
8.1.2PHP Version207msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (120ms)
    • Application (86.42ms)
    • 1 x Booting (58.07%)
      120.35ms
      1 x Application (41.69%)
      86.42ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed10.3ms
      • select * from `courses` where `slug_en` = 'internet-measurements:-a-hands-on-introduction' limit 1
        8.54ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. internet-measurements:-a-hands-on-introduction
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-06-02 11:31:56' where `id` = 2771
        860μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-06-02 11:31:56
        • 1. 2771
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (30)
        190μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        140μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (128) and `institutions`.`deleted_at` is null
        180μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (47) and `providers`.`deleted_at` is null
        160μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 2762 limit 1
        230μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 2762
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        N3tJDaHN3S4s7SKbxACEHvmRCVr0gPFmSPTRX2tk
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/internet-measurements:-a-hands-on-introdu...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/internet-measurements:-a-hands-on-introduction
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "3.142.99.115" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "3.142.99.115" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "9496a092ed4fb680-ORD" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "3.142.99.115" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "3.142.99.115" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "9496a092ed4fb680-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "12460" "REMOTE_ADDR" => "172.70.126.77" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/en/courses/internet-measurements:-a-hands-on-introduction" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1748863916.2309 "REQUEST_TIME" => 1748863916 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Mon, 02 Jun 2025 11:31:56 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IlMxWFd5ODM1RTZyV0RTTTR0Uy9mcWc9PSIsInZhbHVlIjoiRWo5bzg4OTV0Vnk1cHZiemRkeTVpVHB6MTZqMUxJKzJ1Z1RTUk5XR0g0bktibUVOTWl0SThLOWxpTktTYnR1SVBPaldkL2U5WW5LaFZrdzJtRWpwY2x2Unlxck1aVmtJZkEwNE11OUtwQ3RPaGl1K0hpUTdRN3dIbDl6bFZITkwiLCJtYWMiOiI0OWI0MjQzZjM5ZmM0NTVmNzZjYmFkOTM3ODJiYmI4NGI0ZDBlYTk3ZjBlNzg3ZTE5OTc3MGNjZjhlZmM1N2U0IiwidGFnIjoiIn0%3D; expires=Mon, 02 Jun 2025 13:31:56 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IlMxWFd5ODM1RTZyV0RTTTR0Uy9mcWc9PSIsInZhbHVlIjoiRWo5bzg4OTV0Vnk1cHZiemRkeTVpVHB6MTZqMUxJKzJ1Z1RTUk5XR0g0bktibUVOTWl0SThLOWxpTktTYnR1SVBPaldkL" 1 => "laravel_session=eyJpdiI6InQ2NFlYbnd2SFJpbVhLT0o0M3owVmc9PSIsInZhbHVlIjoiUG1YQ3o2bWVxUEZVNmlBZVlVblNTbmJ1SElPR2RNaitSeVV2MGdYMUFCTElQdkI2bDBteWROQUxBQ1h1Wm4yblRCWVJleUVDM0QvUGN3R1FWNHRTR2RZR1pQeW4wd3RXS0ZZYklnd0hCeFBBRGM5NnZhSnpWVitoL05qVW9pQmciLCJtYWMiOiJhZmI5YjZlY2FjMmIxNWVlZWFmY2M1NjVkY2I0YzAyZTg4MGY1ZTVlOWU5MDg5Njg2ZWNmZjIxMzBkNzBmYTM5IiwidGFnIjoiIn0%3D; expires=Mon, 02 Jun 2025 13:31:56 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6InQ2NFlYbnd2SFJpbVhLT0o0M3owVmc9PSIsInZhbHVlIjoiUG1YQ3o2bWVxUEZVNmlBZVlVblNTbmJ1SElPR2RNaitSeVV2MGdYMUFCTElQdkI2bDBteWROQUxBQ1h1Wm4yblRC" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IlMxWFd5ODM1RTZyV0RTTTR0Uy9mcWc9PSIsInZhbHVlIjoiRWo5bzg4OTV0Vnk1cHZiemRkeTVpVHB6MTZqMUxJKzJ1Z1RTUk5XR0g0bktibUVOTWl0SThLOWxpTktTYnR1SVBPaldkL2U5WW5LaFZrdzJtRWpwY2x2Unlxck1aVmtJZkEwNE11OUtwQ3RPaGl1K0hpUTdRN3dIbDl6bFZITkwiLCJtYWMiOiI0OWI0MjQzZjM5ZmM0NTVmNzZjYmFkOTM3ODJiYmI4NGI0ZDBlYTk3ZjBlNzg3ZTE5OTc3MGNjZjhlZmM1N2U0IiwidGFnIjoiIn0%3D; expires=Mon, 02-Jun-2025 13:31:56 GMT; path=/XSRF-TOKEN=eyJpdiI6IlMxWFd5ODM1RTZyV0RTTTR0Uy9mcWc9PSIsInZhbHVlIjoiRWo5bzg4OTV0Vnk1cHZiemRkeTVpVHB6MTZqMUxJKzJ1Z1RTUk5XR0g0bktibUVOTWl0SThLOWxpTktTYnR1SVBPaldkL" 1 => "laravel_session=eyJpdiI6InQ2NFlYbnd2SFJpbVhLT0o0M3owVmc9PSIsInZhbHVlIjoiUG1YQ3o2bWVxUEZVNmlBZVlVblNTbmJ1SElPR2RNaitSeVV2MGdYMUFCTElQdkI2bDBteWROQUxBQ1h1Wm4yblRCWVJleUVDM0QvUGN3R1FWNHRTR2RZR1pQeW4wd3RXS0ZZYklnd0hCeFBBRGM5NnZhSnpWVitoL05qVW9pQmciLCJtYWMiOiJhZmI5YjZlY2FjMmIxNWVlZWFmY2M1NjVkY2I0YzAyZTg4MGY1ZTVlOWU5MDg5Njg2ZWNmZjIxMzBkNzBmYTM5IiwidGFnIjoiIn0%3D; expires=Mon, 02-Jun-2025 13:31:56 GMT; path=/; httponlylaravel_session=eyJpdiI6InQ2NFlYbnd2SFJpbVhLT0o0M3owVmc9PSIsInZhbHVlIjoiUG1YQ3o2bWVxUEZVNmlBZVlVblNTbmJ1SElPR2RNaitSeVV2MGdYMUFCTElQdkI2bDBteWROQUxBQ1h1Wm4yblRC" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "N3tJDaHN3S4s7SKbxACEHvmRCVr0gPFmSPTRX2tk" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/internet-measurements:-a-hands-on-introduction" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]