Có hai loại định tuyến:
- Định tuyến trực tiếp: Định tuyến trực tiếp là việc xác định đường nối giữa hai trạm làm việc trong cùng một mạng vật lý.
- Định tuyến không trực tiếp. Định tuyến không trực tiếp là việc xác định đường nối giữa hai trạm làm việc không nằm trong cùng một mạng vật lý và vì vậy, việc truyền tin giữa chúng phải được thực hiện thông qua các trạm trung gian là các gateway.
Để kiểm tra xem trạm đích có nằm trên cùng mạng vật lý với trạm nguồn hay không, người gửi phải tách lấy phần địa chỉ mạng trong phần địa chỉ IP. Nếu hai địa chỉ này có địa chỉ mạng giống nhau thì datagram sẽ được truyền đi trực tiếp; ngược lại phải xác định một gateway, thông qua gateway này chuyển tiếp các datagram.
Khi một trạm muốn gửi các gói dữ liệu đến một trạm khác thì nó phải đóng gói datagram vào một khung (frame) và gửi các frame này đến gateway gần nhất. Khi một frame đến một gateway, phần datagram đã được đóng gói sẽ được tách ra và IP routing sẽ chọn gateway tiếp dọc theo đường dẫn đến đích. Datagram sau đó lại được đóng gói vào một frame khác và gửi đến mạng vật lý để gửi đến gateway tiếp theo trên đường truyền và tiếp tục như thế cho đến khi datagram được truyền đến trạm đích.
Chiến lược định tuyến:
Trong thuật ngữ truyền thống của TCP/IP chỉ có hai kiểu thiết bị, đó là các cổng truyền (gateway) và các trạm (host). Các cổng truyền có vai trò gửi các gói dữ liệu, còn các trạm thì không. Tuy nhiên khi một trạm được nối với nhiều mạng thì nó cũng có thể định hướng cho việc lưu chuyển các gói dữ liệu giữa các mạng và lúc này nó đóng vai trò hoàn toàn như một gateway.
Các trạm làm việc lưu chuyển các gói dữ liệu xuyên suốt qua cả bốn lớp, trong khi các cổng truyền chỉ chuyển các gói đến lớp Internet là nơi quyết định tuyến đường tiếp theo để chuyển tiếp các gói dữ liệu.
Các máy chỉ có thể truyền dữ liệu đến các máy khác nằm trên cùng một mạng vật lý. Các gói từ A1 cần chuyển cho C1 sẽ được hướng đến gateway G1 và G2. Trạm A1 đầu tiên sẽ truyền các gói đến gateway G1 thông qua mạng A. Sau đó G1 truyền tiếp đến G2 thông qua mạng B và cuối cùng G2 sẽ truyền các gói trực tiếp đến trạm C1, bởi vì chúng được nối trực tiếp với nhau thông qua mạng C. Trạm A1 không hề biết đến các gateway nằm ở sau G1. A1 gửi các gói số liệu cho các mạng B và C đến gateway cục bộ G1 và dựa vào gateway này để định hướng tiếp cho các gói dữ liệu đi đến đích. Theo cách này thì trạm C1 trước tiên sẽ gửi các gói của mình đến cho G2 và G2 sẽ gửi đi tiếp cho các trạm ở trên mạng A cũng như ở trên mạng B.
Việc phân mảnh các gói dữ liệu: Trong quá trình truyền dữ liệu, một gói dữ liệu (datagram) có thể được truyền đi thông qua nhiều mạng khác nhau. Một gói dữ liệu (datagram) nhận được từ một mạng nào đó có thể quá lớn để truyền đi trong gói đơn ở trên một mạng khác, bởi mỗi loại cấu trúc mạng cho phép một đơn vị truyền cực đại (Maximum Transmit Unit - MTU), khác nhau. Đây chính là kích thước lớn nhất của một gói mà chúng có thể truyền. Nếu như một gói dữ liệu nhận được từ một mạng nào đó mà lớn hơn MTU của một mạng khác thì nó cần được phân mảnh ra thành các gói nhỏ hơn, gọi là fragment. Quá trình này gọi là quá trình phân mảnh. Dạng của một fragment cũng giống như dạng của một gói dữ liệu thông thường. Từ thứ hai trong phần header chứa các thông tin để xác định mỗi fragment và cung cấp các thông tin để hợp nhất các fragment này lại thành các gói như ban đầu. Trường identification dùng để xác định fragment này là thuộc về gói dữ liệu nào.