docker-compose: diferença entre rede e link

Estou aprendendo estivador. Eu vejo esses dois termos me confundindo. Por exemplo, aqui está uma janela de encaixe-composição que definiu dois serviçosredis eweb-app.

services:
  redis:
    container_name: redis
    image: redis:latest
    ports:
      - "6379:6379"
    networks:
      - lognet

  app:
    container_name: web-app
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "3000:3000"
    volumes:
      - ".:/webapp"
    links:
      - redis
    networks:
      - lognet

networks:
  lognet:
    driver: bridge

estedocker-compose O arquivo define uma rede de ponte denominada lognet e todos os serviços serão conectados a essa rede. Pelo que entendi, essa ação faz com que esses serviços possam ver os outros. Então, por que o serviço de aplicativo ainda precisa vincular ao serviço redis no caso acima?

obrigado