How to enable file transfer for cross-platform application



I would like to enable file transfer between Windows PCs and a bunch
of Linux devices within a corporate network(include one site or
multiple sites). The file size can range from a few kilobytes to a few
hundred of megabytes.
I am hard to make a decision right now on the following possible
solutions for file/data transfer:
1. Using HTTP protocol.
2. Using FTP protocol.
3. Using Samba
4. Any other file transfer protocol?

Any thought? Which one do you think will be the best solution for my
task?

BTW, I think within a same corporate, I can visit a computer/device by
its name such as "\\DeepBlueAtChicago" to access its resource instead
of providing IP address, no matter the computer is running Windows or
Linux, is it right?
If so is this type of service thesedays more likely to be based on DNS
or Active Directory or any other Directory Service?

Thank you!
.