piconet

UVic computer science
pan
Posts: 56971
Joined: Mon Sep 11, 2006 10:23 am

piconet

Post by pan »

lives in https://n-gamma.csc.uvic.ca:8080/guacamole now (need vpn and static test username and password to access ;-)

Screen Shot 2020-06-18 at 1.19.53 PM.png
Screen Shot 2020-06-18 at 1.19.53 PM.png (192.12 KiB) Viewed 6013 times

Code: Select all

+----------------------------------------------------------------+
+                    PicoNet  0.01 (Alpha)                       +
+----------------------------------------------------------------+
+ PicoNet is a trivial implementation of  MiniNet with very few  +
+ commands and static topology                                   +
+ Version: 0.01 (Alpha)                                          +
+                                                                + 
+ Usage:                                                         + 
+   exit                          exit piconet shell             + 
+   <hostname> <command>          execute command on host        +
+ Hosts:                                                         +
+    h1 (h1-eth0 192.168.1.100)                                  +
+    h2 (h2-eth0 10.10.1.100)                                    +
+    r  (eth0 192.168.1.1, eth1 10.10.1.1)                       +
+ Example:                                                       +
+   h1 ping h2                                                   + 
+   r tcpdump -n -vvv                                            +
+                                                                +
+ TODO: add checks and restrict commands                         +
+----------------------------------------------------------------+

i.e., h1--r--h2

source code at https://gitlab.csc.uvic.ca/tbednar/csc361-lab-setup

pan
Posts: 56971
Joined: Mon Sep 11, 2006 10:23 am

Re: piconet

Post by pan »

progress

vm: network namespaces-based three-node topology "virtual lab platform" (vlp) prototyped and tested; vm to be minimized for easy provisioning and portability

access: now at https://n-gamma.csc.uvic.ca:8080/guacamole requiring vpn; final deployment most likely web based without vpn, using netlink authentication

storage: now scp from n-gamma (through linux.csc.uvic.ca if off campus); final deployment most likely centered around gitlab, possibly automated through web interface

pan
Posts: 56971
Joined: Mon Sep 11, 2006 10:23 am

Re: piconet

Post by pan »

1 GET READY FOR THE LAB

Objective: Get students ready for the CSc361 Lab with software installed and skills refreshed

On student’s local computer

Students need to have the following software packages installed on their local computer:

WireShark: https://www.wireshark.org/
System requirements: https://www.wireshark.org/docs/wsug_htm ... forms.html

VSCode: https://code.visualstudio.com/ and install additional tools for Python
System requirements: https://code.visualstudio.com/docs/supp ... quirements

If student’s computer does not have Python 3 yet

Python3: https://www.python.org/

And if student’s computer does not have Git support yet

Git: https://git-scm.com/

To interact with the dept GitLab server

To interact with our dept GitLab server (http://gitlab.csc.uvic.ca), please follow https://docs.gitlab.com/ee/gitlab-basic ... g-git.html (replace gitlab.com by gitlab.csc.uvic.ca for the corresponding remote repositories) and local instructions https://itsupport.cs.uvic.ca/services/gitlab/

To access the Virtual Lab (PicoNet)

to be determined

Schedule:

Tutorial 1 (Pre-Lab): Friday, September 11, 2020, 1:30pm, 50 minutes

Instruct students to install required software after the tutorial

Quick refresh on Python programming (learned in CSc110)

Quick refresh on Git (learned in SENG265)

Lab 1: Tuesday/Wednesday, September 15/16, 2020, from 12:30pm and 1:30pm, 50 minutes each, 4 sections in total

Help students with software installation, lab exercises on Python programming and Git interaction

Help students to access the virtual lab, do a simple tcpdump with ping and traceroute in piconet, and retrieve the trace file through gitlab for the local wireshark

Homework 1: due Friday, September 18, 2020

Evaluate student’s skills on Python and Git, and tcpdump and wireshark

Attachments
piconet-gitlab.gif
piconet-gitlab.gif (10.88 KiB) Viewed 5921 times
pan
Posts: 56971
Joined: Mon Sep 11, 2006 10:23 am

Re: piconet

Post by pan »

2 HTTP

Objective: Get students familiar with HTTP, Python Socket, and Client/Server apps

On the virtual lab

Use the http server in Python 3: https://docs.python.org/3/library/http.server.html running on H2 (server)

Use the nc (netcat) in Linux: https://linux.die.net/man/1/nc running on H1 (client)

On student’s local computer

Students will be provided HTTP trace files and use what captured on the virtual lab for analysis with wireshark on their local computer

Students can also use wireshark on their local computer to observe, capture and analyze the traffic and interaction between their local web browser and any Internet web server to get familiar with HTTP

Schedule:

Tutorial 2 (Pre-Lab): Friday, September 18, 2020, 1:30pm, 50 minutes

Python 3 Socket programming: https://docs.python.org/3/howto/sockets.html

Programming Assignment (P1, SWS) Spec go through

Instruct students to use wireshark to observe HTTP traffic on their local computer after the tutorial

Lab 2: Tuesday/Wednesday, September 22/23, 2020

Use nc on H1 to connect to the http server on H2, and interact in plain text to understand the interaction

Code: Select all

H2> python -m http.server 8000

Code: Select all

H1> nc h2-eth0 8000 
GET / HTTP/1.0 
 

Capture the interaction at the virtual router (R), and ship the trace file via gitlab back to the local computer for wireshark

Get students ready to work on Programming Assignment 1 (P1): Simple Web Server (SWS)

Optional: use tc netem (network emulation https://man7.org/linux/man-pages/man8/tc-netem.8.html) to add delay and loss at R, and observe how TCP recovers from packet errors

Code: Select all

R> tc qdisc add dev r-eth0 delay 100ms 20ms distribution normal loss 10% corrupt 10% duplicate 10% reorder 25% 50% gap 5

Homework 2: due Friday, September 25, 2020

Evaluate student’s understanding on HTTP protocol syntax, semantics and sequence

Students shall give a simple design about their P1

Attachments
piconet-http.gif
piconet-http.gif (6.25 KiB) Viewed 5939 times
pan
Posts: 56971
Joined: Mon Sep 11, 2006 10:23 am

Re: piconet

Post by pan »

3 SIMPLE WEB SERVER

Objective: Students implement a Simple Web Server (SWS) based on UDP in Python

On student’s local computer

Students develop their first programming assignment (P1) on their local computer

Students push their code to gitlab.csc.uvic.ca

On the virtual lab

Students pull their code from gitlab.csc.uvic.ca

Students test and debug their code on H2, use nc on H1 to interact with their code, and tcpdump on R

Students push their code (if modified) and packet trace files back to gitlab.csc.uvic.ca

Schedule:

Tutorial 3 (Pre-Lab): Friday, September 25, 2020, 1:30pm, 50 minutes

Suggestion on Student’s P1 design, submission requirement and evaluation expectation

HTTP protocol details and simplification in SWS

Lab 3: Tuesday/Wednesday, September 29/30, 2020

Show students how their P1 shall perform and be evaluated on the virtual lab

Help students with their P1

More advanced HTTP interactions (Persistent HTTP, Multiple TCP, Pipelining, etc)

Homework 3: due Friday, October 2, 2020

Evaluate student’s understanding on their own SWS

P1 due

Attachments
nginx-html.zip
(1.05 KiB) Downloaded 320 times
http-non-persistent.cap
(4.57 KiB) Downloaded 304 times
http-persistent.cap
(3.6 KiB) Downloaded 296 times
Last edited by pan on Sat Aug 22, 2020 8:07 am, edited 2 times in total.
pan
Posts: 56971
Joined: Mon Sep 11, 2006 10:23 am

Re: piconet

Post by pan »

4 DNS AND UDP

Objective: Students get familiar with DNS protocol

We will still use MaraDNS, a recursive DNS server to interact with root, TLD and authoritative DNS servers

On student’s local computer

Students observe DNS traffic on their local computer, which normally interacts with a local DNS server

On the virtual lab

Students observe DNS traffic on the virtual lab, which interacts with root, TLD and authoritative DNS servers

Schedule:

Tutorial 4 (Pre-Lab): Friday, October 2, 2020, 1:30pm, 50 minutes

Last minute reminders on P1 due on Oct 2

Instruct students to use wireshark to observe DNS traffic on their local computer after the tutorial

DNS protocol details

Lab 4: Tuesday/Wednesday, October 6/7, 2020

How to use MaraDNS on the virtual lab

DNS traffic analysis between the local DNS resolver (piconet) and the local DNS server (MaraDNS)

DNS traffic analysis between the local DNS server (MaraDNS) and root, TLD and authoritative DNS servers

Homework 4: due Friday, October 9, 2020

Evaluate student’s understanding on DNS protocol syntax, semantics and sequence

M1

Attachments
dns-iterative.cap
(1.49 KiB) Downloaded 303 times
dns-recursive.cap
(474 Bytes) Downloaded 317 times
piconet-dns.gif
piconet-dns.gif (8.19 KiB) Viewed 5942 times
Last edited by pan on Mon Aug 17, 2020 9:35 pm, edited 1 time in total.
pan
Posts: 56971
Joined: Mon Sep 11, 2006 10:23 am

Re: piconet

Post by pan »

piconet for local testing only

Code: Select all

panmba:~ pan$ git clone https://gitlab.csc.uvic.ca/tbednar/csc361-lab-setup.git
Cloning into 'csc361-lab-setup'...
Username for 'https://gitlab.csc.uvic.ca': pan
Password for 'https://pan@gitlab.csc.uvic.ca': 
remote: Enumerating objects: 24, done.
remote: Counting objects: 100% (24/24), done.
remote: Compressing objects: 100% (24/24), done.
remote: Total 459 (delta 10), reused 0 (delta 0), pack-reused 435
Receiving objects: 100% (459/459), 62.35 KiB | 2.60 MiB/s, done.
Resolving deltas: 100% (238/238), done.
panmba:~ pan$ cd csc361-lab-setup/
panmba:csc361-lab-setup pan$ ls
README.md	bin		cloud-init	docs		etc		html		lib		piconet		systemd
panmba:csc361-lab-setup pan$ ./piconet run
- Checking host for virtualization - may install multipass if not present
- Detecting and installing multipass
- Installing multipass on MacOS
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   645  100   645    0     0   1169      0 --:--:-- --:--:-- --:--:--  1168
100 39.7M  100 39.7M    0     0  1318k      0  0:00:30  0:00:30 --:--:-- 2115k
Password:
installer: Package name is multipass
installer: Installing at base path /
installer: The install was successful.
- Building the piconet VM - please wait - this may take a few minutes
Enter your NetLink ID: pan
Enger your Netlink Password: 
- Creating piconet
Launched: piconet                                                               
- - Waiting for VM piconet to come up                                           
sending incremental file list ./ bin/ bin/caps-sync bin/code-pull bin/code-push bin/code-sync bin/init-clone bin/piconet bin/piconet-setup bin/reset bin/setup etc/ etc/hostconf etc/piconet.conf lib/ lib/functions lib/piconet-functions sent 12,459 bytes received 282 bytes 25,482.00 bytes/sec total size is 11,424 speedup is 0.90 Created symlink /etc/systemd/system/multi-user.target.wants/ttyd.service → /etc/systemd/system/ttyd.service. Created symlink /etc/systemd/system/multi-user.target.wants/piconet.service → /etc/systemd/system/piconet.service. Cloning into '/home/csc361/repo'... remote: Enumerating objects: 24, done. remote: Counting objects: 100% (24/24), done. remote: Compressing objects: 100% (18/18), done. remote: Total 24 (delta 2), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (24/24), done. - Generated UI page to connect to the VM - Generating UI - using 192.168.64.2:7681 in UI html - Starting piconet VM and UI - Starting piconet - - Waiting for VM piconet to come up - Starting UI - Generating UI - using 192.168.64.2:7681 in UI html panmba:~ pan$ multipass --version multipass 1.3.0+mac multipassd 1.3.0+mac panmba:~ pan$ multipass list Name State IPv4 Image piconet Running 192.168.64.2 Ubuntu 18.04 LTS

do NOT run piconet with uvic vpn which times out

Attachments
Screen Shot 2020-07-27 at 4.45.51 PM.png
Screen Shot 2020-07-27 at 4.45.51 PM.png (73.9 KiB) Viewed 5991 times
pan
Posts: 56971
Joined: Mon Sep 11, 2006 10:23 am

Re: piconet

Post by pan »

the currently installed packages in piconet vm image

Code: Select all

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                       Version            Architecture       Description
+++-==========================-==================-==================-==========================================================
ii  accountsservice            0.6.45-1ubuntu1    amd64              query and manipulate user account information
ii  acl                        2.2.52-3build1     amd64              Access control list utilities
ii  acpid                      1:2.0.28-1ubuntu1  amd64              Advanced Configuration and Power Interface event daemon
ii  adduser                    3.116ubuntu1       all                add and remove users and groups
ii  apparmor                   2.12-4ubuntu5.1    amd64              user-space parser utility for AppArmor
ii  apport                     2.20.9-0ubuntu7.15 all                automatically generate crash reports for debugging
ii  apport-symptoms            0.20               all                symptom scripts for apport
ii  apt                        1.6.12ubuntu0.1    amd64              commandline package manager
ii  apt-utils                  1.6.12ubuntu0.1    amd64              package management related utility programs
ii  at                         3.1.20-3.1ubuntu2  amd64              Delayed job execution and batch processing
ii  base-files                 10.1ubuntu2.8      amd64              Debian base system miscellaneous files
ii  base-passwd                3.5.44             amd64              Debian base system master password and group files
ii  bash                       4.4.18-2ubuntu1.2  amd64              GNU Bourne Again SHell
ii  bash-completion            1:2.8-1ubuntu1     all                programmable completion for the bash shell
ii  bc                         1.07.1-2           amd64              GNU bc arbitrary precision calculator language
ii  bcache-tools               1.0.8-2build1      amd64              bcache userspace tools
ii  bind9-host                 1:9.11.3+dfsg-1ubu amd64              DNS lookup utility (deprecated)
ii  bsdmainutils               11.1.2ubuntu1      amd64              collection of more utilities from FreeBSD
ii  bsdutils                   1:2.31.1-0.4ubuntu amd64              basic utilities from 4.4BSD-Lite
ii  btrfs-progs                4.15.1-1build1     amd64              Checksumming Copy on Write Filesystem utilities
ii  btrfs-tools                4.15.1-1build1     amd64              transitional dummy package
ii  busybox-initramfs          1:1.27.2-2ubuntu3. amd64              Standalone shell setup for initramfs
ii  busybox-static             1:1.27.2-2ubuntu3. amd64              Standalone rescue shell with tons of builtin utilities
ii  byobu                      5.125-0ubuntu1     all                text window manager, shell multiplexer, integrated DevOps 
ii  bzip2                      1.0.6-8.1ubuntu0.2 amd64              high-quality block-sorting file compressor - utilities
ii  ca-certificates            20190110~18.04.1   all                Common CA certificates
ii  cloud-guest-utils          0.30-0ubuntu5      all                cloud guest utilities
ii  cloud-init                 20.2-45-g5f7825e2- all                Init scripts for cloud instances
ii  cloud-initramfs-copymods   0.40ubuntu1.1      all                copy initramfs modules into root filesystem for later use
ii  cloud-initramfs-dyn-netcon 0.40ubuntu1.1      all                write a network interface file in /run for BOOTIF
ii  command-not-found          18.04.5            all                Suggest installation of packages in interactive bash sessi
ii  command-not-found-data     18.04.5            amd64              Set of data files for command-not-found.
ii  console-setup              1.178ubuntu2.9     all                console font and keymap setup program
ii  console-setup-linux        1.178ubuntu2.9     all                Linux specific part of console-setup
ii  coreutils                  8.28-1ubuntu1      amd64              GNU core utilities
ii  cpio                       2.12+dfsg-6ubuntu0 amd64              GNU cpio -- a program to manage archives of files
ii  cron                       3.0pl1-128.1ubuntu amd64              process scheduling daemon
ii  cryptsetup                 2:2.0.2-1ubuntu1.1 amd64              disk encryption support - startup scripts
ii  cryptsetup-bin             2:2.0.2-1ubuntu1.1 amd64              disk encryption support - command line tools
ii  curl                       7.58.0-2ubuntu3.9  amd64              command line tool for transferring data with URL syntax
ii  dash                       0.5.8-2.10         amd64              POSIX-compliant shell
ii  dbus                       1.12.2-1ubuntu1.2  amd64              simple interprocess messaging system (daemon and utilities
ii  debconf                    1.5.66ubuntu1      all                Debian configuration management system
ii  debconf-i18n               1.5.66ubuntu1      all                full internationalization support for debconf
ii  debianutils                4.8.4              amd64              Miscellaneous utilities specific to Debian
ii  diffutils                  1:3.6-1            amd64              File comparison utilities
ii  dirmngr                    2.2.4-1ubuntu1.2   amd64              GNU privacy guard - network certificate management service
ii  distro-info-data           0.37ubuntu0.7      all                information about the distributions' releases (data files)
ii  dmeventd                   2:1.02.145-4.1ubun amd64              Linux Kernel Device Mapper event daemon
ii  dmidecode                  3.1-1ubuntu0.1     amd64              SMBIOS/DMI table decoder
ii  dmsetup                    2:1.02.145-4.1ubun amd64              Linux Kernel Device Mapper userspace library
ii  dns-root-data              2018013001         all                DNS root data including root zone and DNSSEC key
ii  dnsmasq-base               2.79-1             amd64              Small caching DNS proxy and DHCP/TFTP server
ii  dnsutils                   1:9.11.3+dfsg-1ubu amd64              Clients provided with BIND
ii  dosfstools                 4.1-1              amd64              utilities for making and checking MS-DOS FAT filesystems
ii  dpkg                       1.19.0.5ubuntu2.3  amd64              Debian package management system
ii  duende                     2.0.13-1.2         amd64              logging daemonizer
ii  e2fsprogs                  1.44.1-1ubuntu1.3  amd64              ext2/ext3/ext4 file system utilities
ii  eatmydata                  105-6              all                Library and utilities designed to disable fsync and friend
ii  ebtables                   2.0.10.4-3.5ubuntu amd64              Ethernet bridge frame table administration
ii  ed                         1.10-2.1           amd64              classic UNIX line editor
ii  efibootmgr                 15-1               amd64              Interact with the EFI Boot Manager
ii  eject                      2.1.5+deb1+cvs2008 amd64              ejects CDs and operates CD-Changers under Linux
ii  ethtool                    1:4.15-0ubuntu1    amd64              display or change Ethernet device settings
ii  fdisk                      2.31.1-0.4ubuntu3. amd64              collection of partitioning utilities
ii  file                       1:5.32-2ubuntu0.4  amd64              Recognize the type of data in a file using "magic" numbers
ii  findutils                  4.6.0+git+20170828 amd64              utilities for finding files--find, xargs
ii  fonts-ubuntu-console       0.83-2             all                console version of the Ubuntu Mono font
ii  friendly-recovery          0.2.38ubuntu1.1    all                Make recovery boot mode more user-friendly
ii  ftp                        0.17-34            amd64              classical file transfer client
ii  fuse                       2.9.7-1ubuntu1     amd64              Filesystem in Userspace
ii  gawk                       1:4.1.4+dfsg-1buil amd64              GNU awk, a pattern scanning and processing language
ii  gcc-8-base:amd64           8.4.0-1ubuntu1~18. amd64              GCC, the GNU Compiler Collection (base package)
ii  gdisk                      1.0.3-1            amd64              GPT fdisk text-mode partitioning tool
ii  geoip-database             20180315-1         all                IP lookup command line tools that use the GeoIP library (c
ii  gettext-base               0.19.8.1-6ubuntu0. amd64              GNU Internationalization utilities for the base system
ii  gir1.2-glib-2.0:amd64      1.56.1-1           amd64              Introspection data for GLib, GObject, Gio and GModule
ii  git                        1:2.17.1-1ubuntu0. amd64              fast, scalable, distributed revision control system
ii  git-man                    1:2.17.1-1ubuntu0. all                fast, scalable, distributed revision control system (manua
ii  gnupg                      2.2.4-1ubuntu1.2   amd64              GNU privacy guard - a free PGP replacement
ii  gnupg-l10n                 2.2.4-1ubuntu1.2   all                GNU privacy guard - localization files
ii  gnupg-utils                2.2.4-1ubuntu1.2   amd64              GNU privacy guard - utility programs
ii  gpg                        2.2.4-1ubuntu1.2   amd64              GNU Privacy Guard -- minimalist public key operations
ii  gpg-agent                  2.2.4-1ubuntu1.2   amd64              GNU privacy guard - cryptographic agent
ii  gpg-wks-client             2.2.4-1ubuntu1.2   amd64              GNU privacy guard - Web Key Service client
ii  gpg-wks-server             2.2.4-1ubuntu1.2   amd64              GNU privacy guard - Web Key Service server
ii  gpgconf                    2.2.4-1ubuntu1.2   amd64              GNU privacy guard - core configuration utilities
ii  gpgsm                      2.2.4-1ubuntu1.2   amd64              GNU privacy guard - S/MIME version
ii  gpgv                       2.2.4-1ubuntu1.2   amd64              GNU privacy guard - signature verification tool
ii  grep                       3.1-2build1        amd64              GNU grep, egrep and fgrep
ii  groff-base                 1.22.3-10          amd64              GNU troff text-formatting system (base system components)
ii  grub-common                2.02-2ubuntu8.15   amd64              GRand Unified Bootloader (common files)
ii  grub-efi-amd64             2.02-2ubuntu8.15   amd64              GRand Unified Bootloader, version 2 (EFI-AMD64 version)
ii  grub-efi-amd64-bin         2.02-2ubuntu8.15   amd64              GRand Unified Bootloader, version 2 (EFI-AMD64 binaries)
ii  grub-efi-amd64-signed      1.93.16+2.02-2ubun amd64              GRand Unified Bootloader, version 2 (EFI-AMD64 version, si
ii  grub-legacy-ec2            1:1                all                Handles update-grub for ec2 instances
rc  grub-pc                    2.02-2ubuntu8.15   amd64              GRand Unified Bootloader, version 2 (PC/BIOS version)
ii  grub-pc-bin                2.02-2ubuntu8.15   amd64              GRand Unified Bootloader, version 2 (PC/BIOS binaries)
ii  grub2-common               2.02-2ubuntu8.15   amd64              GRand Unified Bootloader (common files for version 2)
ii  gzip                       1.6-5ubuntu1       amd64              GNU compression utilities
ii  hdparm                     9.54+ds-1          amd64              tune hard disk parameters for high performance
ii  hostname                   3.20               amd64              utility to set/show the host name or domain name
ii  htop                       2.1.0-3            amd64              interactive processes viewer
ii  info                       6.5.0.dfsg.1-2     amd64              Standalone GNU Info documentation browser
ii  init                       1.51               amd64              metapackage ensuring an init system is installed
ii  init-system-helpers        1.51               all                helper tools for all init systems
ii  initramfs-tools            0.130ubuntu3.9     all                generic modular initramfs generator (automation)
ii  initramfs-tools-bin        0.130ubuntu3.9     amd64              binaries used by initramfs-tools
ii  initramfs-tools-core       0.130ubuntu3.9     all                generic modular initramfs generator (core tools)
ii  install-info               6.5.0.dfsg.1-2     amd64              Manage installed documentation in info format
ii  iperf                      2.0.10+dfsg1-1ubun amd64              Internet Protocol bandwidth measuring tool
ii  iproute2                   4.15.0-2ubuntu1.1  amd64              networking and traffic control tools
ii  iptables                   1.6.1-2ubuntu2     amd64              administration tools for packet filtering and NAT
ii  iputils-ping               3:20161105-1ubuntu amd64              Tools to test the reachability of network hosts
ii  iputils-tracepath          3:20161105-1ubuntu amd64              Tools to trace the network path to a remote host
ii  irqbalance                 1.3.0-0.1ubuntu0.1 amd64              Daemon to balance interrupts for SMP systems
ii  isc-dhcp-client            4.3.5-3ubuntu7.1   amd64              DHCP client for automatically obtaining an IP address
ii  isc-dhcp-common            4.3.5-3ubuntu7.1   amd64              common manpages relevant to all of the isc-dhcp packages
ii  iso-codes                  3.79-1             all                ISO language, territory, currency, script codes and their 
ii  kbd                        2.0.4-2ubuntu1     amd64              Linux console font and keytable utilities
ii  keyboard-configuration     1.178ubuntu2.9     all                system-wide keyboard preferences
ii  klibc-utils                2.0.4-9ubuntu2     amd64              small utilities built with klibc for early boot
ii  kmod                       24-1ubuntu3.4      amd64              tools for managing Linux kernel modules
ii  krb5-locales               1.16-2ubuntu0.1    all                internationalization support for MIT Kerberos
ii  landscape-common           18.01-0ubuntu3.5   amd64              Landscape administration system client - Common files
ii  language-selector-common   0.188.3            all                Language selector for Ubuntu
ii  less                       487-0.1            amd64              pager program similar to more
ii  libaccountsservice0:amd64  0.6.45-1ubuntu1    amd64              query and manipulate user account information - shared lib
ii  libacl1:amd64              2.2.52-3build1     amd64              Access control list shared library
ii  libapparmor1:amd64         2.12-4ubuntu5.1    amd64              changehat AppArmor library
ii  libapt-inst2.0:amd64       1.6.12ubuntu0.1    amd64              deb package format runtime library
ii  libapt-pkg5.0:amd64        1.6.12ubuntu0.1    amd64              package management runtime library
ii  libargon2-0:amd64          0~20161029-1.1     amd64              memory-hard hashing function - runtime library
ii  libasn1-8-heimdal:amd64    7.5.0+dfsg-1       amd64              Heimdal Kerberos - ASN.1 library
ii  libassuan0:amd64           2.5.1-2            amd64              IPC library for the GnuPG components
ii  libatm1:amd64              1:2.5.1-2build1    amd64              shared library for ATM (Asynchronous Transfer Mode)
ii  libattr1:amd64             1:2.4.47-2build1   amd64              Extended attribute shared library
ii  libaudit-common            1:2.8.2-1ubuntu1   all                Dynamic library for security auditing - common files
ii  libaudit1:amd64            1:2.8.2-1ubuntu1   amd64              Dynamic library for security auditing
ii  libbind9-160:amd64         1:9.11.3+dfsg-1ubu amd64              BIND9 Shared Library used by BIND
ii  libblkid1:amd64            2.31.1-0.4ubuntu3. amd64              block device ID library
ii  libbsd0:amd64              0.8.7-1ubuntu0.1   amd64              utility functions from BSD systems - shared library
ii  libbz2-1.0:amd64           1.0.6-8.1ubuntu0.2 amd64              high-quality block-sorting file compressor library - runti
ii  libc-bin                   2.27-3ubuntu1.2    amd64              GNU C Library: Binaries
ii  libc6:amd64                2.27-3ubuntu1.2    amd64              GNU C Library: Shared libraries
ii  libcap-ng0:amd64           0.7.7-3.1          amd64              An alternate POSIX capabilities library
ii  libcap2:amd64              1:2.25-1.2         amd64              POSIX 1003.1e capabilities (library)
ii  libcap2-bin                1:2.25-1.2         amd64              POSIX 1003.1e capabilities (utilities)
ii  libcom-err2:amd64          1.44.1-1ubuntu1.3  amd64              common error description library
ii  libcryptsetup12:amd64      2:2.0.2-1ubuntu1.1 amd64              disk encryption support - shared library
ii  libcurl3-gnutls:amd64      7.58.0-2ubuntu3.9  amd64              easy-to-use client-side URL transfer library (GnuTLS flavo
ii  libcurl4:amd64             7.58.0-2ubuntu3.9  amd64              easy-to-use client-side URL transfer library (OpenSSL flav
ii  libdb5.3:amd64             5.3.28-13.1ubuntu1 amd64              Berkeley v5.3 Database Libraries [runtime]
ii  libdbus-1-3:amd64          1.12.2-1ubuntu1.2  amd64              simple interprocess messaging system (library)
ii  libdebconfclient0:amd64    0.213ubuntu1       amd64              Debian Configuration Management System (C-implementation l
ii  libdevmapper-event1.02.1:a 2:1.02.145-4.1ubun amd64              Linux Kernel Device Mapper event support library
ii  libdevmapper1.02.1:amd64   2:1.02.145-4.1ubun amd64              Linux Kernel Device Mapper userspace library
ii  libdns-export1100          1:9.11.3+dfsg-1ubu amd64              Exported DNS Shared Library
ii  libdns1100:amd64           1:9.11.3+dfsg-1ubu amd64              DNS Shared Library used by BIND
ii  libdrm-common              2.4.101-2~18.04.1  all                Userspace interface to kernel DRM services -- common files
ii  libdrm2:amd64              2.4.101-2~18.04.1  amd64              Userspace interface to kernel DRM services -- runtime
ii  libdumbnet1:amd64          1.12-7build1       amd64              dumb, portable networking library -- shared library
ii  libeatmydata1:amd64        105-6              amd64              Library and utilities to disable fsync and friends - share
ii  libedit2:amd64             3.1-20170329-1     amd64              BSD editline and history libraries
ii  libefiboot1:amd64          34-1               amd64              Library to manage UEFI variables
ii  libefivar1:amd64           34-1               amd64              Library to manage UEFI variables
ii  libelf1:amd64              0.170-0.4ubuntu0.1 amd64              library to read and write ELF files
ii  liberror-perl              0.17025-1          all                Perl module for error/exception handling in an OO-ish way
ii  libestr0:amd64             0.1.10-2.1         amd64              Helper functions for handling strings (lib)
ii  libevent-2.1-6:amd64       2.1.8-stable-4buil amd64              Asynchronous event notification library
ii  libexpat1:amd64            2.2.5-3ubuntu0.2   amd64              XML parsing C library - runtime library
ii  libext2fs2:amd64           1.44.1-1ubuntu1.3  amd64              ext2/ext3/ext4 file system libraries
ii  libfastjson4:amd64         0.99.8-2           amd64              fast json library for C
ii  libfdisk1:amd64            2.31.1-0.4ubuntu3. amd64              fdisk partitioning library
ii  libffi6:amd64              3.2.1-8            amd64              Foreign Function Interface library runtime
ii  libfreetype6:amd64         2.8.1-2ubuntu2     amd64              FreeType 2 font engine, shared library files
ii  libfribidi0:amd64          0.19.7-2           amd64              Free Implementation of the Unicode BiDi algorithm
ii  libfuse2:amd64             2.9.7-1ubuntu1     amd64              Filesystem in Userspace (library)
ii  libgcc1:amd64              1:8.4.0-1ubuntu1~1 amd64              GCC support library
ii  libgcrypt20:amd64          1.8.1-4ubuntu1.2   amd64              LGPL Crypto library - runtime library
ii  libgdbm-compat4:amd64      1.14.1-6           amd64              GNU dbm database routines (legacy support runtime version)
ii  libgdbm5:amd64             1.14.1-6           amd64              GNU dbm database routines (runtime version) 
ii  libgeoip1:amd64            1.6.12-1           amd64              non-DNS IP-to-country resolver library
ii  libgirepository-1.0-1:amd6 1.56.1-1           amd64              Library for handling GObject introspection data (runtime l
ii  libglib2.0-0:amd64         2.56.4-0ubuntu0.18 amd64              GLib library of C routines
ii  libglib2.0-data            2.56.4-0ubuntu0.18 all                Common files for GLib library
ii  libgmp10:amd64             2:6.1.2+dfsg-2     amd64              Multiprecision arithmetic library
ii  libgnutls30:amd64          3.5.18-1ubuntu1.4  amd64              GNU TLS library - main runtime library
ii  libgpg-error0:amd64        1.27-6             amd64              library for common error values and messages in GnuPG comp
ii  libgpm2:amd64              1.20.7-5           amd64              General Purpose Mouse - shared library
ii  libgssapi-krb5-2:amd64     1.16-2ubuntu0.1    amd64              MIT Kerberos runtime libraries - krb5 GSS-API Mechanism
ii  libgssapi3-heimdal:amd64   7.5.0+dfsg-1       amd64              Heimdal Kerberos - GSSAPI support library
ii  libhcrypto4-heimdal:amd64  7.5.0+dfsg-1       amd64              Heimdal Kerberos - crypto library
ii  libheimbase1-heimdal:amd64 7.5.0+dfsg-1       amd64              Heimdal Kerberos - Base library
ii  libheimntlm0-heimdal:amd64 7.5.0+dfsg-1       amd64              Heimdal Kerberos - NTLM support library
ii  libhogweed4:amd64          3.4-1              amd64              low level cryptographic library (public-key cryptos)
ii  libhx509-5-heimdal:amd64   7.5.0+dfsg-1       amd64              Heimdal Kerberos - X509 support library
ii  libicu60:amd64             60.2-3ubuntu3.1    amd64              International Components for Unicode
ii  libidn11:amd64             1.33-2.1ubuntu1.2  amd64              GNU Libidn library, implementation of IETF IDN specificati
ii  libidn2-0:amd64            2.0.4-1.1ubuntu0.2 amd64              Internationalized domain names (IDNA2008/TR46) library
ii  libip4tc0:amd64            1.6.1-2ubuntu2     amd64              netfilter libip4tc library
ii  libip6tc0:amd64            1.6.1-2ubuntu2     amd64              netfilter libip6tc library
ii  libiptc0:amd64             1.6.1-2ubuntu2     amd64              netfilter libiptc library
ii  libirs160:amd64            1:9.11.3+dfsg-1ubu amd64              DNS Shared Library used by BIND
ii  libisc-export169:amd64     1:9.11.3+dfsg-1ubu amd64              Exported ISC Shared Library
ii  libisc169:amd64            1:9.11.3+dfsg-1ubu amd64              ISC Shared Library used by BIND
ii  libisccc160:amd64          1:9.11.3+dfsg-1ubu amd64              Command Channel Library used by BIND
ii  libisccfg160:amd64         1:9.11.3+dfsg-1ubu amd64              Config File Handling Library used by BIND
ii  libisns0:amd64             0.97-2build1       amd64              Internet Storage Name Service - shared libraries
ii  libjson-c3:amd64           0.12.1-1.3ubuntu0. amd64              JSON manipulation library - shared library
ii  libk5crypto3:amd64         1.16-2ubuntu0.1    amd64              MIT Kerberos runtime libraries - Crypto Library
ii  libkeyutils1:amd64         1.5.9-9.2ubuntu2   amd64              Linux Key Management Utilities (library)
ii  libklibc                   2.0.4-9ubuntu2     amd64              minimal libc subset for use with initramfs
ii  libkmod2:amd64             24-1ubuntu3.4      amd64              libkmod shared library
ii  libkrb5-26-heimdal:amd64   7.5.0+dfsg-1       amd64              Heimdal Kerberos - libraries
ii  libkrb5-3:amd64            1.16-2ubuntu0.1    amd64              MIT Kerberos runtime libraries
ii  libkrb5support0:amd64      1.16-2ubuntu0.1    amd64              MIT Kerberos runtime libraries - Support library
ii  libksba8:amd64             1.3.5-2            amd64              X.509 and CMS support library
ii  libldap-2.4-2:amd64        2.4.45+dfsg-1ubunt amd64              OpenLDAP libraries
ii  libldap-common             2.4.45+dfsg-1ubunt all                OpenLDAP common files for libraries
ii  liblocale-gettext-perl     1.07-3build2       amd64              module using libc functions for internationalization in Pe
ii  liblvm2app2.2:amd64        2.02.176-4.1ubuntu amd64              LVM2 application library
ii  liblvm2cmd2.02:amd64       2.02.176-4.1ubuntu amd64              LVM2 command library
ii  liblwres160:amd64          1:9.11.3+dfsg-1ubu amd64              Lightweight Resolver Library used by BIND
ii  liblxc-common              3.0.3-0ubuntu1~18. amd64              Linux Containers userspace tools (common tools)
ii  liblxc1                    3.0.3-0ubuntu1~18. amd64              Linux Containers userspace tools (library)
ii  liblz4-1:amd64             0.0~r131-2ubuntu3  amd64              Fast LZ compression algorithm library - runtime
ii  liblzma5:amd64             5.2.2-1.3          amd64              XZ-format compression library
ii  liblzo2-2:amd64            2.08-1.2           amd64              data compression library
ii  libmagic-mgc               1:5.32-2ubuntu0.4  amd64              File type determination library using "magic" numbers (com
ii  libmagic1:amd64            1:5.32-2ubuntu0.4  amd64              Recognize the type of data in a file using "magic" numbers
ii  libmnl0:amd64              1.0.4-2            amd64              minimalistic Netlink communication library
ii  libmount1:amd64            2.31.1-0.4ubuntu3. amd64              device mounting library
ii  libmpdec2:amd64            2.4.2-1ubuntu1     amd64              library for decimal floating point arithmetic (runtime lib
ii  libmpfr6:amd64             4.0.1-1            amd64              multiple precision floating-point computation
ii  libmspack0:amd64           0.6-3ubuntu0.3     amd64              library for Microsoft compression formats (shared library)
ii  libncurses5:amd64          6.1-1ubuntu1.18.04 amd64              shared libraries for terminal handling
ii  libncursesw5:amd64         6.1-1ubuntu1.18.04 amd64              shared libraries for terminal handling (wide character sup
ii  libnetfilter-conntrack3:am 1.0.6-2            amd64              Netfilter netlink-conntrack library
ii  libnetplan0:amd64          0.99-0ubuntu3~18.0 amd64              YAML network configuration abstraction runtime library
ii  libnettle6:amd64           3.4-1              amd64              low level cryptographic library (symmetric and one-way cry
ii  libnewt0.52:amd64          0.52.20-1ubuntu1   amd64              Not Erik's Windowing Toolkit - text mode windowing with sl
ii  libnfnetlink0:amd64        1.0.1-3            amd64              Netfilter netlink library
ii  libnghttp2-14:amd64        1.30.0-1ubuntu1    amd64              library implementing HTTP/2 protocol (shared library)
ii  libnih1:amd64              1.0.3-6ubuntu2     amd64              NIH Utility Library
ii  libnpth0:amd64             1.5-3              amd64              replacement for GNU Pth using system threads
ii  libnss-systemd:amd64       237-3ubuntu10.41   amd64              nss module providing dynamic user and group name resolutio
ii  libntfs-3g88               1:2017.3.23-2ubunt amd64              read/write NTFS driver for FUSE (runtime library)
ii  libnuma1:amd64             2.0.11-2.1ubuntu0. amd64              Libraries for controlling NUMA policy
ii  libp11-kit0:amd64          0.23.9-2           amd64              library for loading and coordinating access to PKCS#11 mod
ii  libpam-cap:amd64           1:2.25-1.2         amd64              POSIX 1003.1e capabilities (PAM module)
ii  libpam-modules:amd64       1.1.8-3.6ubuntu2.1 amd64              Pluggable Authentication Modules for PAM
ii  libpam-modules-bin         1.1.8-3.6ubuntu2.1 amd64              Pluggable Authentication Modules for PAM - helper binaries
ii  libpam-runtime             1.1.8-3.6ubuntu2.1 all                Runtime support for the PAM library
ii  libpam-systemd:amd64       237-3ubuntu10.41   amd64              system and service manager - PAM module
ii  libpam0g:amd64             1.1.8-3.6ubuntu2.1 amd64              Pluggable Authentication Modules library
ii  libparted2:amd64           3.2-20ubuntu0.2    amd64              disk partition manipulator - shared library
ii  libpcap0.8:amd64           1.8.1-6ubuntu1.18. amd64              system interface for user-level packet capture
ii  libpci3:amd64              1:3.5.2-1ubuntu1.1 amd64              Linux PCI Utilities (shared library)
ii  libpcre3:amd64             2:8.39-9           amd64              Old Perl 5 Compatible Regular Expression Library - runtime
ii  libperl5.26:amd64          5.26.1-6ubuntu0.3  amd64              shared Perl library
ii  libpipeline1:amd64         1.5.0-1            amd64              pipeline manipulation library
ii  libplymouth4:amd64         0.9.3-1ubuntu7.18. amd64              graphical boot animation and logger - shared libraries
ii  libpng16-16:amd64          1.6.34-1ubuntu0.18 amd64              PNG library - runtime (version 1.6)
ii  libpolkit-agent-1-0:amd64  0.105-20ubuntu0.18 amd64              PolicyKit Authentication Agent API
ii  libpolkit-backend-1-0:amd6 0.105-20ubuntu0.18 amd64              PolicyKit backend API
ii  libpolkit-gobject-1-0:amd6 0.105-20ubuntu0.18 amd64              PolicyKit Authorization API
ii  libpopt0:amd64             1.16-11            amd64              lib for parsing cmdline parameters
ii  libprocps6:amd64           2:3.3.12-3ubuntu1. amd64              library for accessing process information from /proc
ii  libpsl5:amd64              0.19.1-5build1     amd64              Library for Public Suffix List (shared libraries)
ii  libpython-stdlib:amd64     2.7.15~rc1-1       amd64              interactive high-level object-oriented language (default p
ii  libpython2.7-minimal:amd64 2.7.17-1~18.04ubun amd64              Minimal subset of the Python language (version 2.7)
ii  libpython2.7-stdlib:amd64  2.7.17-1~18.04ubun amd64              Interactive high-level object-oriented language (standard 
ii  libpython3-stdlib:amd64    3.6.7-1~18.04      amd64              interactive high-level object-oriented language (default p
ii  libpython3.6:amd64         3.6.9-1~18.04ubunt amd64              Shared Python runtime library (version 3.6)
ii  libpython3.6-minimal:amd64 3.6.9-1~18.04ubunt amd64              Minimal subset of the Python language (version 3.6)
ii  libpython3.6-stdlib:amd64  3.6.9-1~18.04ubunt amd64              Interactive high-level object-oriented language (standard 
ii  libreadline5:amd64         5.2+dfsg-3build1   amd64              GNU readline and history libraries, run-time libraries
ii  libreadline7:amd64         7.0-3              amd64              GNU readline and history libraries, run-time libraries
ii  libroken18-heimdal:amd64   7.5.0+dfsg-1       amd64              Heimdal Kerberos - roken support library
ii  librtmp1:amd64             2.4+20151223.gitfa amd64              toolkit for RTMP streams (shared library)
ii  libsasl2-2:amd64           2.1.27~101-g078060 amd64              Cyrus SASL - authentication abstraction library
ii  libsasl2-modules:amd64     2.1.27~101-g078060 amd64              Cyrus SASL - pluggable authentication modules
ii  libsasl2-modules-db:amd64  2.1.27~101-g078060 amd64              Cyrus SASL - pluggable authentication modules (DB)
ii  libseccomp2:amd64          2.4.3-1ubuntu3.18. amd64              high level interface to Linux seccomp filter
ii  libselinux1:amd64          2.7-2build2        amd64              SELinux runtime shared libraries
ii  libsemanage-common         2.7-2build2        all                Common files for SELinux policy management libraries
ii  libsemanage1:amd64         2.7-2build2        amd64              SELinux policy management library
ii  libsepol1:amd64            2.7-1              amd64              SELinux library for manipulating binary security policies
ii  libsigsegv2:amd64          2.12-1             amd64              Library for handling page faults in a portable way
ii  libslang2:amd64            2.3.1a-3ubuntu1    amd64              S-Lang programming library - runtime version
ii  libsmartcols1:amd64        2.31.1-0.4ubuntu3. amd64              smart column output alignment library
ii  libsqlite3-0:amd64         3.22.0-1ubuntu0.4  amd64              SQLite 3 shared library
ii  libss2:amd64               1.44.1-1ubuntu1.3  amd64              command-line interface parsing library
ii  libssl1.0.0:amd64          1.0.2n-1ubuntu5.3  amd64              Secure Sockets Layer toolkit - shared libraries
ii  libssl1.1:amd64            1.1.1-1ubuntu2.1~1 amd64              Secure Sockets Layer toolkit - shared libraries
ii  libstdc++6:amd64           8.4.0-1ubuntu1~18. amd64              GNU Standard C++ Library v3
ii  libsystemd0:amd64          237-3ubuntu10.41   amd64              systemd utility library
ii  libtasn1-6:amd64           4.13-2             amd64              Manage ASN.1 structures (runtime)
ii  libtext-charwidth-perl     0.04-7.1           amd64              get display widths of characters on the terminal
ii  libtext-iconv-perl         1.7-5build6        amd64              converts between character sets in Perl
ii  libtext-wrapi18n-perl      0.06-7.1           all                internationalized substitute of Text::Wrap
ii  libtinfo5:amd64            6.1-1ubuntu1.18.04 amd64              shared low-level terminfo library for terminal handling
ii  libudev1:amd64             237-3ubuntu10.41   amd64              libudev shared library
ii  libunistring2:amd64        0.9.9-0ubuntu2     amd64              Unicode string library for C
ii  libunwind8:amd64           1.2.1-8            amd64              library to determine the call-chain of a program - runtime
ii  libusb-1.0-0:amd64         2:1.0.21-2         amd64              userspace USB programming library
ii  libutempter0:amd64         1.1.6-3            amd64              privileged helper for utmp/wtmp updates (runtime)
ii  libuuid1:amd64             2.31.1-0.4ubuntu3. amd64              Universally Unique ID library
ii  libuv1:amd64               1.18.0-3           amd64              asynchronous event notification library - runtime library
ii  libwind0-heimdal:amd64     7.5.0+dfsg-1       amd64              Heimdal Kerberos - stringprep implementation
ii  libwrap0:amd64             7.6.q-27           amd64              Wietse Venema's TCP wrappers library
ii  libx11-6:amd64             2:1.6.4-3ubuntu0.2 amd64              X11 client-side library
ii  libx11-data                2:1.6.4-3ubuntu0.2 all                X11 client-side library
ii  libxau6:amd64              1:1.0.8-1ubuntu1   amd64              X11 authorisation library
ii  libxcb1:amd64              1.13-2~ubuntu18.04 amd64              X C Binding
ii  libxdmcp6:amd64            1:1.1.2-3          amd64              X11 Display Manager Control Protocol library
ii  libxext6:amd64             2:1.3.3-1          amd64              X11 miscellaneous extension library
ii  libxml2:amd64              2.9.4+dfsg1-6.1ubu amd64              GNOME XML library
ii  libxmlsec1:amd64           1.2.25-1build1     amd64              XML security library
ii  libxmlsec1-openssl:amd64   1.2.25-1build1     amd64              Openssl engine for the XML security library
ii  libxmuu1:amd64             2:1.1.2-2          amd64              X11 miscellaneous micro-utility library
ii  libxslt1.1:amd64           1.1.29-5ubuntu0.2  amd64              XSLT 1.0 processing library - runtime library
ii  libxtables12:amd64         1.6.1-2ubuntu2     amd64              netfilter xtables library
ii  libyaml-0-2:amd64          0.1.7-2ubuntu3     amd64              Fast YAML 1.1 parser and emitter library
ii  libzstd1:amd64             1.3.3+dfsg-2ubuntu amd64              fast lossless compression algorithm
ii  linux-base                 4.5ubuntu1.2       all                Linux image base package
ii  linux-headers-4.15.0-112   4.15.0-112.113     all                Header files related to Linux kernel version 4.15.0
ii  linux-headers-4.15.0-112-g 4.15.0-112.113     amd64              Linux kernel headers for version 4.15.0 on 64 bit x86 SMP
ii  linux-headers-generic      4.15.0.112.100     amd64              Generic Linux kernel headers
ii  linux-headers-virtual      4.15.0.112.100     amd64              Virtual Linux kernel headers
ii  linux-image-4.15.0-112-gen 4.15.0-112.113     amd64              Signed kernel image generic
ii  linux-image-virtual        4.15.0.112.100     amd64              Virtual Linux kernel image
ii  linux-modules-4.15.0-112-g 4.15.0-112.113     amd64              Linux kernel extra modules for version 4.15.0 on 64 bit x8
ii  linux-virtual              4.15.0.112.100     amd64              Minimal Generic Linux kernel and headers
ii  locales                    2.27-3ubuntu1.2    all                GNU C Library: National Language (locale) data [support]
ii  login                      1:4.5-1ubuntu2     amd64              system login tools
ii  logrotate                  3.11.0-0.1ubuntu1  amd64              Log rotation utility
ii  lsb-base                   9.20170808ubuntu1  all                Linux Standard Base init script functionality
ii  lsb-release                9.20170808ubuntu1  all                Linux Standard Base version reporting utility
ii  lshw                       02.18-0.1ubuntu6.1 amd64              information about hardware configuration
ii  lsof                       4.89+dfsg-0.1      amd64              Utility to list open files
ii  ltrace                     0.7.3-6ubuntu1     amd64              Tracks runtime library calls in dynamically linked program
ii  lvm2                       2.02.176-4.1ubuntu amd64              Linux Logical Volume Manager
ii  lxcfs                      3.0.3-0ubuntu1~18. amd64              FUSE based filesystem for LXC
ii  lxd                        3.0.3-0ubuntu1~18. amd64              Container hypervisor based on LXC - daemon
ii  lxd-client                 3.0.3-0ubuntu1~18. amd64              Container hypervisor based on LXC - client
ii  man-db                     2.8.3-2ubuntu0.1   amd64              on-line manual pager
ii  manpages                   4.15-1             all                Manual pages about using a GNU/Linux system
ii  maradns                    2.0.13-1.2         amd64              simple security-focused authoritative Domain Name Service 
ii  maradns-zoneserver         2.0.13-1.2         amd64              complementary server process to TCP functions for MaraDNS
ii  mawk                       1.3.3-17ubuntu3    amd64              a pattern scanning and text processing language
ii  mdadm                      4.1~rc1-3~ubuntu18 amd64              tool to administer Linux MD arrays (software RAID)
ii  mime-support               3.60ubuntu1        all                MIME files 'mime.types' & 'mailcap', and support programs
ii  mlocate                    0.26-2ubuntu3.1    amd64              quickly find files on the filesystem based on their name
ii  mokutil                    0.3.0+1538710437.f amd64              tools for manipulating machine owner keys
ii  mount                      2.31.1-0.4ubuntu3. amd64              tools for mounting and manipulating filesystems
ii  mtr-tiny                   0.92-1             amd64              Full screen ncurses traceroute tool
ii  multiarch-support          2.27-3ubuntu1.2    amd64              Transitional package to ensure multiarch compatibility
ii  nano                       2.9.3-2            amd64              small, friendly text editor inspired by Pico
ii  ncurses-base               6.1-1ubuntu1.18.04 all                basic terminal type definitions
ii  ncurses-bin                6.1-1ubuntu1.18.04 amd64              terminal-related programs and man pages
ii  ncurses-term               6.1-1ubuntu1.18.04 all                additional terminal type definitions
ii  net-tools                  1.60+git20161116.9 amd64              NET-3 networking toolkit
ii  netbase                    5.4                all                Basic TCP/IP networking system
ii  netcat-openbsd             1.187-1ubuntu0.1   amd64              TCP/IP swiss army knife
ii  netplan.io                 0.99-0ubuntu3~18.0 amd64              YAML network configuration abstraction for various backend
ii  networkd-dispatcher        1.7-0ubuntu3.3     all                Dispatcher service for systemd-networkd connection status 
ii  nplan                      0.99-0ubuntu3~18.0 all                YAML network configuration abstraction - transitional pack
ii  ntfs-3g                    1:2017.3.23-2ubunt amd64              read/write NTFS driver for FUSE
ii  open-iscsi                 2.0.874-5ubuntu2.1 amd64              iSCSI initiator tools
ii  open-vm-tools              2:11.0.5-4ubuntu0. amd64              Open VMware Tools for virtual machines hosted on VMware (C
ii  openssh-client             1:7.6p1-4ubuntu0.3 amd64              secure shell (SSH) client, for secure access to remote mac
ii  openssh-server             1:7.6p1-4ubuntu0.3 amd64              secure shell (SSH) server, for secure access from remote m
ii  openssh-sftp-server        1:7.6p1-4ubuntu0.3 amd64              secure shell (SSH) sftp server module, for SFTP access fro
ii  openssl                    1.1.1-1ubuntu2.1~1 amd64              Secure Sockets Layer toolkit - cryptographic utility
ii  os-prober                  1.74ubuntu1        amd64              utility to detect other OSes on a set of drives
ii  overlayroot                0.40ubuntu1.1      all                use an overlayfs on top of a read-only root filesystem
ii  parted                     3.2-20ubuntu0.2    amd64              disk partition manipulator
ii  passwd                     1:4.5-1ubuntu2     amd64              change and administer password and group data
ii  pastebinit                 1.5-2              all                command-line pastebin client
ii  patch                      2.7.6-2ubuntu1.1   amd64              Apply a diff file to an original
ii  pciutils                   1:3.5.2-1ubuntu1.1 amd64              Linux PCI Utilities
ii  perl                       5.26.1-6ubuntu0.3  amd64              Larry Wall's Practical Extraction and Report Language
ii  perl-base                  5.26.1-6ubuntu0.3  amd64              minimal Perl system
ii  perl-modules-5.26          5.26.1-6ubuntu0.3  all                Core Perl modules
ii  pinentry-curses            1.1.0-1            amd64              curses-based PIN or pass-phrase entry dialog for GnuPG
ii  plymouth                   0.9.3-1ubuntu7.18. amd64              boot animation, logger and I/O multiplexer
ii  plymouth-theme-ubuntu-text 0.9.3-1ubuntu7.18. amd64              boot animation, logger and I/O multiplexer - ubuntu text t
ii  policykit-1                0.105-20ubuntu0.18 amd64              framework for managing administrative policies and privile
ii  pollinate                  4.33-0ubuntu1~18.0 all                seed the pseudo random number generator
ii  popularity-contest         1.66ubuntu1        all                Vote for your favourite packages automatically
ii  powermgmt-base             1.33               all                common utils for power management
ii  procps                     2:3.3.12-3ubuntu1. amd64              /proc file system utilities
ii  psmisc                     23.1-1ubuntu0.1    amd64              utilities that use the proc file system
ii  publicsuffix               20180223.1310-1    all                accurate, machine-readable list of domain name suffixes
ii  python                     2.7.15~rc1-1       amd64              interactive high-level object-oriented language (default v
ii  python-apt-common          1.6.5ubuntu0.3     all                Python interface to libapt-pkg (locales)
ii  python-minimal             2.7.15~rc1-1       amd64              minimal subset of the Python language (default version)
ii  python2.7                  2.7.17-1~18.04ubun amd64              Interactive high-level object-oriented language (version 2
ii  python2.7-minimal          2.7.17-1~18.04ubun amd64              Minimal subset of the Python language (version 2.7)
ii  python3                    3.6.7-1~18.04      amd64              interactive high-level object-oriented language (default p
ii  python3-apport             2.20.9-0ubuntu7.15 all                Python 3 library for Apport crash report handling
ii  python3-apt                1.6.5ubuntu0.3     amd64              Python 3 interface to libapt-pkg
ii  python3-asn1crypto         0.24.0-1           all                Fast ASN.1 parser and serializer (Python 3)
ii  python3-attr               17.4.0-2           all                Attributes without boilerplate (Python 3)
ii  python3-automat            0.6.0-1            all                Self-service finite-state machines for the programmer on t
ii  python3-blinker            1.4+dfsg1-0.1      all                fast, simple object-to-object and broadcast signaling libr
ii  python3-certifi            2018.1.18-2        all                root certificates for validating SSL certs and verifying T
ii  python3-cffi-backend       1.11.5-1           amd64              Foreign Function Interface for Python 3 calling C code - r
ii  python3-chardet            3.0.4-1            all                universal character encoding detector for Python3
ii  python3-click              6.7-3              all                Simple wrapper around optparse for powerful command line u
ii  python3-colorama           0.3.7-1            all                Cross-platform colored terminal text in Python - Python 3.
ii  python3-commandnotfound    18.04.5            all                Python 3 bindings for command-not-found.
ii  python3-configobj          5.0.6-2            all                simple but powerful config file reader and writer for Pyth
ii  python3-constantly         15.1.0-1           all                Symbolic constants in Python
ii  python3-cryptography       2.1.4-1ubuntu1.3   amd64              Python library exposing cryptographic recipes and primitiv
ii  python3-dbus               1.2.6-1            amd64              simple interprocess messaging system (Python 3 interface)
ii  python3-debconf            1.5.66ubuntu1      all                interact with debconf from Python 3
ii  python3-debian             0.1.32             all                Python 3 modules to work with Debian-related data formats
ii  python3-distro-info        0.18ubuntu0.18.04. all                information about distributions' releases (Python 3 module
ii  python3-distupgrade        1:18.04.37         all                manage release upgrades
ii  python3-gdbm:amd64         3.6.9-1~18.04      amd64              GNU dbm database support for Python 3.x
ii  python3-gi                 3.26.1-2ubuntu1    amd64              Python 3 bindings for gobject-introspection libraries
ii  python3-httplib2           0.9.2+dfsg-1ubuntu all                comprehensive HTTP client library written for Python3
ii  python3-hyperlink          17.3.1-2           all                Immutable, Pythonic, correct URLs.
ii  python3-idna               2.6-1              all                Python IDNA2008 (RFC 5891) handling (Python 3)
ii  python3-incremental        16.10.1-3          all                Library for versioning Python projects.
ii  python3-jinja2             2.10-1ubuntu0.18.0 all                small but fast and easy to use stand-alone template engine
ii  python3-json-pointer       1.10-1             all                resolve JSON pointers - Python 3.x
ii  python3-jsonpatch          1.19+really1.16-1f all                library to apply JSON patches - Python 3.x
ii  python3-jsonschema         2.6.0-2            all                An(other) implementation of JSON Schema (Draft 3 and 4) - 
ii  python3-jwt                1.5.3+ds1-1        all                Python 3 implementation of JSON Web Token
ii  python3-markupsafe         1.0-1build1        amd64              HTML/XHTML/XML string library for Python 3
ii  python3-minimal            3.6.7-1~18.04      amd64              minimal subset of the Python language (default python3 ver
ii  python3-netifaces          0.10.4-0.1build4   amd64              portable network interface information - Python 3.x
ii  python3-newt:amd64         0.52.20-1ubuntu1   amd64              NEWT module for Python3
ii  python3-oauthlib           2.0.6-1            all                generic, spec-compliant implementation of OAuth for Python
ii  python3-openssl            17.5.0-1ubuntu1    all                Python 3 wrapper around the OpenSSL library
ii  python3-pam                0.4.2-13.2ubuntu4  amd64              Python interface to the PAM library
ii  python3-pkg-resources      39.0.1-2           all                Package Discovery and Resource Access using pkg_resources
ii  python3-problem-report     2.20.9-0ubuntu7.15 all                Python 3 library to handle problem reports
ii  python3-pyasn1             0.4.2-3            all                ASN.1 library for Python (Python 3 module)
ii  python3-pyasn1-modules     0.2.1-0.2          all                Collection of protocols modules written in ASN.1 language 
ii  python3-requests           2.18.4-2ubuntu0.1  all                elegant and simple HTTP library for Python3, built for hum
ii  python3-requests-unixsocke 0.1.5-3            all                Use requests to talk HTTP via a UNIX domain socket - Pytho
ii  python3-serial             3.4-2              all                pyserial - module encapsulating access for the serial port
ii  python3-service-identity   16.0.0-2           all                Service identity verification for pyOpenSSL (Python 3 modu
ii  python3-six                1.11.0-2           all                Python 2 and 3 compatibility library (Python 3 interface)
ii  python3-software-propertie 0.96.24.32.13      all                manage the repositories that you install software from
ii  python3-systemd            234-1build1        amd64              Python 3 bindings for systemd
ii  python3-twisted            17.9.0-2ubuntu0.1  all                Event-based framework for internet applications
ii  python3-twisted-bin:amd64  17.9.0-2ubuntu0.1  amd64              Event-based framework for internet applications
ii  python3-update-manager     1:18.04.11.13      all                python 3.x module for update-manager
ii  python3-urllib3            1.22-1ubuntu0.18.0 all                HTTP library with thread-safe connection pooling for Pytho
ii  python3-yaml               3.12-1build2       amd64              YAML parser and emitter for Python3
ii  python3-zope.interface     4.3.2-1build2      amd64              Interfaces for Python3
ii  python3.6                  3.6.9-1~18.04ubunt amd64              Interactive high-level object-oriented language (version 3
ii  python3.6-minimal          3.6.9-1~18.04ubunt amd64              Minimal subset of the Python language (version 3.6)
ii  readline-common            7.0-3              all                GNU readline and history libraries, common files
ii  rsync                      3.1.2-2.1ubuntu1.1 amd64              fast, versatile, remote (and local) file-copying tool
ii  rsyslog                    8.32.0-1ubuntu4    amd64              reliable system and kernel logging daemon
ii  run-one                    1.17-0ubuntu1      all                run just one instance of a command and its args at a time
ii  sbsigntool                 0.6-3.2ubuntu2     amd64              Tools to manipulate signatures on UEFI binaries and driver
ii  screen                     4.6.2-1ubuntu1     amd64              terminal multiplexer with VT100/ANSI terminal emulation
ii  secureboot-db              1.4~ubuntu0.18.04. amd64              Secure Boot updates for DB and DBX
ii  sed                        4.4-2              amd64              GNU stream editor for filtering/transforming text
ii  sensible-utils             0.0.12             all                Utilities for sensible alternative selection
ii  shared-mime-info           1.9-2              amd64              FreeDesktop.org shared MIME database and spec
ii  shim                       15+1533136590.3beb amd64              boot loader to chain-load signed boot loaders under Secure
ii  shim-signed                1.37~18.04.3+15+15 amd64              Secure Boot chain-loading bootloader (Microsoft-signed bin
ii  snapd                      2.45.1+18.04.2     amd64              Daemon and tooling that enable snap packages
ii  software-properties-common 0.96.24.32.13      all                manage the repositories that you install software from (co
ii  sosreport                  3.9.1-1ubuntu0.18. amd64              Set of tools to gather troubleshooting data from a system
ii  squashfs-tools             1:4.3-6ubuntu0.18. amd64              Tool to create and append to squashfs filesystems
ii  ssh-import-id              5.7-0ubuntu1.1     all                securely retrieve an SSH public key and install it locally
ii  strace                     4.21-1ubuntu1      amd64              System call tracer
ii  sudo                       1.8.21p2-3ubuntu1. amd64              Provide limited super user privileges to specific users
ii  systemd                    237-3ubuntu10.41   amd64              system and service manager
ii  systemd-sysv               237-3ubuntu10.41   amd64              system and service manager - SysV links
ii  sysvinit-utils             2.88dsf-59.10ubunt amd64              System-V-like utilities
ii  tar                        1.29b-2ubuntu0.1   amd64              GNU version of the tar archiving utility
ii  tcpdump                    4.9.3-0ubuntu0.18. amd64              command-line network traffic analyzer
ii  telnet                     0.17-41            amd64              basic telnet client
ii  time                       1.7-25.1build1     amd64              GNU time program for measuring CPU resource usage
ii  tmux                       2.6-3ubuntu0.2     amd64              terminal multiplexer
ii  traceroute                 1:2.1.0-2          amd64              Traces the route taken by packets over an IPv4/IPv6 networ
ii  tzdata                     2020a-0ubuntu0.18. all                time zone and daylight-saving time data
ii  ubuntu-advantage-tools     17                 all                management tools for Ubuntu Advantage
ii  ubuntu-keyring             2018.09.18.1~18.04 all                GnuPG keys of the Ubuntu archive
ii  ubuntu-minimal             1.417.4            amd64              Minimal core of Ubuntu
ii  ubuntu-release-upgrader-co 1:18.04.37         all                manage release upgrades
ii  ubuntu-server              1.417.4            amd64              The Ubuntu Server system
ii  ubuntu-standard            1.417.4            amd64              The Ubuntu standard system
ii  ucf                        3.0038             all                Update Configuration File(s): preserve user changes to con
ii  udev                       237-3ubuntu10.41   amd64              /dev/ and hotplug management daemon
ii  ufw                        0.36-0ubuntu0.18.0 all                program for managing a Netfilter firewall
ii  uidmap                     1:4.5-1ubuntu2     amd64              programs to help use subuids
ii  unattended-upgrades        1.1ubuntu1.18.04.1 all                automatic installation of security upgrades
ii  update-manager-core        1:18.04.11.13      all                manage release upgrades
ii  update-notifier-common     3.192.1.7          all                Files shared between update-notifier and other packages
ii  ureadahead                 0.100.0-21         amd64              Read required files in advance
ii  usbutils                   1:007-4build1      amd64              Linux USB utilities
ii  util-linux                 2.31.1-0.4ubuntu3. amd64              miscellaneous system utilities
ii  uuid-runtime               2.31.1-0.4ubuntu3. amd64              runtime components for the Universally Unique ID library
ii  vim                        2:8.0.1453-1ubuntu amd64              Vi IMproved - enhanced vi editor
ii  vim-common                 2:8.0.1453-1ubuntu all                Vi IMproved - Common files
ii  vim-runtime                2:8.0.1453-1ubuntu all                Vi IMproved - Runtime files
ii  vim-tiny                   2:8.0.1453-1ubuntu amd64              Vi IMproved - enhanced vi editor - compact version
ii  wget                       1.19.4-1ubuntu2.2  amd64              retrieves files from the web
ii  whiptail                   0.52.20-1ubuntu1   amd64              Displays user-friendly dialog boxes from shell scripts
ii  xauth                      1:1.0.10-1         amd64              X authentication utility
ii  xdelta3                    3.0.11-dfsg-1ubunt amd64              Diff utility which works with binary files
ii  xdg-user-dirs              0.17-1ubuntu1      amd64              tool to manage well known user directories
ii  xfsprogs                   4.9.0+nmu1ubuntu2  amd64              Utilities for managing the XFS filesystem
ii  xkb-data                   2.23.1-1ubuntu1.18 all                X Keyboard Extension (XKB) configuration data
ii  xxd                        2:8.0.1453-1ubuntu amd64              tool to make (or reverse) a hex dump
ii  xz-utils                   5.2.2-1.3          amd64              XZ-format compression utilities
ii  zerofree                   1.0.4-1            amd64              zero free blocks from ext2, ext3 and ext4 file-systems
ii  zlib1g:amd64               1:1.2.11.dfsg-0ubu amd64              compression library - runtime

based on ubuntu 18.04 lts, so probably can be trimmed down a lot further for a smaller vm image too

pan
Posts: 56971
Joined: Mon Sep 11, 2006 10:23 am

Re: piconet

Post by pan »

piconet network setup

on h1

Code: Select all

+----------------------------------------------------------------+
+                    PicoNet  0.01 (Alpha)                       +
+----------------------------------------------------------------+
+ Hosts:                                                         +
+    h1  (h1-eth0 192.168.1.100)                                 +
+    h2  (h2-eth0 10.10.1.100)                                   +
+    r   (eth0 192.168.1.1, eth1 10.10.1.1)                      +
+    dns (172.16.1.1)                                            +
+----------------------------------------------------------------+
root@h1 piconet> ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
4: h1-eth0@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether f2:ab:28:44:c5:38 brd ff:ff:ff:ff:ff:ff link-netnsid 1
    inet 192.168.1.100/24 scope global h1-eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::f0ab:28ff:fe44:c538/64 scope link 
       valid_lft forever preferred_lft forever
root@h1 piconet> ip r
default via 192.168.1.1 dev h1-eth0 
192.168.1.0/24 dev h1-eth0 proto kernel scope link src 192.168.1.100 

h2

Code: Select all

+----------------------------------------------------------------+
+                    PicoNet  0.01 (Alpha)                       +
+----------------------------------------------------------------+
+ Hosts:                                                         +
+    h1  (h1-eth0 192.168.1.100)                                 +
+    h2  (h2-eth0 10.10.1.100)                                   +
+    r   (eth0 192.168.1.1, eth1 10.10.1.1)                      +
+    dns (172.16.1.1)                                            +
+----------------------------------------------------------------+
root@h2 piconet> ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
6: h2-eth0@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 26:75:0b:35:a8:28 brd ff:ff:ff:ff:ff:ff link-netnsid 1
    inet 10.10.1.100/24 scope global h2-eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::2475:bff:fe35:a828/64 scope link 
       valid_lft forever preferred_lft forever
root@h2 piconet> ip r
default via 10.10.1.1 dev h2-eth0 
10.10.1.0/24 dev h2-eth0 proto kernel scope link src 10.10.1.100

and r

Code: Select all

+----------------------------------------------------------------+
+                    PicoNet  0.01 (Alpha)                       +
+----------------------------------------------------------------+
+ Hosts:                                                         +
+    h1  (h1-eth0 192.168.1.100)                                 +
+    h2  (h2-eth0 10.10.1.100)                                   +
+    r   (eth0 192.168.1.1, eth1 10.10.1.1)                      +
+    dns (172.16.1.1)                                            +
+----------------------------------------------------------------+
root@r piconet> ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
3: r-eth0@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 46:c1:fa:d4:1b:07 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.1.1/24 scope global r-eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::44c1:faff:fed4:1b07/64 scope link 
       valid_lft forever preferred_lft forever
5: r-eth1@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether b6:7e:63:58:6f:0f brd ff:ff:ff:ff:ff:ff link-netnsid 1
    inet 10.10.1.1/24 scope global r-eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::b47e:63ff:fe58:6f0f/64 scope link 
       valid_lft forever preferred_lft forever
8: r-eth2@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 6e:c7:ba:70:3f:63 brd ff:ff:ff:ff:ff:ff link-netnsid 2
    inet 172.16.1.1/24 scope global r-eth2
       valid_lft forever preferred_lft forever
    inet6 fe80::6cc7:baff:fe70:3f63/64 scope link 
       valid_lft forever preferred_lft forever
root@r piconet> ip r
default via 172.16.1.2 dev r-eth2 
10.10.1.0/24 dev r-eth1 proto kernel scope link src 10.10.1.1 
172.16.1.0/24 dev r-eth2 proto kernel scope link src 172.16.1.1 
192.168.1.0/24 dev r-eth0 proto kernel scope link src 192.168.1.1 

in piconet

Code: Select all

csc361@ piconet> ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether f6:d2:98:d1:88:71 brd ff:ff:ff:ff:ff:ff
    inet 192.168.64.2/24 brd 192.168.64.255 scope global dynamic enp0s2
       valid_lft 82905sec preferred_lft 82905sec
    inet6 fe80::f4d2:98ff:fed1:8871/64 scope link 
       valid_lft forever preferred_lft forever
7: host-nat@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 92:89:c7:7f:c7:6f brd ff:ff:ff:ff:ff:ff link-netnsid 2
    inet 172.16.1.2/32 scope global host-nat
       valid_lft forever preferred_lft forever
    inet6 fe80::9089:c7ff:fe7f:c76f/64 scope link 
       valid_lft forever preferred_lft forever
csc361@ piconet> ip r
default via 192.168.64.1 dev enp0s2 proto dhcp src 192.168.64.2 metric 100 
172.16.1.0/24 via 172.16.1.2 dev host-nat 
192.168.64.0/24 dev enp0s2 proto kernel scope link src 192.168.64.2 
192.168.64.1 dev enp0s2 proto dhcp scope link src 192.168.64.2 metric 100 

by multipass

Code: Select all

$ multipass ls
Name                    State             IPv4             Image
piconet                 Running           192.168.64.2     Ubuntu 18.04 LTS
$ ifconfig bridge100
bridge100: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	options=3<RXCSUM,TXCSUM>
	ether 32:00:1b:64:09:64 
	inet 192.168.64.1 netmask 0xffffff00 broadcast 192.168.64.255
	Configuration:
		id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
		maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
		root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
		ipfilter disabled flags 0x2
	member: en6 flags=3<LEARNING,DISCOVER>
	        ifmaxaddr 0 port 13 priority 0 path cost 0
	Address cache:
		f6:d2:98:d1:88:71 Vlan1 en6 1198 flags=0<>
	nd6 options=201<PERFORMNUD,DAD>
	media: autoselect
	status: active
$ netstat -nr
Destination        Gateway            Flags        Refs      Use   Netif Expire
192.168.64         link#14            UC              1        0 bridge100
192.168.64.2       f6.d2.98.d1.88.71  UHLWIi          7    26174 bridge100    603
Attachments
piconet.gif
piconet.gif (5.14 KiB) Viewed 5936 times
Last edited by pan on Sun Aug 09, 2020 11:46 am, edited 1 time in total.
pan
Posts: 56971
Joined: Mon Sep 11, 2006 10:23 am

Re: piconet

Post by pan »

5 TCP CONNECTION MANAGEMENT AND FLOW CONTROL

Objective: Students to understand TCP connection management and flow control

We will use iperf2 https://sourceforge.net/projects/iperf2/ available in piconet and other platforms

On student’s local computer

Students can use speedtest.net (port 8080) and wireshark to observe an iperf-like interaction on their computer

On the virtual lab

Students can use iperf (port 5001) directly on H1 (as client) and H2 (server) and observe TCP interaction on R

Schedule:

Tutorial 5 (Pre-Lab): Friday, October 9, 2020, 1:30pm, 50 minutes

P2: Programming assignment 2 (Reliable Datagram Protocol) Spec go through

Instruct students to try speedtest.net and wireshark on their own computer after the tutorial

TCP connect management and flow control

Lab 5: Tuesday/Wednesday, October 13/14, 2020

On H2 (as iperf server, requesting tcp window size 2048 bytes and socket read buffer in 1024 bytes)

[code]root@h2 piconet> iperf -s -w 2048 -l 1024

Server listening on TCP port 5001

TCP window size: 4.00 KByte (WARNING: requested 2.00 KByte)

[ 4] local 10.10.1.100 port 5001 connected with 192.168.1.100 port 60102
[ ID] Interval Transfer Bandwidth
[ 4] 0.0- 0.0 sec 4.00 KBytes 33.6 Mbits/sec [/code] note kernel overrides tcp window size to 4096

On H1 (as iperf client, requesting socket write buffer in 1024 bytes, mss 1024 bytes, for 4096 bytes)

Code: Select all

root@h1 piconet> iperf -c h2 -l 1024 -M 1024 -n 4096 
WARNING: attempt to set TCP maximum segment size to 1024, but got 536 
------------------------------------------------------------ 
Client connecting to h2, TCP port 5001 
TCP window size: 45.0 KByte (default) 
------------------------------------------------------------ 
[  3] local 192.168.1.100 port 60102 connected with 10.10.1.100 port 5001 
[ ID] Interval       Transfer     Bandwidth 
[  3]  0.0- 0.0 sec  4.00 KBytes   158 Mbits/sec 

On R

Code: Select all

root@r piconet> tcpdump -l -i r-eth0 
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode 
listening on r-eth0, link-type EN10MB (Ethernet), capture size 262144 bytes  
15:40:53.623985 IP h1.60102 > h2.5001: Flags [S], seq 3256431, win 65535, options [mss 1024,sackOK,TS val 3003264929 ecr 0,nop,wscale 6], length 0 15:40:53.624037 IP h2.5001 > h1.60102: Flags [S.], seq 2941308794, ack 3256432, win 1448, options [mss 1460,sackOK,TS val 4230682020 ecr 3003264929,nop,wscale 0], length 0 15:40:53.624057 IP h1.60102 > h2.5001: Flags [.], ack 1, win 1024, options [nop,nop,TS val 3003264929 ecr 4230682020], length 0

three-way handshake to establish tcp connection

Code: Select all

15:40:53.624399 IP h1.60102 > h2.5001: Flags [.], seq 1:725, ack 1, win 1024, options [nop,nop,TS val 3003264929 ecr 4230682020], length 724 
15:40:53.624446 IP h2.5001 > h1.60102: Flags [.], ack 725, win 724, options [nop,nop,TS val 4230682020 ecr 3003264929], length 0

first data packet from client and acknowledgment

Code: Select all

15:40:53.624518 IP h1.60102 > h2.5001: Flags [P.], seq 725:1025, ack 1, win 1024, options [nop,nop,TS val 3003264929 ecr 4230682020], length 300 
15:40:53.625162 IP h2.5001 > h1.60102: Flags [.], ack 1025, win 1448, options [nop,nop,TS val 4230682021 ecr 3003264929], length 0

second data packet from client and acknowledgment

Code: Select all

15:40:53.625182 IP h1.60102 > h2.5001: Flags [.], seq 1025:1749, ack 1, win 1024, options [nop,nop,TS val 3003264930 ecr 4230682021], length 724 
15:40:53.625184 IP h1.60102 > h2.5001: Flags [.], seq 1749:2473, ack 1, win 1024, options [nop,nop,TS val 3003264930 ecr 4230682021], length 724 
15:40:53.625478 IP h2.5001 > h1.60102: Flags [.], ack 2473, win 0, options [nop,nop,TS val 4230682021 ecr 3003264930], length 0

the next two data packets that fully occupy the buffer

Code: Select all

15:40:53.625589 IP h2.5001 > h1.60102: Flags [.], ack 2473, win 1448, options [nop,nop,TS val 4230682021 ecr 3003264930], length 0

after application reads, reopen server tcp window

Code: Select all

15:40:53.625601 IP h1.60102 > h2.5001: Flags [.], seq 2473:3197, ack 1, win 1024, options [nop,nop,TS val 3003264930 ecr 4230682021], length 724 
15:40:53.625604 IP h1.60102 > h2.5001: Flags [P.], seq 3197:3921, ack 1, win 1024, options [nop,nop,TS val 3003264930 ecr 4230682021], length 724
15:40:53.625742 IP h2.5001 > h1.60102: Flags [.], ack 3921, win 0, options [nop,nop,TS val 4230682021 ecr 3003264930], length 0

the next two data packets and window closes again

Code: Select all

15:40:53.625867 IP h2.5001 > h1.60102: Flags [.], ack 3921, win 1448, options [nop,nop,TS val 4230682022 ecr 3003264930], length 0

and tcp window reopens again after app reads

Code: Select all

15:40:53.625882 IP h1.60102 > h2.5001: Flags [FP.], seq 3921:4097, ack 1, win 1024, options [nop,nop,TS val 3003264931 ecr 4230682022], length 176

last data packet to close data flow

Code: Select all

15:40:53.639379 IP h2.5001 > h1.60102: Flags [F.], seq 1, ack 4098, win 1448, options [nop,nop,TS val 4230682035 ecr 3003264931], length 0

server acks finish and finishes its own

Code: Select all

15:40:53.639409 IP h1.60102 > h2.5001: Flags [.], ack 2, win 1024, options [nop,nop,TS val 3003264944 ecr 4230682035], length 0

last ack from the client and also the entire connection

Homework 5: due Friday, October 16, 2020

Student shall have a brief design for P2, particularly on connection management and flow control

Attachments
tcp-connection-flow.cap
(7.38 KiB) Downloaded 303 times
Last edited by pan on Sat Aug 22, 2020 12:48 pm, edited 1 time in total.
pan
Posts: 56971
Joined: Mon Sep 11, 2006 10:23 am

Re: piconet

Post by pan »

6 TCP ERROR CONTROL AND RELIABLE DATAGRAM PROTOCOL (RDP)

Objective: Students to understand TCP error control and design and implement RDP

We use tc netem to introduce packet delay, loss, corruption, duplication and reordering for TCP error control

e.g.,

Code: Select all

tc qdisc add dev r-eth0 root netem delay 100ms 20ms distribution normal loss 10% corrupt 10% duplicate 10% reorder 25% 50% gap 5

i.e., normally distributed delay with average 100ms and deviation 20ms, 10% loss, 10% being corrupted, 10% duplicated, and 25% reordering with 50% correlation

On student’s local computer

Windows and MacOS have similar tools to introduce packet impairments such as delay and loss. Linux uses tc

On the virtual lab

For simplicity, we only consider packet loss in this lab, but at a higher than usual loss rate, e.g.,

Code: Select all

tc qdisc add dev r-eth0 root netem loss 50%

Schedule:

Tutorial 6 (Pre-Lab): Friday, October 16, 2020, 1:30pm, 50 minutes

Suggestion on Student’s P2 design, submission requirement and evaluation expectation

Encourage students to try tc netem https://man7.org/linux/man-pages/man8/tc-netem.8.html on Linux, Network Link Conditioner https://nshipster.com/network-link-conditioner/ on MacOS, and Network Emulator for Windows Toolkit (NEWT) on Windows (unfortunately, not available on Windows 10, but third-party equivalents include Clumsy http://get-cmd.com/?p=4056)

TCP error control

Lab 4: Tuesday/Wednesday, October 20/21, 2020

On H2 (as iperf server)

[code]root@h2 piconet> iperf -s -w 2048 -l 1024

Server listening on TCP port 5001

TCP window size: 4.00 KByte (WARNING: requested 2.00 KByte)

[ 4] local 10.10.1.100 port 5001 connected with 192.168.1.100 port 60110
[ ID] Interval Transfer Bandwidth
[ 4] 0.0- 1.6 sec 4.00 KBytes 19.9 Kbits/sec[/code] note much longer time and lower bandwidth (actually throughput) then lab 5

On H1 (as iperf client)

Code: Select all

root@h1 piconet> iperf -c h2 -l 1024 -M 1024 -n 4096 
WARNING: attempt to set TCP maximum segment size to 1024, but got 536 
------------------------------------------------------------ 
Client connecting to h2, TCP port 5001 
TCP window size: 45.0 KByte (default) 
------------------------------------------------------------ 
[  3] local 192.168.1.100 port 60110 connected with 10.10.1.100 port 5001 
[ ID] Interval       Transfer     Bandwidth 
[  3]  0.0- 0.0 sec  4.00 KBytes  33.5 Mbits/sec

On R

Code: Select all

root@r piconet> tcpdump -l -i r-eth0 
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode 
listening on r-eth0, link-type EN10MB (Ethernet), capture size 262144 bytes  
17:19:42.330904 IP h1.60110 > h2.5001: Flags [S], seq 3064778487, win 65535, options [mss 1024,sackOK,TS val 3009198107 ecr 0,nop,wscale 6], length 0 17:19:43.378650 IP h1.60110 > h2.5001: Flags [S], seq 3064778487, win 65535, options [mss 1024,sackOK,TS val 3009199156 ecr 0,nop,wscale 6], length 0

first synchronization packet lost, so retransmitted after timeout (around 1 second) on modern linux

Code: Select all

17:19:43.379137 IP h2.5001 > h1.60110: Flags [S.], seq 322219566, ack 3064778488, win 1448, options [mss 1460,sackOK,TS val 4236616247 ecr 3009198107,nop,wscale 0], length 0 
17:19:43.379170 IP h1.60110 > h2.5001: Flags [.], ack 1, win 1024, options [nop,nop,TS val 3009199156 ecr 4236616247], length 0 
17:19:43.379392 IP h1.60110 > h2.5001: Flags [.], seq 1:725, ack 1, win 1024, options [nop,nop,TS val 3009199157 ecr 4236616247], length 724 
17:19:43.379806 IP h2.5001 > h1.60110: Flags [.], ack 725, win 1448, options [nop,nop,TS val 4236616248 ecr 3009199157], length 0 
17:19:43.379943 IP h1.60110 > h2.5001: Flags [P.], seq 725:1025, ack 1, win 1024, options [nop,nop,TS val 3009199157 ecr 4236616247], length 300 
17:19:43.380083 IP h2.5001 > h1.60110: Flags [.], ack 1025, win 1448, options [nop,nop,TS val 4236616248 ecr 3009199157], length 0 
17:19:43.380171 IP h1.60110 > h2.5001: Flags [.], seq 1025:1749, ack 1, win 1024, options [nop,nop,TS val 3009199157 ecr 4236616248], length 724 
17:19:43.380228 IP h1.60110 > h2.5001: Flags [P.], seq 1749:2049, ack 1, win 1024, options [nop,nop,TS val 3009199157 ecr 4236616248], length 300

data packet lost

Code: Select all

17:19:45.025921 IP h1.60110 > h2.5001: Flags [P.], seq 1749:2049, ack 1, win 1024, options [nop,nop,TS val 3009200805 ecr 4236616248], length 300 
17:19:45.026115 IP h2.5001 > h1.60110: Flags [.], ack 2049, win 1448, options [nop,nop,TS val 4236617897 ecr 3009200805,nop,nop,sack 1 {1749:2049}], length 0

retransmitted and acknowledged

Code: Select all

17:19:45.026149 IP h1.60110 > h2.5001: Flags [.], seq 2049:2773, ack 1, win 1024, options [nop,nop,TS val 3009200806 ecr 4236617897], length 724 
17:19:45.026152 IP h1.60110 > h2.5001: Flags [.], seq 2773:3497, ack 1, win 1024, options [nop,nop,TS val 3009200806 ecr 4236617897], length 724 
17:19:45.026202 IP h2.5001 > h1.60110: Flags [.], ack 2773, win 724, options [nop,nop,TS val 4236617897 ecr 3009200806], length 0 
17:19:45.026418 IP h2.5001 > h1.60110: Flags [.], ack 3497, win 1448, options [nop,nop,TS val 4236617897 ecr 3009200806], length 0 
17:19:45.026434 IP h1.60110 > h2.5001: Flags [FP.], seq 3497:4097, ack 1, win 1024, options [nop,nop,TS val 3009200806 ecr 4236617897], length 600 
17:19:45.044793 IP h2.5001 > h1.60110: Flags [F.], seq 1, ack 4098, win 1448, options [nop,nop,TS val 4236617915 ecr 3009200806], length 0 
17:19:45.044873 IP h1.60110 > h2.5001: Flags [.], ack 2, win 1024, options [nop,nop,TS val 3009200824 ecr 4236617915], length 0

Homework 4: due Friday, October 23, 2020

Student shall have finished their design for P2, including connection management and flow and error control, and started implementation

Attachments
tcp-error-before.cap
(10.48 KiB) Downloaded 286 times
tcp-error-after.cap
(7.41 KiB) Downloaded 293 times
Last edited by pan on Sat Aug 22, 2020 12:52 pm, edited 1 time in total.
pan
Posts: 56971
Joined: Mon Sep 11, 2006 10:23 am

Re: piconet

Post by pan »

7 TCP CONGESTION CONTROL AND FURTHER ON RDP

bidirectional packet loss. tcpdump on r-eth0

Code: Select all

root@r piconet> tc qdisc add dev r-eth0 root netem loss 20% 
root@r piconet> tc qdisc add dev r-eth1 root netem loss 20% 
root@r piconet> tcpdump -l -i r-eth0 
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode 
listening on r-eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 
15:03:12.310941 IP h1.60138 > h2.5001: Flags [S], seq 485904907, win 65535, options [mss 1024,sackOK,TS val 3018342000 ecr 0,nop,wscale 6], length 0
15:03:12.311081 IP h2.5001 > h1.60138: Flags [S.], seq 4195477387, ack 485904908, win 65160, options [mss 1460,sackOK,TS val 4245759091 ecr 3018342000,nop,wscale 6], length 0
15:03:12.311121 IP h1.60138 > h2.5001: Flags [.], ack 1, win 1024, options [nop,nop,TS val 3018342000 ecr 4245759091], length 0

this packet will be dropped by r-eth1

Code: Select all

15:03:12.312480 IP h1.60138 > h2.5001: Flags [P.], seq 1:1025, ack 1, win 1024, options [nop,nop,TS val 3018342002 ecr 4245759091], length 1024
15:03:12.313284 IP h2.5001 > h1.60138: Flags [.], ack 1025, win 1003, options [nop,nop,TS val 4245759093 ecr 3018342002], length 0

first data packet and acknowledgment

Code: Select all

15:03:12.314145 IP h1.60138 > h2.5001: Flags [P.], seq 1025:2049, ack 1, win 1024, options [nop,nop,TS val 3018342003 ecr 4245759093], length 1024
15:03:12.314533 IP h1.60138 > h2.5001: Flags [.], seq 2049:3061, ack 1, win 1024, options [nop,nop,TS val 3018342004 ecr 4245759093], length 1012
15:03:12.314599 IP h2.5001 > h1.60138: Flags [.], ack 3061, win 981, options [nop,nop,TS val 4245759095 ecr 3018342004], length 0

next two data packets (congestion window doubled in slow start) and ack

Code: Select all

15:03:12.314625 IP h1.60138 > h2.5001: Flags [P.], seq 3061:3073, ack 1, win 1024, options [nop,nop,TS val 3018342004 ecr 4245759095], length 12
15:03:12.314703 IP h2.5001 > h1.60138: Flags [.], ack 3073, win 1002, options [nop,nop,TS val 4245759095 ecr 3018342004], length 0
15:03:12.315652 IP h1.60138 > h2.5001: Flags [P.], seq 3073:4097, ack 1, win 1024, options [nop,nop,TS val 3018342005 ecr 4245759095], length 1024
15:03:12.316232 IP h1.60138 > h2.5001: Flags [.], seq 4097:5109, ack 1, win 1024, options [nop,nop,TS val 3018342005 ecr 4245759095], length 1012

this data packet seqno=4097 will be dropped by r-eth1

Code: Select all

15:03:12.316440 IP h1.60138 > h2.5001: Flags [.], seq 5109:6121, ack 1, win 1024, options [nop,nop,TS val 3018342006 ecr 4245759095], length 1012

next four data packets (cwnd is still increased)

Code: Select all

15:03:12.316673 IP h2.5001 > h1.60138: Flags [.], ack 4097, win 996, options [nop,nop,TS val 4245759097 ecr 3018342005,nop,nop,sack 1 {5109:6121}], length 0

sack included due to the lost packet

Code: Select all

15:03:12.316731 IP h1.60138 > h2.5001: Flags [P.], seq 6121:6145, ack 1, win 1024, options [nop,nop,TS val 3018342006 ecr 4245759097], length 24

continue to send new data packet after the sack

Code: Select all

15:03:12.317016 IP h2.5001 > h1.60138: Flags [.], ack 4097, win 996, options [nop,nop,TS val 4245759097 ecr 3018342005,nop,nop,sack 1 {5109:6145}], length 0

sack increased with the new packet

Code: Select all

15:03:12.319233 IP h1.60138 > h2.5001: Flags [.], seq 6145:7157, ack 1, win 1024, options [nop,nop,TS val 3018342008 ecr 4245759097], length 1012
15:03:12.319425 IP h1.60138 > h2.5001: Flags [.], seq 7157:8169, ack 1, win 1024, options [nop,nop,TS val 3018342008 ecr 4245759097], length 1012
15:03:12.319660 IP h1.60138 > h2.5001: Flags [.], seq 8169:9181, ack 1, win 1024, options [nop,nop,TS val 3018342008 ecr 4245759097], length 1012
15:03:12.319896 IP h1.60138 > h2.5001: Flags [.], seq 9181:10193, ack 1, win 1024, options [nop,nop,TS val 3018342008 ecr 4245759097], length 1012

continue to send new data packet after the 2nd sack

Code: Select all

15:03:12.329359 IP h1.60138 > h2.5001: Flags [.], seq 4097:5109, ack 1, win 1024, options [nop,nop,TS val 3018342018 ecr 4245759097], length 1012

retransmit the lost data packet at seqno=4097

Code: Select all

15:03:12.329566 IP h2.5001 > h1.60138: Flags [.], ack 8169, win 983, options [nop,nop,TS val 4245759110 ecr 3018342018], length 0

retransmitted data packet received and acked up to ackno=8169

Code: Select all

15:03:12.329685 IP h1.60138 > h2.5001: Flags [P.], seq 10193:10241, ack 1, win 1024, options [nop,nop,TS val 3018342019 ecr 4245759110], length 48

last data packet for a total of 10240 bytes tx'ed

Code: Select all

15:03:12.330142 IP h2.5001 > h1.60138: Flags [.], ack 8169, win 983, options [nop,nop,TS val 4245759110 ecr 3018342018,nop,nop,sack 1 {10193:10241}], length 0

sacked hinting the lost packet

Code: Select all

15:03:12.330167 IP h1.60138 > h2.5001: Flags [.], seq 8169:9181, ack 1, win 1024, options [nop,nop,TS val 3018342019 ecr 4245759110], length 1012

retransmit the second lost data packet at 8169

Code: Select all

15:03:12.330235 IP h2.5001 > h1.60138: Flags [.], ack 9181, win 968, options [nop,nop,TS val 4245759110 ecr 3018342019,nop,nop,sack 1 {10193:10241}], length 0
15:03:12.330257 IP h1.60138 > h2.5001: Flags [.], seq 9181:10193, ack 1, win 1024, options [nop,nop,TS val 3018342019 ecr 4245759110], length 1012

retransmit the third lost data packet at seqno=9181

Code: Select all

15:03:12.565517 IP h1.60138 > h2.5001: Flags [.], seq 9181:10193, ack 1, win 1024, options [nop,nop,TS val 3018342255 ecr 4245759110], length 1012

retransmit the third lost data packet at 9181

Code: Select all

15:03:12.565655 IP h2.5001 > h1.60138: Flags [.], ack 10241, win 997, options [nop,nop,TS val 4245759346 ecr 3018342255], length 0

the third lost packet has been received and acknowledged now

Code: Select all

15:03:12.565674 IP h1.60138 > h2.5001: Flags [F.], seq 10241, ack 1, win 1024, options [nop,nop,TS val 3018342255 ecr 4245759346], length 0

client (h1) to close its outgoing data flow

Code: Select all

15:03:12.579251 IP h2.5001 > h1.60138: Flags [F.], seq 1, ack 10242, win 1002, options [nop,nop,TS val 4245759359 ecr 3018342255], length 0

server (h2) acks and to close its outgoing data flow too

Code: Select all

15:03:12.579314 IP h1.60138 > h2.5001: Flags [.], ack 2, win 1024, options [nop,nop,TS val 3018342268 ecr 4245759359], length 0

last ack from the client (active close) to server (passive close)

and tcpdump on h2-eth0, i.e., what's tcp receiver sees

Code: Select all

15:03:12.311008 IP h1.60138 > h2.5001: Flags [S], seq 485904907, win 65535, options [mss 1024,sackOK,TS val 3018342000 ecr 0,nop,wscale 6], length 0
15:03:12.311051 IP h2.5001 > h1.60138: Flags [S.], seq 4195477387, ack 485904908, win 65160, options [mss 1460,sackOK,TS val 4245759091 ecr 3018342000,nop,wscale 6], length 0
15:03:12.312742 IP h1.60138 > h2.5001: Flags [P.], seq 1:1025, ack 1, win 1024, options [nop,nop,TS val 3018342002 ecr 4245759091], length 1024

the last packet of the three-way handshake lost, no impact

Code: Select all

15:03:12.313229 IP h2.5001 > h1.60138: Flags [.], ack 1025, win 1003, options [nop,nop,TS val 4245759093 ecr 3018342002], length 0

acknowledge the first data packet

Code: Select all

15:03:12.314273 IP h1.60138 > h2.5001: Flags [P.], seq 1025:2049, ack 1, win 1024, options [nop,nop,TS val 3018342003 ecr 4245759093], length 1024
15:03:12.314302 IP h2.5001 > h1.60138: Flags [.], ack 2049, win 988, options [nop,nop,TS val 4245759094 ecr 3018342003], length 0

second data packet and ack with reduced window size

Code: Select all

15:03:12.314559 IP h1.60138 > h2.5001: Flags [.], seq 2049:3061, ack 1, win 1024, options [nop,nop,TS val 3018342004 ecr 4245759093], length 1012
15:03:12.314575 IP h2.5001 > h1.60138: Flags [.], ack 3061, win 981, options [nop,nop,TS val 4245759095 ecr 3018342004], length 0

third data packet with reduced size

Code: Select all

15:03:12.314643 IP h1.60138 > h2.5001: Flags [P.], seq 3061:3073, ack 1, win 1024, options [nop,nop,TS val 3018342004 ecr 4245759095], length 12
15:03:12.314654 IP h2.5001 > h1.60138: Flags [.], ack 3073, win 1002, options [nop,nop,TS val 4245759095 ecr 3018342004], length 0

fourth data packet with reduced size

Code: Select all

15:03:12.315710 IP h1.60138 > h2.5001: Flags [P.], seq 3073:4097, ack 1, win 1024, options [nop,nop,TS val 3018342005 ecr 4245759095], length 1024
15:03:12.315910 IP h2.5001 > h1.60138: Flags [.], ack 4097, win 996, options [nop,nop,TS val 4245759096 ecr 3018342005], length 0

fifth data packet with the regular size

Code: Select all

15:03:12.316470 IP h1.60138 > h2.5001: Flags [.], seq 5109:6121, ack 1, win 1024, options [nop,nop,TS val 3018342006 ecr 4245759095], length 1012
15:03:12.316492 IP h2.5001 > h1.60138: Flags [.], ack 4097, win 996, options [nop,nop,TS val 4245759097 ecr 3018342005,nop,nop,sack 1 {5109:6121}], length 0

packet with seqno=4097 is lost; first dupack

Code: Select all

15:03:12.316824 IP h1.60138 > h2.5001: Flags [P.], seq 6121:6145, ack 1, win 1024, options [nop,nop,TS val 3018342006 ecr 4245759097], length 24
15:03:12.316844 IP h2.5001 > h1.60138: Flags [.], ack 4097, win 996, options [nop,nop,TS val 4245759097 ecr 3018342005,nop,nop,sack 1 {5109:6145}], length 0

second dupack

Code: Select all

15:03:12.319276 IP h1.60138 > h2.5001: Flags [.], seq 6145:7157, ack 1, win 1024, options [nop,nop,TS val 3018342008 ecr 4245759097], length 1012
15:03:12.319299 IP h2.5001 > h1.60138: Flags [.], ack 4097, win 998, options [nop,nop,TS val 4245759099 ecr 3018342005,nop,nop,sack 1 {5109:7157}], length 0

third dupack

Code: Select all

15:03:12.319538 IP h1.60138 > h2.5001: Flags [.], seq 7157:8169, ack 1, win 1024, options [nop,nop,TS val 3018342008 ecr 4245759097], length 1012
15:03:12.319558 IP h2.5001 > h1.60138: Flags [.], ack 4097, win 998, options [nop,nop,TS val 4245759099 ecr 3018342005,nop,nop,sack 1 {5109:8169}], length 0

more dupack with sack expanded as well

Code: Select all

15:03:12.329481 IP h1.60138 > h2.5001: Flags [.], seq 4097:5109, ack 1, win 1024, options [nop,nop,TS val 3018342018 ecr 4245759097], length 1012
15:03:12.329536 IP h2.5001 > h1.60138: Flags [.], ack 8169, win 983, options [nop,nop,TS val 4245759110 ecr 3018342018], length 0

retransmitted packet at 4097 received and thus acks 8169 for followings

Code: Select all

15:03:12.329710 IP h1.60138 > h2.5001: Flags [P.], seq 10193:10241, ack 1, win 1024, options [nop,nop,TS val 3018342019 ecr 4245759110], length 48
15:03:12.330111 IP h2.5001 > h1.60138: Flags [.], ack 8169, win 983, options [nop,nop,TS val 4245759110 ecr 3018342018,nop,nop,sack 1 {10193:10241}], length 0
15:03:12.330191 IP h1.60138 > h2.5001: Flags [.], seq 8169:9181, ack 1, win 1024, options [nop,nop,TS val 3018342019 ecr 4245759110], length 1012
15:03:12.330209 IP h2.5001 > h1.60138: Flags [.], ack 9181, win 968, options [nop,nop,TS val 4245759110 ecr 3018342019,nop,nop,sack 1 {10193:10241}], length 0

second lost packet at 8169 received

Code: Select all

15:03:12.565609 IP h1.60138 > h2.5001: Flags [.], seq 9181:10193, ack 1, win 1024, options [nop,nop,TS val 3018342255 ecr 4245759110], length 1012
15:03:12.565635 IP h2.5001 > h1.60138: Flags [.], ack 10241, win 997, options [nop,nop,TS val 4245759346 ecr 3018342255], length 0

third lost data packet received and acknowledgment for all data

Code: Select all

15:03:12.565688 IP h1.60138 > h2.5001: Flags [F.], seq 10241, ack 1, win 1024, options [nop,nop,TS val 3018342255 ecr 4245759346], length 0
15:03:12.579162 IP h2.5001 > h1.60138: Flags [F.], seq 1, ack 10242, win 1002, options [nop,nop,TS val 4245759359 ecr 3018342255], length 0
15:03:12.579365 IP h1.60138 > h2.5001: Flags [.], ack 2, win 1024, options [nop,nop,TS val 3018342268 ecr 4245759359], length 0
Attachments
tcp-cubic-before.cap
(18.06 KiB) Downloaded 290 times
tcp-cubic-after.cap
(14.12 KiB) Downloaded 277 times
tcp-reno-mincwnd-nosack-before.cap
(16.28 KiB) Downloaded 262 times
tcp-reno-mincwnd-nosack-after.cap
(13.83 KiB) Downloaded 265 times
Last edited by pan on Sat Aug 22, 2020 4:10 pm, edited 3 times in total.
pan
Posts: 56971
Joined: Mon Sep 11, 2006 10:23 am

Re: piconet

Post by pan »

8 IP ADDRESSING AND TRANSLATION

Attachments
piconet-nat.gif
piconet-nat.gif (5.74 KiB) Viewed 5959 times
pan
Posts: 56971
Joined: Mon Sep 11, 2006 10:23 am

Re: piconet

Post by pan »

9 IP ROUTING

Attachments
piconet-default.gif
piconet-default.gif (5.65 KiB) Viewed 5956 times
pan
Posts: 56971
Joined: Mon Sep 11, 2006 10:23 am

Re: piconet

Post by pan »

10 ARP AND INTERWORKING

Attachments
piconet-internet.gif
piconet-internet.gif (6.73 KiB) Viewed 5960 times
Post Reply

Return to “UVic CS”