Does it make sense to start up another service like a webserver to handle the communication between the base station and the robot, or is there some better way of handling communications between the base station and the robot? There doesn't seem to be a particularly idiomatic way to do this.
In my experience people run the master on the robot itself in these cases, then connect to the robot from your base station in case a connection is necessary (ie: to inspect robot state, etc). You could then connect additional nodes (such as RViz) to your robot running on your base station if/when it is in range. Alternatively, a remoting UI using Robot Web Tools could be used (avoids need for connecting to the remote master, web based, so no ROS requirement on base station, etc).
UDPROS is often recommended in cases where you have a lossy link. When using RViz, this is just a checkmark in the UI. For other nodes you might need to change some things (see wiki/roscpp/Overview - Transport Hints).
If you really need a master on your base station, you could look into setting up a multi master system. multimaster_fkie is a (popular) package for this.
In general I would look into how people/teams that participate(d) in the various robotics challenges / competitions approach this problem (DRC, RoboCup, etc). One example that was presented at ROSCon this year ('16): ANYmal at the ARGOS Challenge: Tools and Experiences from the Autonomous Inspection of Oil & Gas Sites with a Legged Robot (slides (pages 33 to 36 are relevant), video). In most cases they have to deal with noisy, lossy and intermittent (radio) links as well.
Finally: the QoS settings supported by DDS make it very well suited for applications where you have to deal with non-ideal networks. ROS2 uses DDS as (one of the) middleware layer(s). It's at alpha 8 right now, but using the ros2/ros1_bridge package should make it possible to bridge two ROS1 node graphs across a lossy link.
Edit: re: "is ROS the best": that is a question that I think cannot be answered in a reasonable way: there are too many variables and scenarios for any particular answer/opinion to make sense to every user. There are definitely alternatives that make sense in some of those scenarios (like LCM
, as @sai kiran mentioned), but they will all (including ROS) come with their own set of (dis)advantages. Only you can determine whether ROS fits your requirements.