**BGP** (lyhenne sanoista *Border Gateway Protocol*) on standardisoitu ulkoinen reititysprotokolla, jonka avulla vaihdetaan Internetin reititys- ja saavutettavuustietoja autonomisten järjestelmien välillä. BGP on etäisyysvektoriprotokolla, ja se reitittää pyynnöt erilaisten teknisten metriikoiden ja autonomisen järjestelmän ylläpitäjän asettamien sääntöjen perusteella. Se käyttää TCP-siirtoprotokollaa ja sille on varattu portti on 179. Se on Internetin tärkein reititysprotokolla. 

BGP on suunniteltu erityisesti ulkoista reititystä varten autonomisten järjestelmien välillä (**eBGP**, Exterior Border Gateway Protocol), mutta sen käyttö on myös mahdollista autonomisten järjestelmien sisällä. Tällöin protokollaa kutsutaan lyhenteellä **iBGP** (Interior Border Gateway Protocol).

Autonomisten järjestelmien reunareitittimet muodostavat BGP:n avulla yhteyden naapurijärjestelmiin. BGP pohjautuu polkuvektoreiden käyttöön, missä järjestelmät etsivät BGP:n avulla yleensä lyhimmän polun lähdeosoitteesta kohdeosoitteeseen eri autonomisten järjestelmien läpi. Normaalisti BGP-reitittimet ylläpitävät muistissaan taulukkoa kaikista IP-verkoista ja autonomisten järjestelmien muodostamasta polusta, jolla ne voidaan tavoittaa. IPv4:n taulukossa on nykyään yli 950 tuhatta ja IPv6:n taulukossa yli 200 tuhatta verkkoa.

Protokollan historiaa
---------------------

Vuonan 1989 insinöörit yrittivät keksiä ratkaisua ongelmille, jotka johtuivat Internetin laajentumisesta. BGP-protokollan perusperiaatteet piirettiin kolmelle "ketsuppitahraiselle servetille", jonka vuoksi BGP tunnetaan vielä nykyäänkin lempinimellä *kolmen servetin protokolla* (engl. *three-napkins protocol*). Protokolla standardisoitiin ensimmäistä kertaa vuonna 1989 dokumentissa RFC 1105, ja sitä on käytetty Internetissä vuodesta 1994.

BGP:n nykyinen käytössä oleva versio on BGP4, joka standardisoitiin vuonna 1994 dokumentissa RFC 1654. Versio lisäsi muun muassa tuen IPv6-protokollalle. Vuoden 1994 jälkeen protokollaa on päivitetty vuonna 1995 dokumentissa RFC 1771, vuonna 1995 dokumentissa RFC 1771, vuonna 1998 dokumentissa RFC 2283 ja vuonna 2006 dokumentissa RFC 4271. Näistä muutoksista uusin, RFC 4271, korjasi virheitä, tarkensi epäselvyyksiä ja päivitti protokollaa vastaamaan yleisiä alan standardeja.

Suuri parannus BGP4:ssä edeltäjiinsä nähden oli tuki luokattomalle CIDR-reititykselle (Classless Inter-Domain Routing) ja reititystaulujen koon pienentäminen tukemalla reittien yhdistämistä. RFC 4271 mahdollistaa useiden IPv4- ja IPv6-osoiteperheiden kuljettamisen.

Standardi
---------

Eräitä keskeisiä dokumentteja:

* RFC 4274
* RFC 4275
* RFC 4276

Lähteet
-------

1. ↑  BGP: Border Gateway Protocol Explained *web.archive.org*.  28.9.2013.  Arkistoitu 28.9.2013. Viitattu 28.2.2024.
2. ↑  Sobrinho, João Luís: Network Routing with Path Vector Protocols: Theory and Applications *conferences.sigcomm.org*.  Arkistoitu 14.7.2010. Viitattu 28.2.2024.
3. ↑  M14 Border Gateway Protocol - Tietoverkot *tietoverkot.pages.labranet.jamk.fi*. Viitattu 28.2.2024.
4. ↑  What is BGP? | BGP routing explained Cloudflare, Inc.. Viitattu 28.2.2024.
5. ↑  Interior Border Gateway Protocol (IBGP) *Oracle Help Center*. Viitattu 28.2.2024. (englanniksi)
6. ↑  Kihara Kimachia: iBGP Ultimate Guide | How iBGP Is Different From eBGP *Enterprise Networking Planet*.  27.2.2023. Viitattu 28.2.2024. (englanniksi)
7. ↑  Potaroo - BGP-taulujen koko
8. ↑  Stuff *www.stuff.co.nz*. Viitattu 28.2.2024.
9. ↑  Quick fix for an early Internet problem lives on a quarter-century later *Washington Post*. Viitattu 28.2.2024. (englanniksi)