ip algorithms