Difference Between ESSID, BSSID, and SSID in Commands – Explanation

networkingwireless

If I am correct, ESS is the union of a set of BSS's. ESSID and BSSID are just their IDs respectively.

How can I tell if a wireless network has essid, bssid or ssid?
What differences are between usages of essid, bssid and ssid? When to use which?

Which one should apply to the wireless network created by my router in my apartment: ESSID, BSSID, or SSID?

Some examples of commands that use ESSID, BSSID or SSID as their arguments. But I am not sure why they use one not the others.

  1. The manpage of iwconfig says

    NAME
           iwconfig - configure a wireless network interface
    
    SYNOPSIS
           iwconfig [interface]
           iwconfig interface [essid X] [nwid N] [mode M] [freq F]
                              [channel C][sens S ][ap A ][nick NN ]
                              [rate R] [rts RT] [frag FT] [txpower T]
                              [enc E] [key K] [power P] [retry R]
                              [modu M] [commit]
           iwconfig --help
           iwconfig --version
    

    Why does it have an argument essid rather than bssid? Does a
    wireless network interface always work with a ESS not a BSS?

  2. wpa_cli has a command

       bssid <network id> <BSSID>
              set preferred BSSID for an SSID
    

    Why does it use BSSID instead of ESSID as iwconfig does?

  3. wpa_passphrase uses an argument for a SSID, does it mean the
    argument can be either BSSID or ESSID?

    SYNOPSIS
           wpa_passphrase [ ssid ] [ passphrase ]
    
  4. wicd-wired-settings.conf has the following settings:

       bssid = <BSSID_of_network>
              This value can be found using iwconfig(8).
    
       essid = <ESSID_of_network>
              This value can be found using iwconfig(8).
    

    Can iwconfig tell if a network is ESS or BSS?

Thanks!

Best Answer

My understanding is that ESSID is the name of the access point, which can be changed, but BSSID is numeric ID of the access point (something like MAC address of the router). For instance, on my college campus we have many different access points with same name, but BSSIDs are different for each router. You can list networks with their respective ESSID and BSSID with

nmcli dev wifi

Or for cleaner output you can do nmcli -f SSID,BSSID dev wifi.

Also with iwlist, for example:

sudo iwlist wlp2s0 scan
Related Question