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õ legkissebb é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 kissebb bevezetõ oktatás anyagát, valamint a leggyakrabban használt útvonal-választási protokoll részletes leírását is.