随着网络应用的持续增加,如何提高现有网络资源的利用率成为一个重要的问题.SDN(Software Defined Network)将控制和转发进行分离,SDN集中控制的特性使得SDN控制器能够获取整个网络的信息.本文通过对OpenDaylight中网络信息的感知,给出了带宽、时延和丢包率的计算方法,提出了一种基于OpenDaylight网络感知和用户需求进行路径选择的算法.然后通过计算链路目标函数的方式对算法又进行了改进,使得算法可以选出满足用户需求的最优或较优路径.通过编写OpenDaylight模块和对OpenDaylight中Dijkstra算法进行功能扩充两种方式实现了改进后的路径选择算法,最后通过实验验证了改进算法的可行性,并分析了改进算法对OpenDaylight控制器性能的影响.