A fentiekben említettük, hogy az IP implementációknak gondoskodniuk kell a datagrammnak a célcím által jelzett címre való eljuttatásáról. Azt azonban nem írtuk le, hogy ez hogyan is történik. Egy datagramm rendeltetési helyére juttatásának mikéntjét az útvonal-választás (routing) kifejezés jelöli. A részletek nagymértékben függenek az adott implementációtól, viszont egy-két dolgot általánosságban el lehet mondani.
Először is az szükséges, hogy az IP-t megvalósító modellel tisztában legyünk. Az IP alapállapotban azzal a feltevéssel él, hogy a rendszerek valamilyen lokális hálózatra kapcsolódnak. Feltesszük, hogy a rendszer a saját hálózatán keresztül datagrammokat tud küldeni egy másik rendszernek. (Ethernet alapú hálózat esetén egyszerűen a célállomás Ethernet címét kell megkeresnie, majd a datagrammot ki kell adnia a hálózatra.) A probléma akkor jelentkezik, amikor egy másik hálózaton lévő rendszerhez kell küldeni datagrammot. Itt lépnek be az átjárók (gateway). Az átjáró egy olyan hálózati eszköz, amely egy hálózatot két vagy több másikkal köt össze. Ez a gyakorlatban legtöbbször egy olyan számítógépet jelent, amelynek több hálózati interfésze van. A Rutgers Egyetemen például van egy Unix alapú gép, amelynek két különböző Ethernet interfésszel rendelkezik. Így az kapcsolódik a 128.6.4, és a 128.6.3 hálózathoz. Ez a számítógép a két hálózat között átjáróként üzemelhet. A hálózati szoftvert úgy kell beállítani, hogy az átjáró a két hálózat között datagrammokat tudjon küldeni. Ha egy gép a 128.6.4 hálózatról olyan datagrammot küld az átjáró felé, amely a 128.6.3 hálózaton lévő gépek egyikének szól, akkor azt az átjáró továbbítja a célállomás felé. A főbb kommunikációs központokban több átjáró is található, amelyek különböző hálózatokat kötnek össze egymással. (A legtöbbször speciálisan erre a feladatra készített átjárókat alkalmaznak, amelyek megbízhatóbban, és sokkal hatásosabban működnek az általános célú átjáróknál. Sok cég kínál ilyen rendszereket.)
Az IP szerinti útvonal-választás teljes mértékben a célállomás hálózati számán alapszik. A hálózatba kötött minden egyes számítógép rendelkezik egy táblázattal, amelyben a hálózati számokat tárolják. Minden hálózatszámhoz tartozik egy átjáró, amelyen keresztül az adott hálózathoz eljuthatunk. Azt észre kell venni, hogy az átjáró nincs feltétlenül arra a hálózatra kötve: egyszerűen csak az a legjobb út, amelyen keresztül az adott hálózathoz el lehet jutni. Például a Rutgers Egyetem NSFnet kapcsolata a John von Neumann Supercomputer Center-en (JvNC) keresztül valósul meg. A JvNC-vel való összeköttetést egy nagysebességű soros vonali kapcsolat adja, amely a 128.6.3.12 című átjáróhoz van kötve. A 128.6.3 hálózaton lévő rendszerek a legtöbb egyetemen kívüli hálózat felé a 128.6.3.12 átjárót fogják használni. A 128.6.4 hálózaton lévő rendszerek viszont a 128.6.4.1 átjárót használják ugyanazon hálózatok felé. A 128.6.4.1 a 128.6.4 és a 128.6.3 hálózatok között működik átjáróként, tehát a JvNC-vel első lépésként ezen keresztül lehet kapcsolatba lépni (a 128.6.4 hálózatról).
Amikor egy számítógép datagrammot akar küldeni egy másiknak, akkor először azt ellenőrzi, hogy a fogadó nincs-e a saját hálózatán. Ha ott van, akkor a datagrammot közvetlenül neki küldi el. Ha nincs ott, akkor a rendszer keresni kezdi a táblázatban a célállomás hálózati számát, és a datagrammot annak a hálózatnak az átjárója felé küldi. A hálózati számokat és átjárókat felsoroló táblázat esetenként igen nagy terjedelemre tehet szert. Az Internet például több száz hálózatot foglal magába. Különböző stratégiákat dolgoztak ki annak érdekében, hogy az útvonal-választási táblák méretét a lehető legkisebb értéken tartsák. Az egyik ilyen módszer az alapértelmezett útvonalak használata. Gyakran fellép az az eset, hogy egy hálózatból csak egyetlen átjárón keresztül lehet kijutni. Egy ilyen átjáró például egy Ethernet alapú lokális hálózat és egy gerinchálózat között létesíthet kapcsolatot. Ilyenkor persze nincs szükség arra, hogy az útvonal-választási táblában az összes külső hálózat szerepeljen. Az átjárót egyszerűen alapértelmezettnek definiáljuk, és így a választott útvonallal nem rendelkező datagrammok egyenesen az átjáróhoz kerülnek. Egy így beállított átjáró akkor is használható, ha egy hálózaton több is működik belőle. Az átjárókat úgy tervezték, hogy a ,,Nem ez a legjobb átjáró - használd inkább ezt és ezt.'' üzenetet generálni tudják. (Az üzenetet az ICMP-n keresztül adják le. Lásd az RFC 792-t.) A hálózati szoftverek többsége ezt az üzenetet használja arra, hogy az útvonal-választási táblájába bejegyzéseket helyezzen el. Tegyük fel, hogy a 128.6.4 hálózatnak két átjárója van: a 128.6.4.1 és a 128.6.4.59. Az első a Rutgers belső hálózataival, a második pedig közvetetten az NSFnet-tel tart kapcsolatot. Tegyük fel továbbá, hogy alapértelmezett átjáróként a 128.6.4.59-t állítottuk be, és az útvonal-választási táblában nincs más bejegyzés. Mi történik, ha a MIT hálózatára akarunk datagrammot küldeni? A MIT hálózati száma 18. Mivel ilyen bejegyzés nincs a táblázatban, ezért a datagramm egyenesen a beállított géphez, a 128.6.4.59-hez kerül. Ez persze a rossz átjáró. A datagrammunkat a 128.6.4.1-hez fogja továbbítani. Ezen kívül egy hibaüzenetet is küld nekünk ,,a 18-as hálózathoz használd a 128.6.4.1 átjárót'' szöveggel. A hálózati szoftverünk pedig bejegyzi az adatot a táblázatba. Ennek eredményeképpen a MIT felé irányuló jövőbeli datagrammok egyenesen a 128.6.4.1 átjáró felé mennek. (A hibaüzenet küldéséhez az ICMP használatos. Ezt a fajta üzenetet ICMP átirányításnak (ICMP redirect) hívják.)
Az IP szakértők többsége azon a véleményen van, hogy a hálózati számítógépek ne próbálják meg az egész hálózat forgalmát nyomon követni. Ehelyett azt ajánlják, hogy alapértelmezett átjárókat használjanak, és rájuk támaszkodjanak az útvonalak megállapításánál, ahogy azt a fentiekben is leírtuk. Arról nem volt szó, hogy az átjárók hogyan határozzák meg az útvonalakat. Az esetükben a fenti stratégia nem használható, hiszen az útvonal-választási táblázatuknak megfelelően teljesnek kell lennie. Ezért valamiféle útvonal-választási protokoll jelenléte szükséges, amely azt írja le, hogy az átjárók hogyan találhatják meg egymást, és hogyan frissíthetik az adatbázisukat a különböző hálózatokhoz vezető (legjobb) útvonalakról. Az átjárók tervezéséről és az útvonalak megválasztásáról az RFC 1009 ad áttekintést. Az útvonal-választás legutóbbi leírását az RFC 1716 és RFC 1812 adja. A rip.doc (RFC 1058) dokumentum valószínűleg jobb bevezetést nyújt a témába. Tartalmazza egy kisebb bevezető oktatás anyagát, valamint a leggyakrabban használt útvonal-választási protokoll részletes leírását is.